1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package route53
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restxml"
14)
15
16const opAssociateVPCWithHostedZone = "AssociateVPCWithHostedZone"
17
18// AssociateVPCWithHostedZoneRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateVPCWithHostedZone operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateVPCWithHostedZone for more information on using the AssociateVPCWithHostedZone
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateVPCWithHostedZoneRequest method.
34//    req, resp := client.AssociateVPCWithHostedZoneRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZone
42func (c *Route53) AssociateVPCWithHostedZoneRequest(input *AssociateVPCWithHostedZoneInput) (req *request.Request, output *AssociateVPCWithHostedZoneOutput) {
43	op := &request.Operation{
44		Name:       opAssociateVPCWithHostedZone,
45		HTTPMethod: "POST",
46		HTTPPath:   "/2013-04-01/hostedzone/{Id}/associatevpc",
47	}
48
49	if input == nil {
50		input = &AssociateVPCWithHostedZoneInput{}
51	}
52
53	output = &AssociateVPCWithHostedZoneOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AssociateVPCWithHostedZone API operation for Amazon Route 53.
59//
60// Associates an Amazon VPC with a private hosted zone.
61//
62// To perform the association, the VPC and the private hosted zone must already
63// exist. You can't convert a public hosted zone into a private hosted zone.
64//
65// If you want to associate a VPC that was created by using one AWS account
66// with a private hosted zone that was created by using a different account,
67// the AWS account that created the private hosted zone must first submit a
68// CreateVPCAssociationAuthorization request. Then the account that created
69// the VPC must submit an AssociateVPCWithHostedZone request.
70//
71// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
72// with awserr.Error's Code and Message methods to get detailed information about
73// the error.
74//
75// See the AWS API reference guide for Amazon Route 53's
76// API operation AssociateVPCWithHostedZone for usage and error information.
77//
78// Returned Error Codes:
79//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
80//   No hosted zone exists with the ID that you specified.
81//
82//   * ErrCodeNotAuthorizedException "NotAuthorizedException"
83//   Associating the specified VPC with the specified hosted zone has not been
84//   authorized.
85//
86//   * ErrCodeInvalidVPCId "InvalidVPCId"
87//   The VPC ID that you specified either isn't a valid ID or the current account
88//   is not authorized to access this VPC.
89//
90//   * ErrCodeInvalidInput "InvalidInput"
91//   The input is not valid.
92//
93//   * ErrCodePublicZoneVPCAssociation "PublicZoneVPCAssociation"
94//   You're trying to associate a VPC with a public hosted zone. Amazon Route
95//   53 doesn't support associating a VPC with a public hosted zone.
96//
97//   * ErrCodeConflictingDomainExists "ConflictingDomainExists"
98//   The cause of this error depends on whether you're trying to create a public
99//   or a private hosted zone:
100//
101//      * Public hosted zone: Two hosted zones that have the same name or that
102//      have a parent/child relationship (example.com and test.example.com) can't
103//      have any common name servers. You tried to create a hosted zone that has
104//      the same name as an existing hosted zone or that's the parent or child
105//      of an existing hosted zone, and you specified a delegation set that shares
106//      one or more name servers with the existing hosted zone. For more information,
107//      see CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html).
108//
109//      * Private hosted zone: You specified an Amazon VPC that you're already
110//      using for another hosted zone, and the domain that you specified for one
111//      of the hosted zones is a subdomain of the domain that you specified for
112//      the other hosted zone. For example, you can't use the same Amazon VPC
113//      for the hosted zones for example.com and test.example.com.
114//
115//   * ErrCodeLimitsExceeded "LimitsExceeded"
116//   This operation can't be completed either because the current account has
117//   reached the limit on reusable delegation sets that it can create or because
118//   you've reached the limit on the number of Amazon VPCs that you can associate
119//   with a private hosted zone. To get the current limit on the number of reusable
120//   delegation sets, see GetAccountLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html).
121//   To get the current limit on the number of Amazon VPCs that you can associate
122//   with a private hosted zone, see GetHostedZoneLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetHostedZoneLimit.html).
123//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
124//   with the AWS Support Center.
125//
126// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZone
127func (c *Route53) AssociateVPCWithHostedZone(input *AssociateVPCWithHostedZoneInput) (*AssociateVPCWithHostedZoneOutput, error) {
128	req, out := c.AssociateVPCWithHostedZoneRequest(input)
129	return out, req.Send()
130}
131
132// AssociateVPCWithHostedZoneWithContext is the same as AssociateVPCWithHostedZone with the addition of
133// the ability to pass a context and additional request options.
134//
135// See AssociateVPCWithHostedZone for details on how to use this API operation.
136//
137// The context must be non-nil and will be used for request cancellation. If
138// the context is nil a panic will occur. In the future the SDK may create
139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
140// for more information on using Contexts.
141func (c *Route53) AssociateVPCWithHostedZoneWithContext(ctx aws.Context, input *AssociateVPCWithHostedZoneInput, opts ...request.Option) (*AssociateVPCWithHostedZoneOutput, error) {
142	req, out := c.AssociateVPCWithHostedZoneRequest(input)
143	req.SetContext(ctx)
144	req.ApplyOptions(opts...)
145	return out, req.Send()
146}
147
148const opChangeResourceRecordSets = "ChangeResourceRecordSets"
149
150// ChangeResourceRecordSetsRequest generates a "aws/request.Request" representing the
151// client's request for the ChangeResourceRecordSets operation. The "output" return
152// value will be populated with the request's response once the request completes
153// successfully.
154//
155// Use "Send" method on the returned Request to send the API call to the service.
156// the "output" return value is not valid until after Send returns without error.
157//
158// See ChangeResourceRecordSets for more information on using the ChangeResourceRecordSets
159// API call, and error handling.
160//
161// This method is useful when you want to inject custom logic or configuration
162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
163//
164//
165//    // Example sending a request using the ChangeResourceRecordSetsRequest method.
166//    req, resp := client.ChangeResourceRecordSetsRequest(params)
167//
168//    err := req.Send()
169//    if err == nil { // resp is now filled
170//        fmt.Println(resp)
171//    }
172//
173// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSets
174func (c *Route53) ChangeResourceRecordSetsRequest(input *ChangeResourceRecordSetsInput) (req *request.Request, output *ChangeResourceRecordSetsOutput) {
175	op := &request.Operation{
176		Name:       opChangeResourceRecordSets,
177		HTTPMethod: "POST",
178		HTTPPath:   "/2013-04-01/hostedzone/{Id}/rrset/",
179	}
180
181	if input == nil {
182		input = &ChangeResourceRecordSetsInput{}
183	}
184
185	output = &ChangeResourceRecordSetsOutput{}
186	req = c.newRequest(op, input, output)
187	return
188}
189
190// ChangeResourceRecordSets API operation for Amazon Route 53.
191//
192// Creates, changes, or deletes a resource record set, which contains authoritative
193// DNS information for a specified domain name or subdomain name. For example,
194// you can use ChangeResourceRecordSets to create a resource record set that
195// routes traffic for test.example.com to a web server that has an IP address
196// of 192.0.2.44.
197//
198// Change Batches and Transactional Changes
199//
200// The request body must include a document with a ChangeResourceRecordSetsRequest
201// element. The request body contains a list of change items, known as a change
202// batch. Change batches are considered transactional changes. When using the
203// Amazon Route 53 API to change resource record sets, Route 53 either makes
204// all or none of the changes in a change batch request. This ensures that Route
205// 53 never partially implements the intended changes to the resource record
206// sets in a hosted zone.
207//
208// For example, a change batch request that deletes the CNAME record for www.example.com
209// and creates an alias resource record set for www.example.com. Route 53 deletes
210// the first resource record set and creates the second resource record set
211// in a single operation. If either the DELETE or the CREATE action fails, then
212// both changes (plus any other changes in the batch) fail, and the original
213// CNAME record continues to exist.
214//
215// Due to the nature of transactional changes, you can't delete the same resource
216// record set more than once in a single change batch. If you attempt to delete
217// the same change batch more than once, Route 53 returns an InvalidChangeBatch
218// error.
219//
220// Traffic Flow
221//
222// To create resource record sets for complex routing configurations, use either
223// the traffic flow visual editor in the Route 53 console or the API actions
224// for traffic policies and traffic policy instances. Save the configuration
225// as a traffic policy, then associate the traffic policy with one or more domain
226// names (such as example.com) or subdomain names (such as www.example.com),
227// in the same hosted zone or in multiple hosted zones. You can roll back the
228// updates if the new configuration isn't performing as expected. For more information,
229// see Using Traffic Flow to Route DNS Traffic (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html)
230// in the Amazon Route 53 Developer Guide.
231//
232// Create, Delete, and Upsert
233//
234// Use ChangeResourceRecordsSetsRequest to perform the following actions:
235//
236//    * CREATE: Creates a resource record set that has the specified values.
237//
238//    * DELETE: Deletes an existing resource record set that has the specified
239//    values.
240//
241//    * UPSERT: If a resource record set does not already exist, AWS creates
242//    it. If a resource set does exist, Route 53 updates it with the values
243//    in the request.
244//
245// Syntaxes for Creating, Updating, and Deleting Resource Record Sets
246//
247// The syntax for a request depends on the type of resource record set that
248// you want to create, delete, or update, such as weighted, alias, or failover.
249// The XML elements in your request must appear in the order listed in the syntax.
250//
251// For an example for each type of resource record set, see "Examples."
252//
253// Don't refer to the syntax in the "Parameter Syntax" section, which includes
254// all of the elements for every kind of resource record set that you can create,
255// delete, or update by using ChangeResourceRecordSets.
256//
257// Change Propagation to Route 53 DNS Servers
258//
259// When you submit a ChangeResourceRecordSets request, Route 53 propagates your
260// changes to all of the Route 53 authoritative DNS servers. While your changes
261// are propagating, GetChange returns a status of PENDING. When propagation
262// is complete, GetChange returns a status of INSYNC. Changes generally propagate
263// to all Route 53 name servers within 60 seconds. For more information, see
264// GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html).
265//
266// Limits on ChangeResourceRecordSets Requests
267//
268// For information about the limits on a ChangeResourceRecordSets request, see
269// Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
270// in the Amazon Route 53 Developer Guide.
271//
272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
273// with awserr.Error's Code and Message methods to get detailed information about
274// the error.
275//
276// See the AWS API reference guide for Amazon Route 53's
277// API operation ChangeResourceRecordSets for usage and error information.
278//
279// Returned Error Codes:
280//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
281//   No hosted zone exists with the ID that you specified.
282//
283//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
284//   No health check exists with the specified ID.
285//
286//   * ErrCodeInvalidChangeBatch "InvalidChangeBatch"
287//   This exception contains a list of messages that might contain one or more
288//   error messages. Each error message indicates one error in the change batch.
289//
290//   * ErrCodeInvalidInput "InvalidInput"
291//   The input is not valid.
292//
293//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
294//   If Amazon Route 53 can't process a request before the next request arrives,
295//   it will reject subsequent requests for the same hosted zone and return an
296//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
297//   the same request, we recommend that you wait, in intervals of increasing
298//   duration, before you try the request again.
299//
300// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSets
301func (c *Route53) ChangeResourceRecordSets(input *ChangeResourceRecordSetsInput) (*ChangeResourceRecordSetsOutput, error) {
302	req, out := c.ChangeResourceRecordSetsRequest(input)
303	return out, req.Send()
304}
305
306// ChangeResourceRecordSetsWithContext is the same as ChangeResourceRecordSets with the addition of
307// the ability to pass a context and additional request options.
308//
309// See ChangeResourceRecordSets for details on how to use this API operation.
310//
311// The context must be non-nil and will be used for request cancellation. If
312// the context is nil a panic will occur. In the future the SDK may create
313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
314// for more information on using Contexts.
315func (c *Route53) ChangeResourceRecordSetsWithContext(ctx aws.Context, input *ChangeResourceRecordSetsInput, opts ...request.Option) (*ChangeResourceRecordSetsOutput, error) {
316	req, out := c.ChangeResourceRecordSetsRequest(input)
317	req.SetContext(ctx)
318	req.ApplyOptions(opts...)
319	return out, req.Send()
320}
321
322const opChangeTagsForResource = "ChangeTagsForResource"
323
324// ChangeTagsForResourceRequest generates a "aws/request.Request" representing the
325// client's request for the ChangeTagsForResource operation. The "output" return
326// value will be populated with the request's response once the request completes
327// successfully.
328//
329// Use "Send" method on the returned Request to send the API call to the service.
330// the "output" return value is not valid until after Send returns without error.
331//
332// See ChangeTagsForResource for more information on using the ChangeTagsForResource
333// API call, and error handling.
334//
335// This method is useful when you want to inject custom logic or configuration
336// into the SDK's request lifecycle. Such as custom headers, or retry logic.
337//
338//
339//    // Example sending a request using the ChangeTagsForResourceRequest method.
340//    req, resp := client.ChangeTagsForResourceRequest(params)
341//
342//    err := req.Send()
343//    if err == nil { // resp is now filled
344//        fmt.Println(resp)
345//    }
346//
347// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResource
348func (c *Route53) ChangeTagsForResourceRequest(input *ChangeTagsForResourceInput) (req *request.Request, output *ChangeTagsForResourceOutput) {
349	op := &request.Operation{
350		Name:       opChangeTagsForResource,
351		HTTPMethod: "POST",
352		HTTPPath:   "/2013-04-01/tags/{ResourceType}/{ResourceId}",
353	}
354
355	if input == nil {
356		input = &ChangeTagsForResourceInput{}
357	}
358
359	output = &ChangeTagsForResourceOutput{}
360	req = c.newRequest(op, input, output)
361	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
362	return
363}
364
365// ChangeTagsForResource API operation for Amazon Route 53.
366//
367// Adds, edits, or deletes tags for a health check or a hosted zone.
368//
369// For information about using tags for cost allocation, see Using Cost Allocation
370// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
371// in the AWS Billing and Cost Management User Guide.
372//
373// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
374// with awserr.Error's Code and Message methods to get detailed information about
375// the error.
376//
377// See the AWS API reference guide for Amazon Route 53's
378// API operation ChangeTagsForResource for usage and error information.
379//
380// Returned Error Codes:
381//   * ErrCodeInvalidInput "InvalidInput"
382//   The input is not valid.
383//
384//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
385//   No health check exists with the specified ID.
386//
387//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
388//   No hosted zone exists with the ID that you specified.
389//
390//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
391//   If Amazon Route 53 can't process a request before the next request arrives,
392//   it will reject subsequent requests for the same hosted zone and return an
393//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
394//   the same request, we recommend that you wait, in intervals of increasing
395//   duration, before you try the request again.
396//
397//   * ErrCodeThrottlingException "ThrottlingException"
398//   The limit on the number of requests per second was exceeded.
399//
400// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResource
401func (c *Route53) ChangeTagsForResource(input *ChangeTagsForResourceInput) (*ChangeTagsForResourceOutput, error) {
402	req, out := c.ChangeTagsForResourceRequest(input)
403	return out, req.Send()
404}
405
406// ChangeTagsForResourceWithContext is the same as ChangeTagsForResource with the addition of
407// the ability to pass a context and additional request options.
408//
409// See ChangeTagsForResource for details on how to use this API operation.
410//
411// The context must be non-nil and will be used for request cancellation. If
412// the context is nil a panic will occur. In the future the SDK may create
413// sub-contexts for http.Requests. See https://golang.org/pkg/context/
414// for more information on using Contexts.
415func (c *Route53) ChangeTagsForResourceWithContext(ctx aws.Context, input *ChangeTagsForResourceInput, opts ...request.Option) (*ChangeTagsForResourceOutput, error) {
416	req, out := c.ChangeTagsForResourceRequest(input)
417	req.SetContext(ctx)
418	req.ApplyOptions(opts...)
419	return out, req.Send()
420}
421
422const opCreateHealthCheck = "CreateHealthCheck"
423
424// CreateHealthCheckRequest generates a "aws/request.Request" representing the
425// client's request for the CreateHealthCheck operation. The "output" return
426// value will be populated with the request's response once the request completes
427// successfully.
428//
429// Use "Send" method on the returned Request to send the API call to the service.
430// the "output" return value is not valid until after Send returns without error.
431//
432// See CreateHealthCheck for more information on using the CreateHealthCheck
433// API call, and error handling.
434//
435// This method is useful when you want to inject custom logic or configuration
436// into the SDK's request lifecycle. Such as custom headers, or retry logic.
437//
438//
439//    // Example sending a request using the CreateHealthCheckRequest method.
440//    req, resp := client.CreateHealthCheckRequest(params)
441//
442//    err := req.Send()
443//    if err == nil { // resp is now filled
444//        fmt.Println(resp)
445//    }
446//
447// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheck
448func (c *Route53) CreateHealthCheckRequest(input *CreateHealthCheckInput) (req *request.Request, output *CreateHealthCheckOutput) {
449	op := &request.Operation{
450		Name:       opCreateHealthCheck,
451		HTTPMethod: "POST",
452		HTTPPath:   "/2013-04-01/healthcheck",
453	}
454
455	if input == nil {
456		input = &CreateHealthCheckInput{}
457	}
458
459	output = &CreateHealthCheckOutput{}
460	req = c.newRequest(op, input, output)
461	return
462}
463
464// CreateHealthCheck API operation for Amazon Route 53.
465//
466// Creates a new health check.
467//
468// For information about adding health checks to resource record sets, see HealthCheckId
469// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html#Route53-Type-ResourceRecordSet-HealthCheckId)
470// in ChangeResourceRecordSets (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html).
471//
472// ELB Load Balancers
473//
474// If you're registering EC2 instances with an Elastic Load Balancing (ELB)
475// load balancer, do not create Amazon Route 53 health checks for the EC2 instances.
476// When you register an EC2 instance with a load balancer, you configure settings
477// for an ELB health check, which performs a similar function to a Route 53
478// health check.
479//
480// Private Hosted Zones
481//
482// You can associate health checks with failover resource record sets in a private
483// hosted zone. Note the following:
484//
485//    * Route 53 health checkers are outside the VPC. To check the health of
486//    an endpoint within a VPC by IP address, you must assign a public IP address
487//    to the instance in the VPC.
488//
489//    * You can configure a health checker to check the health of an external
490//    resource that the instance relies on, such as a database server.
491//
492//    * You can create a CloudWatch metric, associate an alarm with the metric,
493//    and then create a health check that is based on the state of the alarm.
494//    For example, you might create a CloudWatch metric that checks the status
495//    of the Amazon EC2 StatusCheckFailed metric, add an alarm to the metric,
496//    and then create a health check that is based on the state of the alarm.
497//    For information about creating CloudWatch metrics and alarms by using
498//    the CloudWatch console, see the Amazon CloudWatch User Guide (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html).
499//
500// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
501// with awserr.Error's Code and Message methods to get detailed information about
502// the error.
503//
504// See the AWS API reference guide for Amazon Route 53's
505// API operation CreateHealthCheck for usage and error information.
506//
507// Returned Error Codes:
508//   * ErrCodeTooManyHealthChecks "TooManyHealthChecks"
509//   This health check can't be created because the current account has reached
510//   the limit on the number of active health checks.
511//
512//   For information about default limits, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
513//   in the Amazon Route 53 Developer Guide.
514//
515//   For information about how to get the current limit for an account, see GetAccountLimit
516//   (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html).
517//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
518//   with the AWS Support Center.
519//
520//   You have reached the maximum number of active health checks for an AWS account.
521//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
522//   with the AWS Support Center.
523//
524//   * ErrCodeHealthCheckAlreadyExists "HealthCheckAlreadyExists"
525//   The health check you're attempting to create already exists. Amazon Route
526//   53 returns this error when you submit a request that has the following values:
527//
528//      * The same value for CallerReference as an existing health check, and
529//      one or more values that differ from the existing health check that has
530//      the same caller reference.
531//
532//      * The same value for CallerReference as a health check that you created
533//      and later deleted, regardless of the other settings in the request.
534//
535//   * ErrCodeInvalidInput "InvalidInput"
536//   The input is not valid.
537//
538// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheck
539func (c *Route53) CreateHealthCheck(input *CreateHealthCheckInput) (*CreateHealthCheckOutput, error) {
540	req, out := c.CreateHealthCheckRequest(input)
541	return out, req.Send()
542}
543
544// CreateHealthCheckWithContext is the same as CreateHealthCheck with the addition of
545// the ability to pass a context and additional request options.
546//
547// See CreateHealthCheck for details on how to use this API operation.
548//
549// The context must be non-nil and will be used for request cancellation. If
550// the context is nil a panic will occur. In the future the SDK may create
551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
552// for more information on using Contexts.
553func (c *Route53) CreateHealthCheckWithContext(ctx aws.Context, input *CreateHealthCheckInput, opts ...request.Option) (*CreateHealthCheckOutput, error) {
554	req, out := c.CreateHealthCheckRequest(input)
555	req.SetContext(ctx)
556	req.ApplyOptions(opts...)
557	return out, req.Send()
558}
559
560const opCreateHostedZone = "CreateHostedZone"
561
562// CreateHostedZoneRequest generates a "aws/request.Request" representing the
563// client's request for the CreateHostedZone operation. The "output" return
564// value will be populated with the request's response once the request completes
565// successfully.
566//
567// Use "Send" method on the returned Request to send the API call to the service.
568// the "output" return value is not valid until after Send returns without error.
569//
570// See CreateHostedZone for more information on using the CreateHostedZone
571// API call, and error handling.
572//
573// This method is useful when you want to inject custom logic or configuration
574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
575//
576//
577//    // Example sending a request using the CreateHostedZoneRequest method.
578//    req, resp := client.CreateHostedZoneRequest(params)
579//
580//    err := req.Send()
581//    if err == nil { // resp is now filled
582//        fmt.Println(resp)
583//    }
584//
585// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZone
586func (c *Route53) CreateHostedZoneRequest(input *CreateHostedZoneInput) (req *request.Request, output *CreateHostedZoneOutput) {
587	op := &request.Operation{
588		Name:       opCreateHostedZone,
589		HTTPMethod: "POST",
590		HTTPPath:   "/2013-04-01/hostedzone",
591	}
592
593	if input == nil {
594		input = &CreateHostedZoneInput{}
595	}
596
597	output = &CreateHostedZoneOutput{}
598	req = c.newRequest(op, input, output)
599	return
600}
601
602// CreateHostedZone API operation for Amazon Route 53.
603//
604// Creates a new public or private hosted zone. You create records in a public
605// hosted zone to define how you want to route traffic on the internet for a
606// domain, such as example.com, and its subdomains (apex.example.com, acme.example.com).
607// You create records in a private hosted zone to define how you want to route
608// traffic for a domain and its subdomains within one or more Amazon Virtual
609// Private Clouds (Amazon VPCs).
610//
611// You can't convert a public hosted zone to a private hosted zone or vice versa.
612// Instead, you must create a new hosted zone with the same name and create
613// new resource record sets.
614//
615// For more information about charges for hosted zones, see Amazon Route 53
616// Pricing (http://aws.amazon.com/route53/pricing/).
617//
618// Note the following:
619//
620//    * You can't create a hosted zone for a top-level domain (TLD) such as
621//    .com.
622//
623//    * For public hosted zones, Amazon Route 53 automatically creates a default
624//    SOA record and four NS records for the zone. For more information about
625//    SOA and NS records, see NS and SOA Records that Route 53 Creates for a
626//    Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html)
627//    in the Amazon Route 53 Developer Guide. If you want to use the same name
628//    servers for multiple public hosted zones, you can optionally associate
629//    a reusable delegation set with the hosted zone. See the DelegationSetId
630//    element.
631//
632//    * If your domain is registered with a registrar other than Route 53, you
633//    must update the name servers with your registrar to make Route 53 the
634//    DNS service for the domain. For more information, see Migrating DNS Service
635//    for an Existing Domain to Amazon Route 53 (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html)
636//    in the Amazon Route 53 Developer Guide.
637//
638// When you submit a CreateHostedZone request, the initial status of the hosted
639// zone is PENDING. For public hosted zones, this means that the NS and SOA
640// records are not yet available on all Route 53 DNS servers. When the NS and
641// SOA records are available, the status of the zone changes to INSYNC.
642//
643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
644// with awserr.Error's Code and Message methods to get detailed information about
645// the error.
646//
647// See the AWS API reference guide for Amazon Route 53's
648// API operation CreateHostedZone for usage and error information.
649//
650// Returned Error Codes:
651//   * ErrCodeInvalidDomainName "InvalidDomainName"
652//   The specified domain name is not valid.
653//
654//   * ErrCodeHostedZoneAlreadyExists "HostedZoneAlreadyExists"
655//   The hosted zone you're trying to create already exists. Amazon Route 53 returns
656//   this error when a hosted zone has already been created with the specified
657//   CallerReference.
658//
659//   * ErrCodeTooManyHostedZones "TooManyHostedZones"
660//   This operation can't be completed either because the current account has
661//   reached the limit on the number of hosted zones or because you've reached
662//   the limit on the number of hosted zones that can be associated with a reusable
663//   delegation set.
664//
665//   For information about default limits, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
666//   in the Amazon Route 53 Developer Guide.
667//
668//   To get the current limit on hosted zones that can be created by an account,
669//   see GetAccountLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html).
670//
671//   To get the current limit on hosted zones that can be associated with a reusable
672//   delegation set, see GetReusableDelegationSetLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSetLimit.html).
673//
674//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
675//   with the AWS Support Center.
676//
677//   * ErrCodeInvalidVPCId "InvalidVPCId"
678//   The VPC ID that you specified either isn't a valid ID or the current account
679//   is not authorized to access this VPC.
680//
681//   * ErrCodeInvalidInput "InvalidInput"
682//   The input is not valid.
683//
684//   * ErrCodeDelegationSetNotAvailable "DelegationSetNotAvailable"
685//   You can create a hosted zone that has the same name as an existing hosted
686//   zone (example.com is common), but there is a limit to the number of hosted
687//   zones that have the same name. If you get this error, Amazon Route 53 has
688//   reached that limit. If you own the domain name and Route 53 generates this
689//   error, contact Customer Support.
690//
691//   * ErrCodeConflictingDomainExists "ConflictingDomainExists"
692//   The cause of this error depends on whether you're trying to create a public
693//   or a private hosted zone:
694//
695//      * Public hosted zone: Two hosted zones that have the same name or that
696//      have a parent/child relationship (example.com and test.example.com) can't
697//      have any common name servers. You tried to create a hosted zone that has
698//      the same name as an existing hosted zone or that's the parent or child
699//      of an existing hosted zone, and you specified a delegation set that shares
700//      one or more name servers with the existing hosted zone. For more information,
701//      see CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html).
702//
703//      * Private hosted zone: You specified an Amazon VPC that you're already
704//      using for another hosted zone, and the domain that you specified for one
705//      of the hosted zones is a subdomain of the domain that you specified for
706//      the other hosted zone. For example, you can't use the same Amazon VPC
707//      for the hosted zones for example.com and test.example.com.
708//
709//   * ErrCodeNoSuchDelegationSet "NoSuchDelegationSet"
710//   A reusable delegation set with the specified ID does not exist.
711//
712//   * ErrCodeDelegationSetNotReusable "DelegationSetNotReusable"
713//   A reusable delegation set with the specified ID does not exist.
714//
715// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZone
716func (c *Route53) CreateHostedZone(input *CreateHostedZoneInput) (*CreateHostedZoneOutput, error) {
717	req, out := c.CreateHostedZoneRequest(input)
718	return out, req.Send()
719}
720
721// CreateHostedZoneWithContext is the same as CreateHostedZone with the addition of
722// the ability to pass a context and additional request options.
723//
724// See CreateHostedZone for details on how to use this API operation.
725//
726// The context must be non-nil and will be used for request cancellation. If
727// the context is nil a panic will occur. In the future the SDK may create
728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
729// for more information on using Contexts.
730func (c *Route53) CreateHostedZoneWithContext(ctx aws.Context, input *CreateHostedZoneInput, opts ...request.Option) (*CreateHostedZoneOutput, error) {
731	req, out := c.CreateHostedZoneRequest(input)
732	req.SetContext(ctx)
733	req.ApplyOptions(opts...)
734	return out, req.Send()
735}
736
737const opCreateQueryLoggingConfig = "CreateQueryLoggingConfig"
738
739// CreateQueryLoggingConfigRequest generates a "aws/request.Request" representing the
740// client's request for the CreateQueryLoggingConfig operation. The "output" return
741// value will be populated with the request's response once the request completes
742// successfully.
743//
744// Use "Send" method on the returned Request to send the API call to the service.
745// the "output" return value is not valid until after Send returns without error.
746//
747// See CreateQueryLoggingConfig for more information on using the CreateQueryLoggingConfig
748// API call, and error handling.
749//
750// This method is useful when you want to inject custom logic or configuration
751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
752//
753//
754//    // Example sending a request using the CreateQueryLoggingConfigRequest method.
755//    req, resp := client.CreateQueryLoggingConfigRequest(params)
756//
757//    err := req.Send()
758//    if err == nil { // resp is now filled
759//        fmt.Println(resp)
760//    }
761//
762// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfig
763func (c *Route53) CreateQueryLoggingConfigRequest(input *CreateQueryLoggingConfigInput) (req *request.Request, output *CreateQueryLoggingConfigOutput) {
764	op := &request.Operation{
765		Name:       opCreateQueryLoggingConfig,
766		HTTPMethod: "POST",
767		HTTPPath:   "/2013-04-01/queryloggingconfig",
768	}
769
770	if input == nil {
771		input = &CreateQueryLoggingConfigInput{}
772	}
773
774	output = &CreateQueryLoggingConfigOutput{}
775	req = c.newRequest(op, input, output)
776	return
777}
778
779// CreateQueryLoggingConfig API operation for Amazon Route 53.
780//
781// Creates a configuration for DNS query logging. After you create a query logging
782// configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch
783// Logs log group.
784//
785// DNS query logs contain information about the queries that Route 53 receives
786// for a specified public hosted zone, such as the following:
787//
788//    * Route 53 edge location that responded to the DNS query
789//
790//    * Domain or subdomain that was requested
791//
792//    * DNS record type, such as A or AAAA
793//
794//    * DNS response code, such as NoError or ServFail
795//
796// Log Group and Resource Policy
797//
798// Before you create a query logging configuration, perform the following operations.
799//
800// If you create a query logging configuration using the Route 53 console, Route
801// 53 performs these operations automatically.
802//
803// Create a CloudWatch Logs log group, and make note of the ARN, which you specify
804// when you create a query logging configuration. Note the following:
805//
806//    * You must create the log group in the us-east-1 region.
807//
808//    * You must use the same AWS account to create the log group and the hosted
809//    zone that you want to configure query logging for.
810//
811//    * When you create log groups for query logging, we recommend that you
812//    use a consistent prefix, for example: /aws/route53/hosted zone name In
813//    the next step, you'll create a resource policy, which controls access
814//    to one or more log groups and the associated AWS resources, such as Route
815//    53 hosted zones. There's a limit on the number of resource policies that
816//    you can create, so we recommend that you use a consistent prefix so you
817//    can use the same resource policy for all the log groups that you create
818//    for query logging.
819//
820// Create a CloudWatch Logs resource policy, and give it the permissions that
821// Route 53 needs to create log streams and to send query logs to log streams.
822// For the value of Resource, specify the ARN for the log group that you created
823// in the previous step. To use the same resource policy for all the CloudWatch
824// Logs log groups that you created for query logging configurations, replace
825// the hosted zone name with *, for example:
826//
827// arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/*
828//
829// You can't use the CloudWatch console to create or edit a resource policy.
830// You must use the CloudWatch API, one of the AWS SDKs, or the AWS CLI.
831//
832// Log Streams and Edge Locations
833//
834// When Route 53 finishes creating the configuration for DNS query logging,
835// it does the following:
836//
837//    * Creates a log stream for an edge location the first time that the edge
838//    location responds to DNS queries for the specified hosted zone. That log
839//    stream is used to log all queries that Route 53 responds to for that edge
840//    location.
841//
842//    * Begins to send query logs to the applicable log stream.
843//
844// The name of each log stream is in the following format:
845//
846// hosted zone ID/edge location code
847//
848// The edge location code is a three-letter code and an arbitrarily assigned
849// number, for example, DFW3. The three-letter code typically corresponds with
850// the International Air Transport Association airport code for an airport near
851// the edge location. (These abbreviations might change in the future.) For
852// a list of edge locations, see "The Route 53 Global Network" on the Route
853// 53 Product Details (http://aws.amazon.com/route53/details/) page.
854//
855// Queries That Are Logged
856//
857// Query logs contain only the queries that DNS resolvers forward to Route 53.
858// If a DNS resolver has already cached the response to a query (such as the
859// IP address for a load balancer for example.com), the resolver will continue
860// to return the cached response. It doesn't forward another query to Route
861// 53 until the TTL for the corresponding resource record set expires. Depending
862// on how many DNS queries are submitted for a resource record set, and depending
863// on the TTL for that resource record set, query logs might contain information
864// about only one query out of every several thousand queries that are submitted
865// to DNS. For more information about how DNS works, see Routing Internet Traffic
866// to Your Website or Web Application (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/welcome-dns-service.html)
867// in the Amazon Route 53 Developer Guide.
868//
869// Log File Format
870//
871// For a list of the values in each query log and the format of each value,
872// see Logging DNS Queries (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html)
873// in the Amazon Route 53 Developer Guide.
874//
875// Pricing
876//
877// For information about charges for query logs, see Amazon CloudWatch Pricing
878// (http://aws.amazon.com/cloudwatch/pricing/).
879//
880// How to Stop Logging
881//
882// If you want Route 53 to stop sending query logs to CloudWatch Logs, delete
883// the query logging configuration. For more information, see DeleteQueryLoggingConfig
884// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteQueryLoggingConfig.html).
885//
886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
887// with awserr.Error's Code and Message methods to get detailed information about
888// the error.
889//
890// See the AWS API reference guide for Amazon Route 53's
891// API operation CreateQueryLoggingConfig for usage and error information.
892//
893// Returned Error Codes:
894//   * ErrCodeConcurrentModification "ConcurrentModification"
895//   Another user submitted a request to create, update, or delete the object
896//   at the same time that you did. Retry the request.
897//
898//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
899//   No hosted zone exists with the ID that you specified.
900//
901//   * ErrCodeNoSuchCloudWatchLogsLogGroup "NoSuchCloudWatchLogsLogGroup"
902//   There is no CloudWatch Logs log group with the specified ARN.
903//
904//   * ErrCodeInvalidInput "InvalidInput"
905//   The input is not valid.
906//
907//   * ErrCodeQueryLoggingConfigAlreadyExists "QueryLoggingConfigAlreadyExists"
908//   You can create only one query logging configuration for a hosted zone, and
909//   a query logging configuration already exists for this hosted zone.
910//
911//   * ErrCodeInsufficientCloudWatchLogsResourcePolicy "InsufficientCloudWatchLogsResourcePolicy"
912//   Amazon Route 53 doesn't have the permissions required to create log streams
913//   and send query logs to log streams. Possible causes include the following:
914//
915//      * There is no resource policy that specifies the log group ARN in the
916//      value for Resource.
917//
918//      * The resource policy that includes the log group ARN in the value for
919//      Resource doesn't have the necessary permissions.
920//
921//      * The resource policy hasn't finished propagating yet.
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfig
924func (c *Route53) CreateQueryLoggingConfig(input *CreateQueryLoggingConfigInput) (*CreateQueryLoggingConfigOutput, error) {
925	req, out := c.CreateQueryLoggingConfigRequest(input)
926	return out, req.Send()
927}
928
929// CreateQueryLoggingConfigWithContext is the same as CreateQueryLoggingConfig with the addition of
930// the ability to pass a context and additional request options.
931//
932// See CreateQueryLoggingConfig for details on how to use this API operation.
933//
934// The context must be non-nil and will be used for request cancellation. If
935// the context is nil a panic will occur. In the future the SDK may create
936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
937// for more information on using Contexts.
938func (c *Route53) CreateQueryLoggingConfigWithContext(ctx aws.Context, input *CreateQueryLoggingConfigInput, opts ...request.Option) (*CreateQueryLoggingConfigOutput, error) {
939	req, out := c.CreateQueryLoggingConfigRequest(input)
940	req.SetContext(ctx)
941	req.ApplyOptions(opts...)
942	return out, req.Send()
943}
944
945const opCreateReusableDelegationSet = "CreateReusableDelegationSet"
946
947// CreateReusableDelegationSetRequest generates a "aws/request.Request" representing the
948// client's request for the CreateReusableDelegationSet operation. The "output" return
949// value will be populated with the request's response once the request completes
950// successfully.
951//
952// Use "Send" method on the returned Request to send the API call to the service.
953// the "output" return value is not valid until after Send returns without error.
954//
955// See CreateReusableDelegationSet for more information on using the CreateReusableDelegationSet
956// API call, and error handling.
957//
958// This method is useful when you want to inject custom logic or configuration
959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
960//
961//
962//    // Example sending a request using the CreateReusableDelegationSetRequest method.
963//    req, resp := client.CreateReusableDelegationSetRequest(params)
964//
965//    err := req.Send()
966//    if err == nil { // resp is now filled
967//        fmt.Println(resp)
968//    }
969//
970// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSet
971func (c *Route53) CreateReusableDelegationSetRequest(input *CreateReusableDelegationSetInput) (req *request.Request, output *CreateReusableDelegationSetOutput) {
972	op := &request.Operation{
973		Name:       opCreateReusableDelegationSet,
974		HTTPMethod: "POST",
975		HTTPPath:   "/2013-04-01/delegationset",
976	}
977
978	if input == nil {
979		input = &CreateReusableDelegationSetInput{}
980	}
981
982	output = &CreateReusableDelegationSetOutput{}
983	req = c.newRequest(op, input, output)
984	return
985}
986
987// CreateReusableDelegationSet API operation for Amazon Route 53.
988//
989// Creates a delegation set (a group of four name servers) that can be reused
990// by multiple hosted zones. If a hosted zoned ID is specified, CreateReusableDelegationSet
991// marks the delegation set associated with that zone as reusable.
992//
993// You can't associate a reusable delegation set with a private hosted zone.
994//
995// For information about using a reusable delegation set to configure white
996// label name servers, see Configuring White Label Name Servers (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/white-label-name-servers.html).
997//
998// The process for migrating existing hosted zones to use a reusable delegation
999// set is comparable to the process for configuring white label name servers.
1000// You need to perform the following steps:
1001//
1002// Create a reusable delegation set.
1003//
1004// Recreate hosted zones, and reduce the TTL to 60 seconds or less.
1005//
1006// Recreate resource record sets in the new hosted zones.
1007//
1008// Change the registrar's name servers to use the name servers for the new hosted
1009// zones.
1010//
1011// Monitor traffic for the website or application.
1012//
1013// Change TTLs back to their original values.
1014//
1015// If you want to migrate existing hosted zones to use a reusable delegation
1016// set, the existing hosted zones can't use any of the name servers that are
1017// assigned to the reusable delegation set. If one or more hosted zones do use
1018// one or more name servers that are assigned to the reusable delegation set,
1019// you can do one of the following:
1020//
1021//    * For small numbers of hosted zones—up to a few hundred—it's relatively
1022//    easy to create reusable delegation sets until you get one that has four
1023//    name servers that don't overlap with any of the name servers in your hosted
1024//    zones.
1025//
1026//    * For larger numbers of hosted zones, the easiest solution is to use more
1027//    than one reusable delegation set.
1028//
1029//    * For larger numbers of hosted zones, you can also migrate hosted zones
1030//    that have overlapping name servers to hosted zones that don't have overlapping
1031//    name servers, then migrate the hosted zones again to use the reusable
1032//    delegation set.
1033//
1034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1035// with awserr.Error's Code and Message methods to get detailed information about
1036// the error.
1037//
1038// See the AWS API reference guide for Amazon Route 53's
1039// API operation CreateReusableDelegationSet for usage and error information.
1040//
1041// Returned Error Codes:
1042//   * ErrCodeDelegationSetAlreadyCreated "DelegationSetAlreadyCreated"
1043//   A delegation set with the same owner and caller reference combination has
1044//   already been created.
1045//
1046//   * ErrCodeLimitsExceeded "LimitsExceeded"
1047//   This operation can't be completed either because the current account has
1048//   reached the limit on reusable delegation sets that it can create or because
1049//   you've reached the limit on the number of Amazon VPCs that you can associate
1050//   with a private hosted zone. To get the current limit on the number of reusable
1051//   delegation sets, see GetAccountLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html).
1052//   To get the current limit on the number of Amazon VPCs that you can associate
1053//   with a private hosted zone, see GetHostedZoneLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetHostedZoneLimit.html).
1054//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
1055//   with the AWS Support Center.
1056//
1057//   * ErrCodeHostedZoneNotFound "HostedZoneNotFound"
1058//   The specified HostedZone can't be found.
1059//
1060//   * ErrCodeInvalidArgument "InvalidArgument"
1061//   Parameter name is invalid.
1062//
1063//   * ErrCodeInvalidInput "InvalidInput"
1064//   The input is not valid.
1065//
1066//   * ErrCodeDelegationSetNotAvailable "DelegationSetNotAvailable"
1067//   You can create a hosted zone that has the same name as an existing hosted
1068//   zone (example.com is common), but there is a limit to the number of hosted
1069//   zones that have the same name. If you get this error, Amazon Route 53 has
1070//   reached that limit. If you own the domain name and Route 53 generates this
1071//   error, contact Customer Support.
1072//
1073//   * ErrCodeDelegationSetAlreadyReusable "DelegationSetAlreadyReusable"
1074//   The specified delegation set has already been marked as reusable.
1075//
1076// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSet
1077func (c *Route53) CreateReusableDelegationSet(input *CreateReusableDelegationSetInput) (*CreateReusableDelegationSetOutput, error) {
1078	req, out := c.CreateReusableDelegationSetRequest(input)
1079	return out, req.Send()
1080}
1081
1082// CreateReusableDelegationSetWithContext is the same as CreateReusableDelegationSet with the addition of
1083// the ability to pass a context and additional request options.
1084//
1085// See CreateReusableDelegationSet for details on how to use this API operation.
1086//
1087// The context must be non-nil and will be used for request cancellation. If
1088// the context is nil a panic will occur. In the future the SDK may create
1089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1090// for more information on using Contexts.
1091func (c *Route53) CreateReusableDelegationSetWithContext(ctx aws.Context, input *CreateReusableDelegationSetInput, opts ...request.Option) (*CreateReusableDelegationSetOutput, error) {
1092	req, out := c.CreateReusableDelegationSetRequest(input)
1093	req.SetContext(ctx)
1094	req.ApplyOptions(opts...)
1095	return out, req.Send()
1096}
1097
1098const opCreateTrafficPolicy = "CreateTrafficPolicy"
1099
1100// CreateTrafficPolicyRequest generates a "aws/request.Request" representing the
1101// client's request for the CreateTrafficPolicy operation. The "output" return
1102// value will be populated with the request's response once the request completes
1103// successfully.
1104//
1105// Use "Send" method on the returned Request to send the API call to the service.
1106// the "output" return value is not valid until after Send returns without error.
1107//
1108// See CreateTrafficPolicy for more information on using the CreateTrafficPolicy
1109// API call, and error handling.
1110//
1111// This method is useful when you want to inject custom logic or configuration
1112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1113//
1114//
1115//    // Example sending a request using the CreateTrafficPolicyRequest method.
1116//    req, resp := client.CreateTrafficPolicyRequest(params)
1117//
1118//    err := req.Send()
1119//    if err == nil { // resp is now filled
1120//        fmt.Println(resp)
1121//    }
1122//
1123// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicy
1124func (c *Route53) CreateTrafficPolicyRequest(input *CreateTrafficPolicyInput) (req *request.Request, output *CreateTrafficPolicyOutput) {
1125	op := &request.Operation{
1126		Name:       opCreateTrafficPolicy,
1127		HTTPMethod: "POST",
1128		HTTPPath:   "/2013-04-01/trafficpolicy",
1129	}
1130
1131	if input == nil {
1132		input = &CreateTrafficPolicyInput{}
1133	}
1134
1135	output = &CreateTrafficPolicyOutput{}
1136	req = c.newRequest(op, input, output)
1137	return
1138}
1139
1140// CreateTrafficPolicy API operation for Amazon Route 53.
1141//
1142// Creates a traffic policy, which you use to create multiple DNS resource record
1143// sets for one domain name (such as example.com) or one subdomain name (such
1144// as www.example.com).
1145//
1146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1147// with awserr.Error's Code and Message methods to get detailed information about
1148// the error.
1149//
1150// See the AWS API reference guide for Amazon Route 53's
1151// API operation CreateTrafficPolicy for usage and error information.
1152//
1153// Returned Error Codes:
1154//   * ErrCodeInvalidInput "InvalidInput"
1155//   The input is not valid.
1156//
1157//   * ErrCodeTooManyTrafficPolicies "TooManyTrafficPolicies"
1158//   This traffic policy can't be created because the current account has reached
1159//   the limit on the number of traffic policies.
1160//
1161//   For information about default limits, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
1162//   in the Amazon Route 53 Developer Guide.
1163//
1164//   To get the current limit for an account, see GetAccountLimit (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html).
1165//
1166//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
1167//   with the AWS Support Center.
1168//
1169//   * ErrCodeTrafficPolicyAlreadyExists "TrafficPolicyAlreadyExists"
1170//   A traffic policy that has the same value for Name already exists.
1171//
1172//   * ErrCodeInvalidTrafficPolicyDocument "InvalidTrafficPolicyDocument"
1173//   The format of the traffic policy document that you specified in the Document
1174//   element is invalid.
1175//
1176// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicy
1177func (c *Route53) CreateTrafficPolicy(input *CreateTrafficPolicyInput) (*CreateTrafficPolicyOutput, error) {
1178	req, out := c.CreateTrafficPolicyRequest(input)
1179	return out, req.Send()
1180}
1181
1182// CreateTrafficPolicyWithContext is the same as CreateTrafficPolicy with the addition of
1183// the ability to pass a context and additional request options.
1184//
1185// See CreateTrafficPolicy for details on how to use this API operation.
1186//
1187// The context must be non-nil and will be used for request cancellation. If
1188// the context is nil a panic will occur. In the future the SDK may create
1189// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1190// for more information on using Contexts.
1191func (c *Route53) CreateTrafficPolicyWithContext(ctx aws.Context, input *CreateTrafficPolicyInput, opts ...request.Option) (*CreateTrafficPolicyOutput, error) {
1192	req, out := c.CreateTrafficPolicyRequest(input)
1193	req.SetContext(ctx)
1194	req.ApplyOptions(opts...)
1195	return out, req.Send()
1196}
1197
1198const opCreateTrafficPolicyInstance = "CreateTrafficPolicyInstance"
1199
1200// CreateTrafficPolicyInstanceRequest generates a "aws/request.Request" representing the
1201// client's request for the CreateTrafficPolicyInstance operation. The "output" return
1202// value will be populated with the request's response once the request completes
1203// successfully.
1204//
1205// Use "Send" method on the returned Request to send the API call to the service.
1206// the "output" return value is not valid until after Send returns without error.
1207//
1208// See CreateTrafficPolicyInstance for more information on using the CreateTrafficPolicyInstance
1209// API call, and error handling.
1210//
1211// This method is useful when you want to inject custom logic or configuration
1212// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1213//
1214//
1215//    // Example sending a request using the CreateTrafficPolicyInstanceRequest method.
1216//    req, resp := client.CreateTrafficPolicyInstanceRequest(params)
1217//
1218//    err := req.Send()
1219//    if err == nil { // resp is now filled
1220//        fmt.Println(resp)
1221//    }
1222//
1223// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstance
1224func (c *Route53) CreateTrafficPolicyInstanceRequest(input *CreateTrafficPolicyInstanceInput) (req *request.Request, output *CreateTrafficPolicyInstanceOutput) {
1225	op := &request.Operation{
1226		Name:       opCreateTrafficPolicyInstance,
1227		HTTPMethod: "POST",
1228		HTTPPath:   "/2013-04-01/trafficpolicyinstance",
1229	}
1230
1231	if input == nil {
1232		input = &CreateTrafficPolicyInstanceInput{}
1233	}
1234
1235	output = &CreateTrafficPolicyInstanceOutput{}
1236	req = c.newRequest(op, input, output)
1237	return
1238}
1239
1240// CreateTrafficPolicyInstance API operation for Amazon Route 53.
1241//
1242// Creates resource record sets in a specified hosted zone based on the settings
1243// in a specified traffic policy version. In addition, CreateTrafficPolicyInstance
1244// associates the resource record sets with a specified domain name (such as
1245// example.com) or subdomain name (such as www.example.com). Amazon Route 53
1246// responds to DNS queries for the domain or subdomain name by using the resource
1247// record sets that CreateTrafficPolicyInstance created.
1248//
1249// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1250// with awserr.Error's Code and Message methods to get detailed information about
1251// the error.
1252//
1253// See the AWS API reference guide for Amazon Route 53's
1254// API operation CreateTrafficPolicyInstance for usage and error information.
1255//
1256// Returned Error Codes:
1257//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
1258//   No hosted zone exists with the ID that you specified.
1259//
1260//   * ErrCodeInvalidInput "InvalidInput"
1261//   The input is not valid.
1262//
1263//   * ErrCodeTooManyTrafficPolicyInstances "TooManyTrafficPolicyInstances"
1264//   This traffic policy instance can't be created because the current account
1265//   has reached the limit on the number of traffic policy instances.
1266//
1267//   For information about default limits, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
1268//   in the Amazon Route 53 Developer Guide.
1269//
1270//   For information about how to get the current limit for an account, see GetAccountLimit
1271//   (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html).
1272//
1273//   To request a higher limit, create a case (http://aws.amazon.com/route53-request)
1274//   with the AWS Support Center.
1275//
1276//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
1277//   No traffic policy exists with the specified ID.
1278//
1279//   * ErrCodeTrafficPolicyInstanceAlreadyExists "TrafficPolicyInstanceAlreadyExists"
1280//   There is already a traffic policy instance with the specified ID.
1281//
1282// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstance
1283func (c *Route53) CreateTrafficPolicyInstance(input *CreateTrafficPolicyInstanceInput) (*CreateTrafficPolicyInstanceOutput, error) {
1284	req, out := c.CreateTrafficPolicyInstanceRequest(input)
1285	return out, req.Send()
1286}
1287
1288// CreateTrafficPolicyInstanceWithContext is the same as CreateTrafficPolicyInstance with the addition of
1289// the ability to pass a context and additional request options.
1290//
1291// See CreateTrafficPolicyInstance for details on how to use this API operation.
1292//
1293// The context must be non-nil and will be used for request cancellation. If
1294// the context is nil a panic will occur. In the future the SDK may create
1295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1296// for more information on using Contexts.
1297func (c *Route53) CreateTrafficPolicyInstanceWithContext(ctx aws.Context, input *CreateTrafficPolicyInstanceInput, opts ...request.Option) (*CreateTrafficPolicyInstanceOutput, error) {
1298	req, out := c.CreateTrafficPolicyInstanceRequest(input)
1299	req.SetContext(ctx)
1300	req.ApplyOptions(opts...)
1301	return out, req.Send()
1302}
1303
1304const opCreateTrafficPolicyVersion = "CreateTrafficPolicyVersion"
1305
1306// CreateTrafficPolicyVersionRequest generates a "aws/request.Request" representing the
1307// client's request for the CreateTrafficPolicyVersion operation. The "output" return
1308// value will be populated with the request's response once the request completes
1309// successfully.
1310//
1311// Use "Send" method on the returned Request to send the API call to the service.
1312// the "output" return value is not valid until after Send returns without error.
1313//
1314// See CreateTrafficPolicyVersion for more information on using the CreateTrafficPolicyVersion
1315// API call, and error handling.
1316//
1317// This method is useful when you want to inject custom logic or configuration
1318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1319//
1320//
1321//    // Example sending a request using the CreateTrafficPolicyVersionRequest method.
1322//    req, resp := client.CreateTrafficPolicyVersionRequest(params)
1323//
1324//    err := req.Send()
1325//    if err == nil { // resp is now filled
1326//        fmt.Println(resp)
1327//    }
1328//
1329// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersion
1330func (c *Route53) CreateTrafficPolicyVersionRequest(input *CreateTrafficPolicyVersionInput) (req *request.Request, output *CreateTrafficPolicyVersionOutput) {
1331	op := &request.Operation{
1332		Name:       opCreateTrafficPolicyVersion,
1333		HTTPMethod: "POST",
1334		HTTPPath:   "/2013-04-01/trafficpolicy/{Id}",
1335	}
1336
1337	if input == nil {
1338		input = &CreateTrafficPolicyVersionInput{}
1339	}
1340
1341	output = &CreateTrafficPolicyVersionOutput{}
1342	req = c.newRequest(op, input, output)
1343	return
1344}
1345
1346// CreateTrafficPolicyVersion API operation for Amazon Route 53.
1347//
1348// Creates a new version of an existing traffic policy. When you create a new
1349// version of a traffic policy, you specify the ID of the traffic policy that
1350// you want to update and a JSON-formatted document that describes the new version.
1351// You use traffic policies to create multiple DNS resource record sets for
1352// one domain name (such as example.com) or one subdomain name (such as www.example.com).
1353// You can create a maximum of 1000 versions of a traffic policy. If you reach
1354// the limit and need to create another version, you'll need to start a new
1355// traffic policy.
1356//
1357// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1358// with awserr.Error's Code and Message methods to get detailed information about
1359// the error.
1360//
1361// See the AWS API reference guide for Amazon Route 53's
1362// API operation CreateTrafficPolicyVersion for usage and error information.
1363//
1364// Returned Error Codes:
1365//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
1366//   No traffic policy exists with the specified ID.
1367//
1368//   * ErrCodeInvalidInput "InvalidInput"
1369//   The input is not valid.
1370//
1371//   * ErrCodeTooManyTrafficPolicyVersionsForCurrentPolicy "TooManyTrafficPolicyVersionsForCurrentPolicy"
1372//   This traffic policy version can't be created because you've reached the limit
1373//   of 1000 on the number of versions that you can create for the current traffic
1374//   policy.
1375//
1376//   To create more traffic policy versions, you can use GetTrafficPolicy (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetTrafficPolicy.html)
1377//   to get the traffic policy document for a specified traffic policy version,
1378//   and then use CreateTrafficPolicy (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateTrafficPolicy.html)
1379//   to create a new traffic policy using the traffic policy document.
1380//
1381//   * ErrCodeConcurrentModification "ConcurrentModification"
1382//   Another user submitted a request to create, update, or delete the object
1383//   at the same time that you did. Retry the request.
1384//
1385//   * ErrCodeInvalidTrafficPolicyDocument "InvalidTrafficPolicyDocument"
1386//   The format of the traffic policy document that you specified in the Document
1387//   element is invalid.
1388//
1389// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersion
1390func (c *Route53) CreateTrafficPolicyVersion(input *CreateTrafficPolicyVersionInput) (*CreateTrafficPolicyVersionOutput, error) {
1391	req, out := c.CreateTrafficPolicyVersionRequest(input)
1392	return out, req.Send()
1393}
1394
1395// CreateTrafficPolicyVersionWithContext is the same as CreateTrafficPolicyVersion with the addition of
1396// the ability to pass a context and additional request options.
1397//
1398// See CreateTrafficPolicyVersion for details on how to use this API operation.
1399//
1400// The context must be non-nil and will be used for request cancellation. If
1401// the context is nil a panic will occur. In the future the SDK may create
1402// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1403// for more information on using Contexts.
1404func (c *Route53) CreateTrafficPolicyVersionWithContext(ctx aws.Context, input *CreateTrafficPolicyVersionInput, opts ...request.Option) (*CreateTrafficPolicyVersionOutput, error) {
1405	req, out := c.CreateTrafficPolicyVersionRequest(input)
1406	req.SetContext(ctx)
1407	req.ApplyOptions(opts...)
1408	return out, req.Send()
1409}
1410
1411const opCreateVPCAssociationAuthorization = "CreateVPCAssociationAuthorization"
1412
1413// CreateVPCAssociationAuthorizationRequest generates a "aws/request.Request" representing the
1414// client's request for the CreateVPCAssociationAuthorization operation. The "output" return
1415// value will be populated with the request's response once the request completes
1416// successfully.
1417//
1418// Use "Send" method on the returned Request to send the API call to the service.
1419// the "output" return value is not valid until after Send returns without error.
1420//
1421// See CreateVPCAssociationAuthorization for more information on using the CreateVPCAssociationAuthorization
1422// API call, and error handling.
1423//
1424// This method is useful when you want to inject custom logic or configuration
1425// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1426//
1427//
1428//    // Example sending a request using the CreateVPCAssociationAuthorizationRequest method.
1429//    req, resp := client.CreateVPCAssociationAuthorizationRequest(params)
1430//
1431//    err := req.Send()
1432//    if err == nil { // resp is now filled
1433//        fmt.Println(resp)
1434//    }
1435//
1436// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorization
1437func (c *Route53) CreateVPCAssociationAuthorizationRequest(input *CreateVPCAssociationAuthorizationInput) (req *request.Request, output *CreateVPCAssociationAuthorizationOutput) {
1438	op := &request.Operation{
1439		Name:       opCreateVPCAssociationAuthorization,
1440		HTTPMethod: "POST",
1441		HTTPPath:   "/2013-04-01/hostedzone/{Id}/authorizevpcassociation",
1442	}
1443
1444	if input == nil {
1445		input = &CreateVPCAssociationAuthorizationInput{}
1446	}
1447
1448	output = &CreateVPCAssociationAuthorizationOutput{}
1449	req = c.newRequest(op, input, output)
1450	return
1451}
1452
1453// CreateVPCAssociationAuthorization API operation for Amazon Route 53.
1454//
1455// Authorizes the AWS account that created a specified VPC to submit an AssociateVPCWithHostedZone
1456// request to associate the VPC with a specified hosted zone that was created
1457// by a different account. To submit a CreateVPCAssociationAuthorization request,
1458// you must use the account that created the hosted zone. After you authorize
1459// the association, use the account that created the VPC to submit an AssociateVPCWithHostedZone
1460// request.
1461//
1462// If you want to associate multiple VPCs that you created by using one account
1463// with a hosted zone that you created by using a different account, you must
1464// submit one authorization request for each VPC.
1465//
1466// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1467// with awserr.Error's Code and Message methods to get detailed information about
1468// the error.
1469//
1470// See the AWS API reference guide for Amazon Route 53's
1471// API operation CreateVPCAssociationAuthorization for usage and error information.
1472//
1473// Returned Error Codes:
1474//   * ErrCodeConcurrentModification "ConcurrentModification"
1475//   Another user submitted a request to create, update, or delete the object
1476//   at the same time that you did. Retry the request.
1477//
1478//   * ErrCodeTooManyVPCAssociationAuthorizations "TooManyVPCAssociationAuthorizations"
1479//   You've created the maximum number of authorizations that can be created for
1480//   the specified hosted zone. To authorize another VPC to be associated with
1481//   the hosted zone, submit a DeleteVPCAssociationAuthorization request to remove
1482//   an existing authorization. To get a list of existing authorizations, submit
1483//   a ListVPCAssociationAuthorizations request.
1484//
1485//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
1486//   No hosted zone exists with the ID that you specified.
1487//
1488//   * ErrCodeInvalidVPCId "InvalidVPCId"
1489//   The VPC ID that you specified either isn't a valid ID or the current account
1490//   is not authorized to access this VPC.
1491//
1492//   * ErrCodeInvalidInput "InvalidInput"
1493//   The input is not valid.
1494//
1495// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorization
1496func (c *Route53) CreateVPCAssociationAuthorization(input *CreateVPCAssociationAuthorizationInput) (*CreateVPCAssociationAuthorizationOutput, error) {
1497	req, out := c.CreateVPCAssociationAuthorizationRequest(input)
1498	return out, req.Send()
1499}
1500
1501// CreateVPCAssociationAuthorizationWithContext is the same as CreateVPCAssociationAuthorization with the addition of
1502// the ability to pass a context and additional request options.
1503//
1504// See CreateVPCAssociationAuthorization for details on how to use this API operation.
1505//
1506// The context must be non-nil and will be used for request cancellation. If
1507// the context is nil a panic will occur. In the future the SDK may create
1508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1509// for more information on using Contexts.
1510func (c *Route53) CreateVPCAssociationAuthorizationWithContext(ctx aws.Context, input *CreateVPCAssociationAuthorizationInput, opts ...request.Option) (*CreateVPCAssociationAuthorizationOutput, error) {
1511	req, out := c.CreateVPCAssociationAuthorizationRequest(input)
1512	req.SetContext(ctx)
1513	req.ApplyOptions(opts...)
1514	return out, req.Send()
1515}
1516
1517const opDeleteHealthCheck = "DeleteHealthCheck"
1518
1519// DeleteHealthCheckRequest generates a "aws/request.Request" representing the
1520// client's request for the DeleteHealthCheck operation. The "output" return
1521// value will be populated with the request's response once the request completes
1522// successfully.
1523//
1524// Use "Send" method on the returned Request to send the API call to the service.
1525// the "output" return value is not valid until after Send returns without error.
1526//
1527// See DeleteHealthCheck for more information on using the DeleteHealthCheck
1528// API call, and error handling.
1529//
1530// This method is useful when you want to inject custom logic or configuration
1531// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1532//
1533//
1534//    // Example sending a request using the DeleteHealthCheckRequest method.
1535//    req, resp := client.DeleteHealthCheckRequest(params)
1536//
1537//    err := req.Send()
1538//    if err == nil { // resp is now filled
1539//        fmt.Println(resp)
1540//    }
1541//
1542// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheck
1543func (c *Route53) DeleteHealthCheckRequest(input *DeleteHealthCheckInput) (req *request.Request, output *DeleteHealthCheckOutput) {
1544	op := &request.Operation{
1545		Name:       opDeleteHealthCheck,
1546		HTTPMethod: "DELETE",
1547		HTTPPath:   "/2013-04-01/healthcheck/{HealthCheckId}",
1548	}
1549
1550	if input == nil {
1551		input = &DeleteHealthCheckInput{}
1552	}
1553
1554	output = &DeleteHealthCheckOutput{}
1555	req = c.newRequest(op, input, output)
1556	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1557	return
1558}
1559
1560// DeleteHealthCheck API operation for Amazon Route 53.
1561//
1562// Deletes a health check.
1563//
1564// Amazon Route 53 does not prevent you from deleting a health check even if
1565// the health check is associated with one or more resource record sets. If
1566// you delete a health check and you don't update the associated resource record
1567// sets, the future status of the health check can't be predicted and may change.
1568// This will affect the routing of DNS queries for your DNS failover configuration.
1569// For more information, see Replacing and Deleting Health Checks (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html#health-checks-deleting.html)
1570// in the Amazon Route 53 Developer Guide.
1571//
1572// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1573// with awserr.Error's Code and Message methods to get detailed information about
1574// the error.
1575//
1576// See the AWS API reference guide for Amazon Route 53's
1577// API operation DeleteHealthCheck for usage and error information.
1578//
1579// Returned Error Codes:
1580//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
1581//   No health check exists with the specified ID.
1582//
1583//   * ErrCodeHealthCheckInUse "HealthCheckInUse"
1584//   This error code is not in use.
1585//
1586//   * ErrCodeInvalidInput "InvalidInput"
1587//   The input is not valid.
1588//
1589// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheck
1590func (c *Route53) DeleteHealthCheck(input *DeleteHealthCheckInput) (*DeleteHealthCheckOutput, error) {
1591	req, out := c.DeleteHealthCheckRequest(input)
1592	return out, req.Send()
1593}
1594
1595// DeleteHealthCheckWithContext is the same as DeleteHealthCheck with the addition of
1596// the ability to pass a context and additional request options.
1597//
1598// See DeleteHealthCheck for details on how to use this API operation.
1599//
1600// The context must be non-nil and will be used for request cancellation. If
1601// the context is nil a panic will occur. In the future the SDK may create
1602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1603// for more information on using Contexts.
1604func (c *Route53) DeleteHealthCheckWithContext(ctx aws.Context, input *DeleteHealthCheckInput, opts ...request.Option) (*DeleteHealthCheckOutput, error) {
1605	req, out := c.DeleteHealthCheckRequest(input)
1606	req.SetContext(ctx)
1607	req.ApplyOptions(opts...)
1608	return out, req.Send()
1609}
1610
1611const opDeleteHostedZone = "DeleteHostedZone"
1612
1613// DeleteHostedZoneRequest generates a "aws/request.Request" representing the
1614// client's request for the DeleteHostedZone operation. The "output" return
1615// value will be populated with the request's response once the request completes
1616// successfully.
1617//
1618// Use "Send" method on the returned Request to send the API call to the service.
1619// the "output" return value is not valid until after Send returns without error.
1620//
1621// See DeleteHostedZone for more information on using the DeleteHostedZone
1622// API call, and error handling.
1623//
1624// This method is useful when you want to inject custom logic or configuration
1625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1626//
1627//
1628//    // Example sending a request using the DeleteHostedZoneRequest method.
1629//    req, resp := client.DeleteHostedZoneRequest(params)
1630//
1631//    err := req.Send()
1632//    if err == nil { // resp is now filled
1633//        fmt.Println(resp)
1634//    }
1635//
1636// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZone
1637func (c *Route53) DeleteHostedZoneRequest(input *DeleteHostedZoneInput) (req *request.Request, output *DeleteHostedZoneOutput) {
1638	op := &request.Operation{
1639		Name:       opDeleteHostedZone,
1640		HTTPMethod: "DELETE",
1641		HTTPPath:   "/2013-04-01/hostedzone/{Id}",
1642	}
1643
1644	if input == nil {
1645		input = &DeleteHostedZoneInput{}
1646	}
1647
1648	output = &DeleteHostedZoneOutput{}
1649	req = c.newRequest(op, input, output)
1650	return
1651}
1652
1653// DeleteHostedZone API operation for Amazon Route 53.
1654//
1655// Deletes a hosted zone.
1656//
1657// If the hosted zone was created by another service, such as AWS Cloud Map,
1658// see Deleting Public Hosted Zones That Were Created by Another Service (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DeleteHostedZone.html#delete-public-hosted-zone-created-by-another-service)
1659// in the Amazon Route 53 Developer Guide for information about how to delete
1660// it. (The process is the same for public and private hosted zones that were
1661// created by another service.)
1662//
1663// If you want to keep your domain registration but you want to stop routing
1664// internet traffic to your website or web application, we recommend that you
1665// delete resource record sets in the hosted zone instead of deleting the hosted
1666// zone.
1667//
1668// If you delete a hosted zone, you can't undelete it. You must create a new
1669// hosted zone and update the name servers for your domain registration, which
1670// can require up to 48 hours to take effect. (If you delegated responsibility
1671// for a subdomain to a hosted zone and you delete the child hosted zone, you
1672// must update the name servers in the parent hosted zone.) In addition, if
1673// you delete a hosted zone, someone could hijack the domain and route traffic
1674// to their own resources using your domain name.
1675//
1676// If you want to avoid the monthly charge for the hosted zone, you can transfer
1677// DNS service for the domain to a free DNS service. When you transfer DNS service,
1678// you have to update the name servers for the domain registration. If the domain
1679// is registered with Route 53, see UpdateDomainNameservers (https://docs.aws.amazon.com/Route53/latest/APIReference/API_domains_UpdateDomainNameservers.html)
1680// for information about how to replace Route 53 name servers with name servers
1681// for the new DNS service. If the domain is registered with another registrar,
1682// use the method provided by the registrar to update name servers for the domain
1683// registration. For more information, perform an internet search on "free DNS
1684// service."
1685//
1686// You can delete a hosted zone only if it contains only the default SOA record
1687// and NS resource record sets. If the hosted zone contains other resource record
1688// sets, you must delete them before you can delete the hosted zone. If you
1689// try to delete a hosted zone that contains other resource record sets, the
1690// request fails, and Route 53 returns a HostedZoneNotEmpty error. For information
1691// about deleting records from your hosted zone, see ChangeResourceRecordSets
1692// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html).
1693//
1694// To verify that the hosted zone has been deleted, do one of the following:
1695//
1696//    * Use the GetHostedZone action to request information about the hosted
1697//    zone.
1698//
1699//    * Use the ListHostedZones action to get a list of the hosted zones associated
1700//    with the current AWS account.
1701//
1702// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1703// with awserr.Error's Code and Message methods to get detailed information about
1704// the error.
1705//
1706// See the AWS API reference guide for Amazon Route 53's
1707// API operation DeleteHostedZone for usage and error information.
1708//
1709// Returned Error Codes:
1710//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
1711//   No hosted zone exists with the ID that you specified.
1712//
1713//   * ErrCodeHostedZoneNotEmpty "HostedZoneNotEmpty"
1714//   The hosted zone contains resource records that are not SOA or NS records.
1715//
1716//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
1717//   If Amazon Route 53 can't process a request before the next request arrives,
1718//   it will reject subsequent requests for the same hosted zone and return an
1719//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
1720//   the same request, we recommend that you wait, in intervals of increasing
1721//   duration, before you try the request again.
1722//
1723//   * ErrCodeInvalidInput "InvalidInput"
1724//   The input is not valid.
1725//
1726//   * ErrCodeInvalidDomainName "InvalidDomainName"
1727//   The specified domain name is not valid.
1728//
1729// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZone
1730func (c *Route53) DeleteHostedZone(input *DeleteHostedZoneInput) (*DeleteHostedZoneOutput, error) {
1731	req, out := c.DeleteHostedZoneRequest(input)
1732	return out, req.Send()
1733}
1734
1735// DeleteHostedZoneWithContext is the same as DeleteHostedZone with the addition of
1736// the ability to pass a context and additional request options.
1737//
1738// See DeleteHostedZone for details on how to use this API operation.
1739//
1740// The context must be non-nil and will be used for request cancellation. If
1741// the context is nil a panic will occur. In the future the SDK may create
1742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1743// for more information on using Contexts.
1744func (c *Route53) DeleteHostedZoneWithContext(ctx aws.Context, input *DeleteHostedZoneInput, opts ...request.Option) (*DeleteHostedZoneOutput, error) {
1745	req, out := c.DeleteHostedZoneRequest(input)
1746	req.SetContext(ctx)
1747	req.ApplyOptions(opts...)
1748	return out, req.Send()
1749}
1750
1751const opDeleteQueryLoggingConfig = "DeleteQueryLoggingConfig"
1752
1753// DeleteQueryLoggingConfigRequest generates a "aws/request.Request" representing the
1754// client's request for the DeleteQueryLoggingConfig operation. The "output" return
1755// value will be populated with the request's response once the request completes
1756// successfully.
1757//
1758// Use "Send" method on the returned Request to send the API call to the service.
1759// the "output" return value is not valid until after Send returns without error.
1760//
1761// See DeleteQueryLoggingConfig for more information on using the DeleteQueryLoggingConfig
1762// API call, and error handling.
1763//
1764// This method is useful when you want to inject custom logic or configuration
1765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1766//
1767//
1768//    // Example sending a request using the DeleteQueryLoggingConfigRequest method.
1769//    req, resp := client.DeleteQueryLoggingConfigRequest(params)
1770//
1771//    err := req.Send()
1772//    if err == nil { // resp is now filled
1773//        fmt.Println(resp)
1774//    }
1775//
1776// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfig
1777func (c *Route53) DeleteQueryLoggingConfigRequest(input *DeleteQueryLoggingConfigInput) (req *request.Request, output *DeleteQueryLoggingConfigOutput) {
1778	op := &request.Operation{
1779		Name:       opDeleteQueryLoggingConfig,
1780		HTTPMethod: "DELETE",
1781		HTTPPath:   "/2013-04-01/queryloggingconfig/{Id}",
1782	}
1783
1784	if input == nil {
1785		input = &DeleteQueryLoggingConfigInput{}
1786	}
1787
1788	output = &DeleteQueryLoggingConfigOutput{}
1789	req = c.newRequest(op, input, output)
1790	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1791	return
1792}
1793
1794// DeleteQueryLoggingConfig API operation for Amazon Route 53.
1795//
1796// Deletes a configuration for DNS query logging. If you delete a configuration,
1797// Amazon Route 53 stops sending query logs to CloudWatch Logs. Route 53 doesn't
1798// delete any logs that are already in CloudWatch Logs.
1799//
1800// For more information about DNS query logs, see CreateQueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html).
1801//
1802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1803// with awserr.Error's Code and Message methods to get detailed information about
1804// the error.
1805//
1806// See the AWS API reference guide for Amazon Route 53's
1807// API operation DeleteQueryLoggingConfig for usage and error information.
1808//
1809// Returned Error Codes:
1810//   * ErrCodeConcurrentModification "ConcurrentModification"
1811//   Another user submitted a request to create, update, or delete the object
1812//   at the same time that you did. Retry the request.
1813//
1814//   * ErrCodeNoSuchQueryLoggingConfig "NoSuchQueryLoggingConfig"
1815//   There is no DNS query logging configuration with the specified ID.
1816//
1817//   * ErrCodeInvalidInput "InvalidInput"
1818//   The input is not valid.
1819//
1820// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfig
1821func (c *Route53) DeleteQueryLoggingConfig(input *DeleteQueryLoggingConfigInput) (*DeleteQueryLoggingConfigOutput, error) {
1822	req, out := c.DeleteQueryLoggingConfigRequest(input)
1823	return out, req.Send()
1824}
1825
1826// DeleteQueryLoggingConfigWithContext is the same as DeleteQueryLoggingConfig with the addition of
1827// the ability to pass a context and additional request options.
1828//
1829// See DeleteQueryLoggingConfig for details on how to use this API operation.
1830//
1831// The context must be non-nil and will be used for request cancellation. If
1832// the context is nil a panic will occur. In the future the SDK may create
1833// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1834// for more information on using Contexts.
1835func (c *Route53) DeleteQueryLoggingConfigWithContext(ctx aws.Context, input *DeleteQueryLoggingConfigInput, opts ...request.Option) (*DeleteQueryLoggingConfigOutput, error) {
1836	req, out := c.DeleteQueryLoggingConfigRequest(input)
1837	req.SetContext(ctx)
1838	req.ApplyOptions(opts...)
1839	return out, req.Send()
1840}
1841
1842const opDeleteReusableDelegationSet = "DeleteReusableDelegationSet"
1843
1844// DeleteReusableDelegationSetRequest generates a "aws/request.Request" representing the
1845// client's request for the DeleteReusableDelegationSet operation. The "output" return
1846// value will be populated with the request's response once the request completes
1847// successfully.
1848//
1849// Use "Send" method on the returned Request to send the API call to the service.
1850// the "output" return value is not valid until after Send returns without error.
1851//
1852// See DeleteReusableDelegationSet for more information on using the DeleteReusableDelegationSet
1853// API call, and error handling.
1854//
1855// This method is useful when you want to inject custom logic or configuration
1856// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1857//
1858//
1859//    // Example sending a request using the DeleteReusableDelegationSetRequest method.
1860//    req, resp := client.DeleteReusableDelegationSetRequest(params)
1861//
1862//    err := req.Send()
1863//    if err == nil { // resp is now filled
1864//        fmt.Println(resp)
1865//    }
1866//
1867// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSet
1868func (c *Route53) DeleteReusableDelegationSetRequest(input *DeleteReusableDelegationSetInput) (req *request.Request, output *DeleteReusableDelegationSetOutput) {
1869	op := &request.Operation{
1870		Name:       opDeleteReusableDelegationSet,
1871		HTTPMethod: "DELETE",
1872		HTTPPath:   "/2013-04-01/delegationset/{Id}",
1873	}
1874
1875	if input == nil {
1876		input = &DeleteReusableDelegationSetInput{}
1877	}
1878
1879	output = &DeleteReusableDelegationSetOutput{}
1880	req = c.newRequest(op, input, output)
1881	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1882	return
1883}
1884
1885// DeleteReusableDelegationSet API operation for Amazon Route 53.
1886//
1887// Deletes a reusable delegation set.
1888//
1889// You can delete a reusable delegation set only if it isn't associated with
1890// any hosted zones.
1891//
1892// To verify that the reusable delegation set is not associated with any hosted
1893// zones, submit a GetReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSet.html)
1894// request and specify the ID of the reusable delegation set that you want to
1895// delete.
1896//
1897// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1898// with awserr.Error's Code and Message methods to get detailed information about
1899// the error.
1900//
1901// See the AWS API reference guide for Amazon Route 53's
1902// API operation DeleteReusableDelegationSet for usage and error information.
1903//
1904// Returned Error Codes:
1905//   * ErrCodeNoSuchDelegationSet "NoSuchDelegationSet"
1906//   A reusable delegation set with the specified ID does not exist.
1907//
1908//   * ErrCodeDelegationSetInUse "DelegationSetInUse"
1909//   The specified delegation contains associated hosted zones which must be deleted
1910//   before the reusable delegation set can be deleted.
1911//
1912//   * ErrCodeDelegationSetNotReusable "DelegationSetNotReusable"
1913//   A reusable delegation set with the specified ID does not exist.
1914//
1915//   * ErrCodeInvalidInput "InvalidInput"
1916//   The input is not valid.
1917//
1918// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSet
1919func (c *Route53) DeleteReusableDelegationSet(input *DeleteReusableDelegationSetInput) (*DeleteReusableDelegationSetOutput, error) {
1920	req, out := c.DeleteReusableDelegationSetRequest(input)
1921	return out, req.Send()
1922}
1923
1924// DeleteReusableDelegationSetWithContext is the same as DeleteReusableDelegationSet with the addition of
1925// the ability to pass a context and additional request options.
1926//
1927// See DeleteReusableDelegationSet for details on how to use this API operation.
1928//
1929// The context must be non-nil and will be used for request cancellation. If
1930// the context is nil a panic will occur. In the future the SDK may create
1931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1932// for more information on using Contexts.
1933func (c *Route53) DeleteReusableDelegationSetWithContext(ctx aws.Context, input *DeleteReusableDelegationSetInput, opts ...request.Option) (*DeleteReusableDelegationSetOutput, error) {
1934	req, out := c.DeleteReusableDelegationSetRequest(input)
1935	req.SetContext(ctx)
1936	req.ApplyOptions(opts...)
1937	return out, req.Send()
1938}
1939
1940const opDeleteTrafficPolicy = "DeleteTrafficPolicy"
1941
1942// DeleteTrafficPolicyRequest generates a "aws/request.Request" representing the
1943// client's request for the DeleteTrafficPolicy operation. The "output" return
1944// value will be populated with the request's response once the request completes
1945// successfully.
1946//
1947// Use "Send" method on the returned Request to send the API call to the service.
1948// the "output" return value is not valid until after Send returns without error.
1949//
1950// See DeleteTrafficPolicy for more information on using the DeleteTrafficPolicy
1951// API call, and error handling.
1952//
1953// This method is useful when you want to inject custom logic or configuration
1954// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1955//
1956//
1957//    // Example sending a request using the DeleteTrafficPolicyRequest method.
1958//    req, resp := client.DeleteTrafficPolicyRequest(params)
1959//
1960//    err := req.Send()
1961//    if err == nil { // resp is now filled
1962//        fmt.Println(resp)
1963//    }
1964//
1965// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicy
1966func (c *Route53) DeleteTrafficPolicyRequest(input *DeleteTrafficPolicyInput) (req *request.Request, output *DeleteTrafficPolicyOutput) {
1967	op := &request.Operation{
1968		Name:       opDeleteTrafficPolicy,
1969		HTTPMethod: "DELETE",
1970		HTTPPath:   "/2013-04-01/trafficpolicy/{Id}/{Version}",
1971	}
1972
1973	if input == nil {
1974		input = &DeleteTrafficPolicyInput{}
1975	}
1976
1977	output = &DeleteTrafficPolicyOutput{}
1978	req = c.newRequest(op, input, output)
1979	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1980	return
1981}
1982
1983// DeleteTrafficPolicy API operation for Amazon Route 53.
1984//
1985// Deletes a traffic policy.
1986//
1987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1988// with awserr.Error's Code and Message methods to get detailed information about
1989// the error.
1990//
1991// See the AWS API reference guide for Amazon Route 53's
1992// API operation DeleteTrafficPolicy for usage and error information.
1993//
1994// Returned Error Codes:
1995//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
1996//   No traffic policy exists with the specified ID.
1997//
1998//   * ErrCodeInvalidInput "InvalidInput"
1999//   The input is not valid.
2000//
2001//   * ErrCodeTrafficPolicyInUse "TrafficPolicyInUse"
2002//   One or more traffic policy instances were created by using the specified
2003//   traffic policy.
2004//
2005//   * ErrCodeConcurrentModification "ConcurrentModification"
2006//   Another user submitted a request to create, update, or delete the object
2007//   at the same time that you did. Retry the request.
2008//
2009// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicy
2010func (c *Route53) DeleteTrafficPolicy(input *DeleteTrafficPolicyInput) (*DeleteTrafficPolicyOutput, error) {
2011	req, out := c.DeleteTrafficPolicyRequest(input)
2012	return out, req.Send()
2013}
2014
2015// DeleteTrafficPolicyWithContext is the same as DeleteTrafficPolicy with the addition of
2016// the ability to pass a context and additional request options.
2017//
2018// See DeleteTrafficPolicy for details on how to use this API operation.
2019//
2020// The context must be non-nil and will be used for request cancellation. If
2021// the context is nil a panic will occur. In the future the SDK may create
2022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2023// for more information on using Contexts.
2024func (c *Route53) DeleteTrafficPolicyWithContext(ctx aws.Context, input *DeleteTrafficPolicyInput, opts ...request.Option) (*DeleteTrafficPolicyOutput, error) {
2025	req, out := c.DeleteTrafficPolicyRequest(input)
2026	req.SetContext(ctx)
2027	req.ApplyOptions(opts...)
2028	return out, req.Send()
2029}
2030
2031const opDeleteTrafficPolicyInstance = "DeleteTrafficPolicyInstance"
2032
2033// DeleteTrafficPolicyInstanceRequest generates a "aws/request.Request" representing the
2034// client's request for the DeleteTrafficPolicyInstance operation. The "output" return
2035// value will be populated with the request's response once the request completes
2036// successfully.
2037//
2038// Use "Send" method on the returned Request to send the API call to the service.
2039// the "output" return value is not valid until after Send returns without error.
2040//
2041// See DeleteTrafficPolicyInstance for more information on using the DeleteTrafficPolicyInstance
2042// API call, and error handling.
2043//
2044// This method is useful when you want to inject custom logic or configuration
2045// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2046//
2047//
2048//    // Example sending a request using the DeleteTrafficPolicyInstanceRequest method.
2049//    req, resp := client.DeleteTrafficPolicyInstanceRequest(params)
2050//
2051//    err := req.Send()
2052//    if err == nil { // resp is now filled
2053//        fmt.Println(resp)
2054//    }
2055//
2056// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstance
2057func (c *Route53) DeleteTrafficPolicyInstanceRequest(input *DeleteTrafficPolicyInstanceInput) (req *request.Request, output *DeleteTrafficPolicyInstanceOutput) {
2058	op := &request.Operation{
2059		Name:       opDeleteTrafficPolicyInstance,
2060		HTTPMethod: "DELETE",
2061		HTTPPath:   "/2013-04-01/trafficpolicyinstance/{Id}",
2062	}
2063
2064	if input == nil {
2065		input = &DeleteTrafficPolicyInstanceInput{}
2066	}
2067
2068	output = &DeleteTrafficPolicyInstanceOutput{}
2069	req = c.newRequest(op, input, output)
2070	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2071	return
2072}
2073
2074// DeleteTrafficPolicyInstance API operation for Amazon Route 53.
2075//
2076// Deletes a traffic policy instance and all of the resource record sets that
2077// Amazon Route 53 created when you created the instance.
2078//
2079// In the Route 53 console, traffic policy instances are known as policy records.
2080//
2081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2082// with awserr.Error's Code and Message methods to get detailed information about
2083// the error.
2084//
2085// See the AWS API reference guide for Amazon Route 53's
2086// API operation DeleteTrafficPolicyInstance for usage and error information.
2087//
2088// Returned Error Codes:
2089//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
2090//   No traffic policy instance exists with the specified ID.
2091//
2092//   * ErrCodeInvalidInput "InvalidInput"
2093//   The input is not valid.
2094//
2095//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
2096//   If Amazon Route 53 can't process a request before the next request arrives,
2097//   it will reject subsequent requests for the same hosted zone and return an
2098//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
2099//   the same request, we recommend that you wait, in intervals of increasing
2100//   duration, before you try the request again.
2101//
2102// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstance
2103func (c *Route53) DeleteTrafficPolicyInstance(input *DeleteTrafficPolicyInstanceInput) (*DeleteTrafficPolicyInstanceOutput, error) {
2104	req, out := c.DeleteTrafficPolicyInstanceRequest(input)
2105	return out, req.Send()
2106}
2107
2108// DeleteTrafficPolicyInstanceWithContext is the same as DeleteTrafficPolicyInstance with the addition of
2109// the ability to pass a context and additional request options.
2110//
2111// See DeleteTrafficPolicyInstance for details on how to use this API operation.
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 *Route53) DeleteTrafficPolicyInstanceWithContext(ctx aws.Context, input *DeleteTrafficPolicyInstanceInput, opts ...request.Option) (*DeleteTrafficPolicyInstanceOutput, error) {
2118	req, out := c.DeleteTrafficPolicyInstanceRequest(input)
2119	req.SetContext(ctx)
2120	req.ApplyOptions(opts...)
2121	return out, req.Send()
2122}
2123
2124const opDeleteVPCAssociationAuthorization = "DeleteVPCAssociationAuthorization"
2125
2126// DeleteVPCAssociationAuthorizationRequest generates a "aws/request.Request" representing the
2127// client's request for the DeleteVPCAssociationAuthorization operation. The "output" return
2128// value will be populated with the request's response once the request completes
2129// successfully.
2130//
2131// Use "Send" method on the returned Request to send the API call to the service.
2132// the "output" return value is not valid until after Send returns without error.
2133//
2134// See DeleteVPCAssociationAuthorization for more information on using the DeleteVPCAssociationAuthorization
2135// API call, and error handling.
2136//
2137// This method is useful when you want to inject custom logic or configuration
2138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2139//
2140//
2141//    // Example sending a request using the DeleteVPCAssociationAuthorizationRequest method.
2142//    req, resp := client.DeleteVPCAssociationAuthorizationRequest(params)
2143//
2144//    err := req.Send()
2145//    if err == nil { // resp is now filled
2146//        fmt.Println(resp)
2147//    }
2148//
2149// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorization
2150func (c *Route53) DeleteVPCAssociationAuthorizationRequest(input *DeleteVPCAssociationAuthorizationInput) (req *request.Request, output *DeleteVPCAssociationAuthorizationOutput) {
2151	op := &request.Operation{
2152		Name:       opDeleteVPCAssociationAuthorization,
2153		HTTPMethod: "POST",
2154		HTTPPath:   "/2013-04-01/hostedzone/{Id}/deauthorizevpcassociation",
2155	}
2156
2157	if input == nil {
2158		input = &DeleteVPCAssociationAuthorizationInput{}
2159	}
2160
2161	output = &DeleteVPCAssociationAuthorizationOutput{}
2162	req = c.newRequest(op, input, output)
2163	req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2164	return
2165}
2166
2167// DeleteVPCAssociationAuthorization API operation for Amazon Route 53.
2168//
2169// Removes authorization to submit an AssociateVPCWithHostedZone request to
2170// associate a specified VPC with a hosted zone that was created by a different
2171// account. You must use the account that created the hosted zone to submit
2172// a DeleteVPCAssociationAuthorization request.
2173//
2174// Sending this request only prevents the AWS account that created the VPC from
2175// associating the VPC with the Amazon Route 53 hosted zone in the future. If
2176// the VPC is already associated with the hosted zone, DeleteVPCAssociationAuthorization
2177// won't disassociate the VPC from the hosted zone. If you want to delete an
2178// existing association, use DisassociateVPCFromHostedZone.
2179//
2180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2181// with awserr.Error's Code and Message methods to get detailed information about
2182// the error.
2183//
2184// See the AWS API reference guide for Amazon Route 53's
2185// API operation DeleteVPCAssociationAuthorization for usage and error information.
2186//
2187// Returned Error Codes:
2188//   * ErrCodeConcurrentModification "ConcurrentModification"
2189//   Another user submitted a request to create, update, or delete the object
2190//   at the same time that you did. Retry the request.
2191//
2192//   * ErrCodeVPCAssociationAuthorizationNotFound "VPCAssociationAuthorizationNotFound"
2193//   The VPC that you specified is not authorized to be associated with the hosted
2194//   zone.
2195//
2196//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
2197//   No hosted zone exists with the ID that you specified.
2198//
2199//   * ErrCodeInvalidVPCId "InvalidVPCId"
2200//   The VPC ID that you specified either isn't a valid ID or the current account
2201//   is not authorized to access this VPC.
2202//
2203//   * ErrCodeInvalidInput "InvalidInput"
2204//   The input is not valid.
2205//
2206// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorization
2207func (c *Route53) DeleteVPCAssociationAuthorization(input *DeleteVPCAssociationAuthorizationInput) (*DeleteVPCAssociationAuthorizationOutput, error) {
2208	req, out := c.DeleteVPCAssociationAuthorizationRequest(input)
2209	return out, req.Send()
2210}
2211
2212// DeleteVPCAssociationAuthorizationWithContext is the same as DeleteVPCAssociationAuthorization with the addition of
2213// the ability to pass a context and additional request options.
2214//
2215// See DeleteVPCAssociationAuthorization for details on how to use this API operation.
2216//
2217// The context must be non-nil and will be used for request cancellation. If
2218// the context is nil a panic will occur. In the future the SDK may create
2219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2220// for more information on using Contexts.
2221func (c *Route53) DeleteVPCAssociationAuthorizationWithContext(ctx aws.Context, input *DeleteVPCAssociationAuthorizationInput, opts ...request.Option) (*DeleteVPCAssociationAuthorizationOutput, error) {
2222	req, out := c.DeleteVPCAssociationAuthorizationRequest(input)
2223	req.SetContext(ctx)
2224	req.ApplyOptions(opts...)
2225	return out, req.Send()
2226}
2227
2228const opDisassociateVPCFromHostedZone = "DisassociateVPCFromHostedZone"
2229
2230// DisassociateVPCFromHostedZoneRequest generates a "aws/request.Request" representing the
2231// client's request for the DisassociateVPCFromHostedZone operation. The "output" return
2232// value will be populated with the request's response once the request completes
2233// successfully.
2234//
2235// Use "Send" method on the returned Request to send the API call to the service.
2236// the "output" return value is not valid until after Send returns without error.
2237//
2238// See DisassociateVPCFromHostedZone for more information on using the DisassociateVPCFromHostedZone
2239// API call, and error handling.
2240//
2241// This method is useful when you want to inject custom logic or configuration
2242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2243//
2244//
2245//    // Example sending a request using the DisassociateVPCFromHostedZoneRequest method.
2246//    req, resp := client.DisassociateVPCFromHostedZoneRequest(params)
2247//
2248//    err := req.Send()
2249//    if err == nil { // resp is now filled
2250//        fmt.Println(resp)
2251//    }
2252//
2253// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZone
2254func (c *Route53) DisassociateVPCFromHostedZoneRequest(input *DisassociateVPCFromHostedZoneInput) (req *request.Request, output *DisassociateVPCFromHostedZoneOutput) {
2255	op := &request.Operation{
2256		Name:       opDisassociateVPCFromHostedZone,
2257		HTTPMethod: "POST",
2258		HTTPPath:   "/2013-04-01/hostedzone/{Id}/disassociatevpc",
2259	}
2260
2261	if input == nil {
2262		input = &DisassociateVPCFromHostedZoneInput{}
2263	}
2264
2265	output = &DisassociateVPCFromHostedZoneOutput{}
2266	req = c.newRequest(op, input, output)
2267	return
2268}
2269
2270// DisassociateVPCFromHostedZone API operation for Amazon Route 53.
2271//
2272// Disassociates a VPC from a Amazon Route 53 private hosted zone. Note the
2273// following:
2274//
2275//    * You can't disassociate the last VPC from a private hosted zone.
2276//
2277//    * You can't convert a private hosted zone into a public hosted zone.
2278//
2279//    * You can submit a DisassociateVPCFromHostedZone request using either
2280//    the account that created the hosted zone or the account that created the
2281//    VPC.
2282//
2283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2284// with awserr.Error's Code and Message methods to get detailed information about
2285// the error.
2286//
2287// See the AWS API reference guide for Amazon Route 53's
2288// API operation DisassociateVPCFromHostedZone for usage and error information.
2289//
2290// Returned Error Codes:
2291//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
2292//   No hosted zone exists with the ID that you specified.
2293//
2294//   * ErrCodeInvalidVPCId "InvalidVPCId"
2295//   The VPC ID that you specified either isn't a valid ID or the current account
2296//   is not authorized to access this VPC.
2297//
2298//   * ErrCodeVPCAssociationNotFound "VPCAssociationNotFound"
2299//   The specified VPC and hosted zone are not currently associated.
2300//
2301//   * ErrCodeLastVPCAssociation "LastVPCAssociation"
2302//   The VPC that you're trying to disassociate from the private hosted zone is
2303//   the last VPC that is associated with the hosted zone. Amazon Route 53 doesn't
2304//   support disassociating the last VPC from a hosted zone.
2305//
2306//   * ErrCodeInvalidInput "InvalidInput"
2307//   The input is not valid.
2308//
2309// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZone
2310func (c *Route53) DisassociateVPCFromHostedZone(input *DisassociateVPCFromHostedZoneInput) (*DisassociateVPCFromHostedZoneOutput, error) {
2311	req, out := c.DisassociateVPCFromHostedZoneRequest(input)
2312	return out, req.Send()
2313}
2314
2315// DisassociateVPCFromHostedZoneWithContext is the same as DisassociateVPCFromHostedZone with the addition of
2316// the ability to pass a context and additional request options.
2317//
2318// See DisassociateVPCFromHostedZone for details on how to use this API operation.
2319//
2320// The context must be non-nil and will be used for request cancellation. If
2321// the context is nil a panic will occur. In the future the SDK may create
2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2323// for more information on using Contexts.
2324func (c *Route53) DisassociateVPCFromHostedZoneWithContext(ctx aws.Context, input *DisassociateVPCFromHostedZoneInput, opts ...request.Option) (*DisassociateVPCFromHostedZoneOutput, error) {
2325	req, out := c.DisassociateVPCFromHostedZoneRequest(input)
2326	req.SetContext(ctx)
2327	req.ApplyOptions(opts...)
2328	return out, req.Send()
2329}
2330
2331const opGetAccountLimit = "GetAccountLimit"
2332
2333// GetAccountLimitRequest generates a "aws/request.Request" representing the
2334// client's request for the GetAccountLimit operation. The "output" return
2335// value will be populated with the request's response once the request completes
2336// successfully.
2337//
2338// Use "Send" method on the returned Request to send the API call to the service.
2339// the "output" return value is not valid until after Send returns without error.
2340//
2341// See GetAccountLimit for more information on using the GetAccountLimit
2342// API call, and error handling.
2343//
2344// This method is useful when you want to inject custom logic or configuration
2345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2346//
2347//
2348//    // Example sending a request using the GetAccountLimitRequest method.
2349//    req, resp := client.GetAccountLimitRequest(params)
2350//
2351//    err := req.Send()
2352//    if err == nil { // resp is now filled
2353//        fmt.Println(resp)
2354//    }
2355//
2356// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimit
2357func (c *Route53) GetAccountLimitRequest(input *GetAccountLimitInput) (req *request.Request, output *GetAccountLimitOutput) {
2358	op := &request.Operation{
2359		Name:       opGetAccountLimit,
2360		HTTPMethod: "GET",
2361		HTTPPath:   "/2013-04-01/accountlimit/{Type}",
2362	}
2363
2364	if input == nil {
2365		input = &GetAccountLimitInput{}
2366	}
2367
2368	output = &GetAccountLimitOutput{}
2369	req = c.newRequest(op, input, output)
2370	return
2371}
2372
2373// GetAccountLimit API operation for Amazon Route 53.
2374//
2375// Gets the specified limit for the current account, for example, the maximum
2376// number of health checks that you can create using the account.
2377//
2378// For the default limit, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
2379// in the Amazon Route 53 Developer Guide. To request a higher limit, open a
2380// case (https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-route53).
2381//
2382// You can also view account limits in AWS Trusted Advisor. Sign in to the AWS
2383// Management Console and open the Trusted Advisor console at https://console.aws.amazon.com/trustedadvisor/
2384// (https://console.aws.amazon.com/trustedadvisor). Then choose Service limits
2385// in the navigation pane.
2386//
2387// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2388// with awserr.Error's Code and Message methods to get detailed information about
2389// the error.
2390//
2391// See the AWS API reference guide for Amazon Route 53's
2392// API operation GetAccountLimit for usage and error information.
2393//
2394// Returned Error Codes:
2395//   * ErrCodeInvalidInput "InvalidInput"
2396//   The input is not valid.
2397//
2398// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimit
2399func (c *Route53) GetAccountLimit(input *GetAccountLimitInput) (*GetAccountLimitOutput, error) {
2400	req, out := c.GetAccountLimitRequest(input)
2401	return out, req.Send()
2402}
2403
2404// GetAccountLimitWithContext is the same as GetAccountLimit with the addition of
2405// the ability to pass a context and additional request options.
2406//
2407// See GetAccountLimit for details on how to use this API operation.
2408//
2409// The context must be non-nil and will be used for request cancellation. If
2410// the context is nil a panic will occur. In the future the SDK may create
2411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2412// for more information on using Contexts.
2413func (c *Route53) GetAccountLimitWithContext(ctx aws.Context, input *GetAccountLimitInput, opts ...request.Option) (*GetAccountLimitOutput, error) {
2414	req, out := c.GetAccountLimitRequest(input)
2415	req.SetContext(ctx)
2416	req.ApplyOptions(opts...)
2417	return out, req.Send()
2418}
2419
2420const opGetChange = "GetChange"
2421
2422// GetChangeRequest generates a "aws/request.Request" representing the
2423// client's request for the GetChange operation. The "output" return
2424// value will be populated with the request's response once the request completes
2425// successfully.
2426//
2427// Use "Send" method on the returned Request to send the API call to the service.
2428// the "output" return value is not valid until after Send returns without error.
2429//
2430// See GetChange for more information on using the GetChange
2431// API call, and error handling.
2432//
2433// This method is useful when you want to inject custom logic or configuration
2434// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2435//
2436//
2437//    // Example sending a request using the GetChangeRequest method.
2438//    req, resp := client.GetChangeRequest(params)
2439//
2440//    err := req.Send()
2441//    if err == nil { // resp is now filled
2442//        fmt.Println(resp)
2443//    }
2444//
2445// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChange
2446func (c *Route53) GetChangeRequest(input *GetChangeInput) (req *request.Request, output *GetChangeOutput) {
2447	op := &request.Operation{
2448		Name:       opGetChange,
2449		HTTPMethod: "GET",
2450		HTTPPath:   "/2013-04-01/change/{Id}",
2451	}
2452
2453	if input == nil {
2454		input = &GetChangeInput{}
2455	}
2456
2457	output = &GetChangeOutput{}
2458	req = c.newRequest(op, input, output)
2459	return
2460}
2461
2462// GetChange API operation for Amazon Route 53.
2463//
2464// Returns the current status of a change batch request. The status is one of
2465// the following values:
2466//
2467//    * PENDING indicates that the changes in this request have not propagated
2468//    to all Amazon Route 53 DNS servers. This is the initial status of all
2469//    change batch requests.
2470//
2471//    * INSYNC indicates that the changes have propagated to all Route 53 DNS
2472//    servers.
2473//
2474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2475// with awserr.Error's Code and Message methods to get detailed information about
2476// the error.
2477//
2478// See the AWS API reference guide for Amazon Route 53's
2479// API operation GetChange for usage and error information.
2480//
2481// Returned Error Codes:
2482//   * ErrCodeNoSuchChange "NoSuchChange"
2483//   A change with the specified change ID does not exist.
2484//
2485//   * ErrCodeInvalidInput "InvalidInput"
2486//   The input is not valid.
2487//
2488// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChange
2489func (c *Route53) GetChange(input *GetChangeInput) (*GetChangeOutput, error) {
2490	req, out := c.GetChangeRequest(input)
2491	return out, req.Send()
2492}
2493
2494// GetChangeWithContext is the same as GetChange with the addition of
2495// the ability to pass a context and additional request options.
2496//
2497// See GetChange for details on how to use this API operation.
2498//
2499// The context must be non-nil and will be used for request cancellation. If
2500// the context is nil a panic will occur. In the future the SDK may create
2501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2502// for more information on using Contexts.
2503func (c *Route53) GetChangeWithContext(ctx aws.Context, input *GetChangeInput, opts ...request.Option) (*GetChangeOutput, error) {
2504	req, out := c.GetChangeRequest(input)
2505	req.SetContext(ctx)
2506	req.ApplyOptions(opts...)
2507	return out, req.Send()
2508}
2509
2510const opGetCheckerIpRanges = "GetCheckerIpRanges"
2511
2512// GetCheckerIpRangesRequest generates a "aws/request.Request" representing the
2513// client's request for the GetCheckerIpRanges operation. The "output" return
2514// value will be populated with the request's response once the request completes
2515// successfully.
2516//
2517// Use "Send" method on the returned Request to send the API call to the service.
2518// the "output" return value is not valid until after Send returns without error.
2519//
2520// See GetCheckerIpRanges for more information on using the GetCheckerIpRanges
2521// API call, and error handling.
2522//
2523// This method is useful when you want to inject custom logic or configuration
2524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2525//
2526//
2527//    // Example sending a request using the GetCheckerIpRangesRequest method.
2528//    req, resp := client.GetCheckerIpRangesRequest(params)
2529//
2530//    err := req.Send()
2531//    if err == nil { // resp is now filled
2532//        fmt.Println(resp)
2533//    }
2534//
2535// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRanges
2536func (c *Route53) GetCheckerIpRangesRequest(input *GetCheckerIpRangesInput) (req *request.Request, output *GetCheckerIpRangesOutput) {
2537	op := &request.Operation{
2538		Name:       opGetCheckerIpRanges,
2539		HTTPMethod: "GET",
2540		HTTPPath:   "/2013-04-01/checkeripranges",
2541	}
2542
2543	if input == nil {
2544		input = &GetCheckerIpRangesInput{}
2545	}
2546
2547	output = &GetCheckerIpRangesOutput{}
2548	req = c.newRequest(op, input, output)
2549	return
2550}
2551
2552// GetCheckerIpRanges API operation for Amazon Route 53.
2553//
2554//
2555// GetCheckerIpRanges still works, but we recommend that you download ip-ranges.json,
2556// which includes IP address ranges for all AWS services. For more information,
2557// see IP Address Ranges of Amazon Route 53 Servers (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-ip-addresses.html)
2558// in the Amazon Route 53 Developer Guide.
2559//
2560// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2561// with awserr.Error's Code and Message methods to get detailed information about
2562// the error.
2563//
2564// See the AWS API reference guide for Amazon Route 53's
2565// API operation GetCheckerIpRanges for usage and error information.
2566// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRanges
2567func (c *Route53) GetCheckerIpRanges(input *GetCheckerIpRangesInput) (*GetCheckerIpRangesOutput, error) {
2568	req, out := c.GetCheckerIpRangesRequest(input)
2569	return out, req.Send()
2570}
2571
2572// GetCheckerIpRangesWithContext is the same as GetCheckerIpRanges with the addition of
2573// the ability to pass a context and additional request options.
2574//
2575// See GetCheckerIpRanges for details on how to use this API operation.
2576//
2577// The context must be non-nil and will be used for request cancellation. If
2578// the context is nil a panic will occur. In the future the SDK may create
2579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2580// for more information on using Contexts.
2581func (c *Route53) GetCheckerIpRangesWithContext(ctx aws.Context, input *GetCheckerIpRangesInput, opts ...request.Option) (*GetCheckerIpRangesOutput, error) {
2582	req, out := c.GetCheckerIpRangesRequest(input)
2583	req.SetContext(ctx)
2584	req.ApplyOptions(opts...)
2585	return out, req.Send()
2586}
2587
2588const opGetGeoLocation = "GetGeoLocation"
2589
2590// GetGeoLocationRequest generates a "aws/request.Request" representing the
2591// client's request for the GetGeoLocation operation. The "output" return
2592// value will be populated with the request's response once the request completes
2593// successfully.
2594//
2595// Use "Send" method on the returned Request to send the API call to the service.
2596// the "output" return value is not valid until after Send returns without error.
2597//
2598// See GetGeoLocation for more information on using the GetGeoLocation
2599// API call, and error handling.
2600//
2601// This method is useful when you want to inject custom logic or configuration
2602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2603//
2604//
2605//    // Example sending a request using the GetGeoLocationRequest method.
2606//    req, resp := client.GetGeoLocationRequest(params)
2607//
2608//    err := req.Send()
2609//    if err == nil { // resp is now filled
2610//        fmt.Println(resp)
2611//    }
2612//
2613// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocation
2614func (c *Route53) GetGeoLocationRequest(input *GetGeoLocationInput) (req *request.Request, output *GetGeoLocationOutput) {
2615	op := &request.Operation{
2616		Name:       opGetGeoLocation,
2617		HTTPMethod: "GET",
2618		HTTPPath:   "/2013-04-01/geolocation",
2619	}
2620
2621	if input == nil {
2622		input = &GetGeoLocationInput{}
2623	}
2624
2625	output = &GetGeoLocationOutput{}
2626	req = c.newRequest(op, input, output)
2627	return
2628}
2629
2630// GetGeoLocation API operation for Amazon Route 53.
2631//
2632// Gets information about whether a specified geographic location is supported
2633// for Amazon Route 53 geolocation resource record sets.
2634//
2635// Use the following syntax to determine whether a continent is supported for
2636// geolocation:
2637//
2638// GET /2013-04-01/geolocation?continentcode=two-letter abbreviation for a continent
2639//
2640// Use the following syntax to determine whether a country is supported for
2641// geolocation:
2642//
2643// GET /2013-04-01/geolocation?countrycode=two-character country code
2644//
2645// Use the following syntax to determine whether a subdivision of a country
2646// is supported for geolocation:
2647//
2648// GET /2013-04-01/geolocation?countrycode=two-character country code&subdivisioncode=subdivision
2649// code
2650//
2651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2652// with awserr.Error's Code and Message methods to get detailed information about
2653// the error.
2654//
2655// See the AWS API reference guide for Amazon Route 53's
2656// API operation GetGeoLocation for usage and error information.
2657//
2658// Returned Error Codes:
2659//   * ErrCodeNoSuchGeoLocation "NoSuchGeoLocation"
2660//   Amazon Route 53 doesn't support the specified geographic location.
2661//
2662//   * ErrCodeInvalidInput "InvalidInput"
2663//   The input is not valid.
2664//
2665// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocation
2666func (c *Route53) GetGeoLocation(input *GetGeoLocationInput) (*GetGeoLocationOutput, error) {
2667	req, out := c.GetGeoLocationRequest(input)
2668	return out, req.Send()
2669}
2670
2671// GetGeoLocationWithContext is the same as GetGeoLocation with the addition of
2672// the ability to pass a context and additional request options.
2673//
2674// See GetGeoLocation for details on how to use this API operation.
2675//
2676// The context must be non-nil and will be used for request cancellation. If
2677// the context is nil a panic will occur. In the future the SDK may create
2678// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2679// for more information on using Contexts.
2680func (c *Route53) GetGeoLocationWithContext(ctx aws.Context, input *GetGeoLocationInput, opts ...request.Option) (*GetGeoLocationOutput, error) {
2681	req, out := c.GetGeoLocationRequest(input)
2682	req.SetContext(ctx)
2683	req.ApplyOptions(opts...)
2684	return out, req.Send()
2685}
2686
2687const opGetHealthCheck = "GetHealthCheck"
2688
2689// GetHealthCheckRequest generates a "aws/request.Request" representing the
2690// client's request for the GetHealthCheck operation. The "output" return
2691// value will be populated with the request's response once the request completes
2692// successfully.
2693//
2694// Use "Send" method on the returned Request to send the API call to the service.
2695// the "output" return value is not valid until after Send returns without error.
2696//
2697// See GetHealthCheck for more information on using the GetHealthCheck
2698// API call, and error handling.
2699//
2700// This method is useful when you want to inject custom logic or configuration
2701// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2702//
2703//
2704//    // Example sending a request using the GetHealthCheckRequest method.
2705//    req, resp := client.GetHealthCheckRequest(params)
2706//
2707//    err := req.Send()
2708//    if err == nil { // resp is now filled
2709//        fmt.Println(resp)
2710//    }
2711//
2712// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheck
2713func (c *Route53) GetHealthCheckRequest(input *GetHealthCheckInput) (req *request.Request, output *GetHealthCheckOutput) {
2714	op := &request.Operation{
2715		Name:       opGetHealthCheck,
2716		HTTPMethod: "GET",
2717		HTTPPath:   "/2013-04-01/healthcheck/{HealthCheckId}",
2718	}
2719
2720	if input == nil {
2721		input = &GetHealthCheckInput{}
2722	}
2723
2724	output = &GetHealthCheckOutput{}
2725	req = c.newRequest(op, input, output)
2726	return
2727}
2728
2729// GetHealthCheck API operation for Amazon Route 53.
2730//
2731// Gets information about a specified health check.
2732//
2733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2734// with awserr.Error's Code and Message methods to get detailed information about
2735// the error.
2736//
2737// See the AWS API reference guide for Amazon Route 53's
2738// API operation GetHealthCheck for usage and error information.
2739//
2740// Returned Error Codes:
2741//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
2742//   No health check exists with the specified ID.
2743//
2744//   * ErrCodeInvalidInput "InvalidInput"
2745//   The input is not valid.
2746//
2747//   * ErrCodeIncompatibleVersion "IncompatibleVersion"
2748//   The resource you're trying to access is unsupported on this Amazon Route
2749//   53 endpoint.
2750//
2751// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheck
2752func (c *Route53) GetHealthCheck(input *GetHealthCheckInput) (*GetHealthCheckOutput, error) {
2753	req, out := c.GetHealthCheckRequest(input)
2754	return out, req.Send()
2755}
2756
2757// GetHealthCheckWithContext is the same as GetHealthCheck with the addition of
2758// the ability to pass a context and additional request options.
2759//
2760// See GetHealthCheck for details on how to use this API operation.
2761//
2762// The context must be non-nil and will be used for request cancellation. If
2763// the context is nil a panic will occur. In the future the SDK may create
2764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2765// for more information on using Contexts.
2766func (c *Route53) GetHealthCheckWithContext(ctx aws.Context, input *GetHealthCheckInput, opts ...request.Option) (*GetHealthCheckOutput, error) {
2767	req, out := c.GetHealthCheckRequest(input)
2768	req.SetContext(ctx)
2769	req.ApplyOptions(opts...)
2770	return out, req.Send()
2771}
2772
2773const opGetHealthCheckCount = "GetHealthCheckCount"
2774
2775// GetHealthCheckCountRequest generates a "aws/request.Request" representing the
2776// client's request for the GetHealthCheckCount operation. The "output" return
2777// value will be populated with the request's response once the request completes
2778// successfully.
2779//
2780// Use "Send" method on the returned Request to send the API call to the service.
2781// the "output" return value is not valid until after Send returns without error.
2782//
2783// See GetHealthCheckCount for more information on using the GetHealthCheckCount
2784// API call, and error handling.
2785//
2786// This method is useful when you want to inject custom logic or configuration
2787// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2788//
2789//
2790//    // Example sending a request using the GetHealthCheckCountRequest method.
2791//    req, resp := client.GetHealthCheckCountRequest(params)
2792//
2793//    err := req.Send()
2794//    if err == nil { // resp is now filled
2795//        fmt.Println(resp)
2796//    }
2797//
2798// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCount
2799func (c *Route53) GetHealthCheckCountRequest(input *GetHealthCheckCountInput) (req *request.Request, output *GetHealthCheckCountOutput) {
2800	op := &request.Operation{
2801		Name:       opGetHealthCheckCount,
2802		HTTPMethod: "GET",
2803		HTTPPath:   "/2013-04-01/healthcheckcount",
2804	}
2805
2806	if input == nil {
2807		input = &GetHealthCheckCountInput{}
2808	}
2809
2810	output = &GetHealthCheckCountOutput{}
2811	req = c.newRequest(op, input, output)
2812	return
2813}
2814
2815// GetHealthCheckCount API operation for Amazon Route 53.
2816//
2817// Retrieves the number of health checks that are associated with the current
2818// AWS account.
2819//
2820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2821// with awserr.Error's Code and Message methods to get detailed information about
2822// the error.
2823//
2824// See the AWS API reference guide for Amazon Route 53's
2825// API operation GetHealthCheckCount for usage and error information.
2826// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCount
2827func (c *Route53) GetHealthCheckCount(input *GetHealthCheckCountInput) (*GetHealthCheckCountOutput, error) {
2828	req, out := c.GetHealthCheckCountRequest(input)
2829	return out, req.Send()
2830}
2831
2832// GetHealthCheckCountWithContext is the same as GetHealthCheckCount with the addition of
2833// the ability to pass a context and additional request options.
2834//
2835// See GetHealthCheckCount for details on how to use this API operation.
2836//
2837// The context must be non-nil and will be used for request cancellation. If
2838// the context is nil a panic will occur. In the future the SDK may create
2839// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2840// for more information on using Contexts.
2841func (c *Route53) GetHealthCheckCountWithContext(ctx aws.Context, input *GetHealthCheckCountInput, opts ...request.Option) (*GetHealthCheckCountOutput, error) {
2842	req, out := c.GetHealthCheckCountRequest(input)
2843	req.SetContext(ctx)
2844	req.ApplyOptions(opts...)
2845	return out, req.Send()
2846}
2847
2848const opGetHealthCheckLastFailureReason = "GetHealthCheckLastFailureReason"
2849
2850// GetHealthCheckLastFailureReasonRequest generates a "aws/request.Request" representing the
2851// client's request for the GetHealthCheckLastFailureReason operation. The "output" return
2852// value will be populated with the request's response once the request completes
2853// successfully.
2854//
2855// Use "Send" method on the returned Request to send the API call to the service.
2856// the "output" return value is not valid until after Send returns without error.
2857//
2858// See GetHealthCheckLastFailureReason for more information on using the GetHealthCheckLastFailureReason
2859// API call, and error handling.
2860//
2861// This method is useful when you want to inject custom logic or configuration
2862// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2863//
2864//
2865//    // Example sending a request using the GetHealthCheckLastFailureReasonRequest method.
2866//    req, resp := client.GetHealthCheckLastFailureReasonRequest(params)
2867//
2868//    err := req.Send()
2869//    if err == nil { // resp is now filled
2870//        fmt.Println(resp)
2871//    }
2872//
2873// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReason
2874func (c *Route53) GetHealthCheckLastFailureReasonRequest(input *GetHealthCheckLastFailureReasonInput) (req *request.Request, output *GetHealthCheckLastFailureReasonOutput) {
2875	op := &request.Operation{
2876		Name:       opGetHealthCheckLastFailureReason,
2877		HTTPMethod: "GET",
2878		HTTPPath:   "/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason",
2879	}
2880
2881	if input == nil {
2882		input = &GetHealthCheckLastFailureReasonInput{}
2883	}
2884
2885	output = &GetHealthCheckLastFailureReasonOutput{}
2886	req = c.newRequest(op, input, output)
2887	return
2888}
2889
2890// GetHealthCheckLastFailureReason API operation for Amazon Route 53.
2891//
2892// Gets the reason that a specified health check failed most recently.
2893//
2894// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2895// with awserr.Error's Code and Message methods to get detailed information about
2896// the error.
2897//
2898// See the AWS API reference guide for Amazon Route 53's
2899// API operation GetHealthCheckLastFailureReason for usage and error information.
2900//
2901// Returned Error Codes:
2902//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
2903//   No health check exists with the specified ID.
2904//
2905//   * ErrCodeInvalidInput "InvalidInput"
2906//   The input is not valid.
2907//
2908// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReason
2909func (c *Route53) GetHealthCheckLastFailureReason(input *GetHealthCheckLastFailureReasonInput) (*GetHealthCheckLastFailureReasonOutput, error) {
2910	req, out := c.GetHealthCheckLastFailureReasonRequest(input)
2911	return out, req.Send()
2912}
2913
2914// GetHealthCheckLastFailureReasonWithContext is the same as GetHealthCheckLastFailureReason with the addition of
2915// the ability to pass a context and additional request options.
2916//
2917// See GetHealthCheckLastFailureReason for details on how to use this API operation.
2918//
2919// The context must be non-nil and will be used for request cancellation. If
2920// the context is nil a panic will occur. In the future the SDK may create
2921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2922// for more information on using Contexts.
2923func (c *Route53) GetHealthCheckLastFailureReasonWithContext(ctx aws.Context, input *GetHealthCheckLastFailureReasonInput, opts ...request.Option) (*GetHealthCheckLastFailureReasonOutput, error) {
2924	req, out := c.GetHealthCheckLastFailureReasonRequest(input)
2925	req.SetContext(ctx)
2926	req.ApplyOptions(opts...)
2927	return out, req.Send()
2928}
2929
2930const opGetHealthCheckStatus = "GetHealthCheckStatus"
2931
2932// GetHealthCheckStatusRequest generates a "aws/request.Request" representing the
2933// client's request for the GetHealthCheckStatus operation. The "output" return
2934// value will be populated with the request's response once the request completes
2935// successfully.
2936//
2937// Use "Send" method on the returned Request to send the API call to the service.
2938// the "output" return value is not valid until after Send returns without error.
2939//
2940// See GetHealthCheckStatus for more information on using the GetHealthCheckStatus
2941// API call, and error handling.
2942//
2943// This method is useful when you want to inject custom logic or configuration
2944// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2945//
2946//
2947//    // Example sending a request using the GetHealthCheckStatusRequest method.
2948//    req, resp := client.GetHealthCheckStatusRequest(params)
2949//
2950//    err := req.Send()
2951//    if err == nil { // resp is now filled
2952//        fmt.Println(resp)
2953//    }
2954//
2955// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatus
2956func (c *Route53) GetHealthCheckStatusRequest(input *GetHealthCheckStatusInput) (req *request.Request, output *GetHealthCheckStatusOutput) {
2957	op := &request.Operation{
2958		Name:       opGetHealthCheckStatus,
2959		HTTPMethod: "GET",
2960		HTTPPath:   "/2013-04-01/healthcheck/{HealthCheckId}/status",
2961	}
2962
2963	if input == nil {
2964		input = &GetHealthCheckStatusInput{}
2965	}
2966
2967	output = &GetHealthCheckStatusOutput{}
2968	req = c.newRequest(op, input, output)
2969	return
2970}
2971
2972// GetHealthCheckStatus API operation for Amazon Route 53.
2973//
2974// Gets status of a specified health check.
2975//
2976// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2977// with awserr.Error's Code and Message methods to get detailed information about
2978// the error.
2979//
2980// See the AWS API reference guide for Amazon Route 53's
2981// API operation GetHealthCheckStatus for usage and error information.
2982//
2983// Returned Error Codes:
2984//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
2985//   No health check exists with the specified ID.
2986//
2987//   * ErrCodeInvalidInput "InvalidInput"
2988//   The input is not valid.
2989//
2990// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatus
2991func (c *Route53) GetHealthCheckStatus(input *GetHealthCheckStatusInput) (*GetHealthCheckStatusOutput, error) {
2992	req, out := c.GetHealthCheckStatusRequest(input)
2993	return out, req.Send()
2994}
2995
2996// GetHealthCheckStatusWithContext is the same as GetHealthCheckStatus with the addition of
2997// the ability to pass a context and additional request options.
2998//
2999// See GetHealthCheckStatus for details on how to use this API operation.
3000//
3001// The context must be non-nil and will be used for request cancellation. If
3002// the context is nil a panic will occur. In the future the SDK may create
3003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3004// for more information on using Contexts.
3005func (c *Route53) GetHealthCheckStatusWithContext(ctx aws.Context, input *GetHealthCheckStatusInput, opts ...request.Option) (*GetHealthCheckStatusOutput, error) {
3006	req, out := c.GetHealthCheckStatusRequest(input)
3007	req.SetContext(ctx)
3008	req.ApplyOptions(opts...)
3009	return out, req.Send()
3010}
3011
3012const opGetHostedZone = "GetHostedZone"
3013
3014// GetHostedZoneRequest generates a "aws/request.Request" representing the
3015// client's request for the GetHostedZone operation. The "output" return
3016// value will be populated with the request's response once the request completes
3017// successfully.
3018//
3019// Use "Send" method on the returned Request to send the API call to the service.
3020// the "output" return value is not valid until after Send returns without error.
3021//
3022// See GetHostedZone for more information on using the GetHostedZone
3023// API call, and error handling.
3024//
3025// This method is useful when you want to inject custom logic or configuration
3026// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3027//
3028//
3029//    // Example sending a request using the GetHostedZoneRequest method.
3030//    req, resp := client.GetHostedZoneRequest(params)
3031//
3032//    err := req.Send()
3033//    if err == nil { // resp is now filled
3034//        fmt.Println(resp)
3035//    }
3036//
3037// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZone
3038func (c *Route53) GetHostedZoneRequest(input *GetHostedZoneInput) (req *request.Request, output *GetHostedZoneOutput) {
3039	op := &request.Operation{
3040		Name:       opGetHostedZone,
3041		HTTPMethod: "GET",
3042		HTTPPath:   "/2013-04-01/hostedzone/{Id}",
3043	}
3044
3045	if input == nil {
3046		input = &GetHostedZoneInput{}
3047	}
3048
3049	output = &GetHostedZoneOutput{}
3050	req = c.newRequest(op, input, output)
3051	return
3052}
3053
3054// GetHostedZone API operation for Amazon Route 53.
3055//
3056// Gets information about a specified hosted zone including the four name servers
3057// assigned to the hosted zone.
3058//
3059// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3060// with awserr.Error's Code and Message methods to get detailed information about
3061// the error.
3062//
3063// See the AWS API reference guide for Amazon Route 53's
3064// API operation GetHostedZone for usage and error information.
3065//
3066// Returned Error Codes:
3067//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
3068//   No hosted zone exists with the ID that you specified.
3069//
3070//   * ErrCodeInvalidInput "InvalidInput"
3071//   The input is not valid.
3072//
3073// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZone
3074func (c *Route53) GetHostedZone(input *GetHostedZoneInput) (*GetHostedZoneOutput, error) {
3075	req, out := c.GetHostedZoneRequest(input)
3076	return out, req.Send()
3077}
3078
3079// GetHostedZoneWithContext is the same as GetHostedZone with the addition of
3080// the ability to pass a context and additional request options.
3081//
3082// See GetHostedZone for details on how to use this API operation.
3083//
3084// The context must be non-nil and will be used for request cancellation. If
3085// the context is nil a panic will occur. In the future the SDK may create
3086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3087// for more information on using Contexts.
3088func (c *Route53) GetHostedZoneWithContext(ctx aws.Context, input *GetHostedZoneInput, opts ...request.Option) (*GetHostedZoneOutput, error) {
3089	req, out := c.GetHostedZoneRequest(input)
3090	req.SetContext(ctx)
3091	req.ApplyOptions(opts...)
3092	return out, req.Send()
3093}
3094
3095const opGetHostedZoneCount = "GetHostedZoneCount"
3096
3097// GetHostedZoneCountRequest generates a "aws/request.Request" representing the
3098// client's request for the GetHostedZoneCount operation. The "output" return
3099// value will be populated with the request's response once the request completes
3100// successfully.
3101//
3102// Use "Send" method on the returned Request to send the API call to the service.
3103// the "output" return value is not valid until after Send returns without error.
3104//
3105// See GetHostedZoneCount for more information on using the GetHostedZoneCount
3106// API call, and error handling.
3107//
3108// This method is useful when you want to inject custom logic or configuration
3109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3110//
3111//
3112//    // Example sending a request using the GetHostedZoneCountRequest method.
3113//    req, resp := client.GetHostedZoneCountRequest(params)
3114//
3115//    err := req.Send()
3116//    if err == nil { // resp is now filled
3117//        fmt.Println(resp)
3118//    }
3119//
3120// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCount
3121func (c *Route53) GetHostedZoneCountRequest(input *GetHostedZoneCountInput) (req *request.Request, output *GetHostedZoneCountOutput) {
3122	op := &request.Operation{
3123		Name:       opGetHostedZoneCount,
3124		HTTPMethod: "GET",
3125		HTTPPath:   "/2013-04-01/hostedzonecount",
3126	}
3127
3128	if input == nil {
3129		input = &GetHostedZoneCountInput{}
3130	}
3131
3132	output = &GetHostedZoneCountOutput{}
3133	req = c.newRequest(op, input, output)
3134	return
3135}
3136
3137// GetHostedZoneCount API operation for Amazon Route 53.
3138//
3139// Retrieves the number of hosted zones that are associated with the current
3140// AWS account.
3141//
3142// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3143// with awserr.Error's Code and Message methods to get detailed information about
3144// the error.
3145//
3146// See the AWS API reference guide for Amazon Route 53's
3147// API operation GetHostedZoneCount for usage and error information.
3148//
3149// Returned Error Codes:
3150//   * ErrCodeInvalidInput "InvalidInput"
3151//   The input is not valid.
3152//
3153// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCount
3154func (c *Route53) GetHostedZoneCount(input *GetHostedZoneCountInput) (*GetHostedZoneCountOutput, error) {
3155	req, out := c.GetHostedZoneCountRequest(input)
3156	return out, req.Send()
3157}
3158
3159// GetHostedZoneCountWithContext is the same as GetHostedZoneCount with the addition of
3160// the ability to pass a context and additional request options.
3161//
3162// See GetHostedZoneCount for details on how to use this API operation.
3163//
3164// The context must be non-nil and will be used for request cancellation. If
3165// the context is nil a panic will occur. In the future the SDK may create
3166// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3167// for more information on using Contexts.
3168func (c *Route53) GetHostedZoneCountWithContext(ctx aws.Context, input *GetHostedZoneCountInput, opts ...request.Option) (*GetHostedZoneCountOutput, error) {
3169	req, out := c.GetHostedZoneCountRequest(input)
3170	req.SetContext(ctx)
3171	req.ApplyOptions(opts...)
3172	return out, req.Send()
3173}
3174
3175const opGetHostedZoneLimit = "GetHostedZoneLimit"
3176
3177// GetHostedZoneLimitRequest generates a "aws/request.Request" representing the
3178// client's request for the GetHostedZoneLimit operation. The "output" return
3179// value will be populated with the request's response once the request completes
3180// successfully.
3181//
3182// Use "Send" method on the returned Request to send the API call to the service.
3183// the "output" return value is not valid until after Send returns without error.
3184//
3185// See GetHostedZoneLimit for more information on using the GetHostedZoneLimit
3186// API call, and error handling.
3187//
3188// This method is useful when you want to inject custom logic or configuration
3189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3190//
3191//
3192//    // Example sending a request using the GetHostedZoneLimitRequest method.
3193//    req, resp := client.GetHostedZoneLimitRequest(params)
3194//
3195//    err := req.Send()
3196//    if err == nil { // resp is now filled
3197//        fmt.Println(resp)
3198//    }
3199//
3200// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimit
3201func (c *Route53) GetHostedZoneLimitRequest(input *GetHostedZoneLimitInput) (req *request.Request, output *GetHostedZoneLimitOutput) {
3202	op := &request.Operation{
3203		Name:       opGetHostedZoneLimit,
3204		HTTPMethod: "GET",
3205		HTTPPath:   "/2013-04-01/hostedzonelimit/{Id}/{Type}",
3206	}
3207
3208	if input == nil {
3209		input = &GetHostedZoneLimitInput{}
3210	}
3211
3212	output = &GetHostedZoneLimitOutput{}
3213	req = c.newRequest(op, input, output)
3214	return
3215}
3216
3217// GetHostedZoneLimit API operation for Amazon Route 53.
3218//
3219// Gets the specified limit for a specified hosted zone, for example, the maximum
3220// number of records that you can create in the hosted zone.
3221//
3222// For the default limit, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
3223// in the Amazon Route 53 Developer Guide. To request a higher limit, open a
3224// case (https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-route53).
3225//
3226// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3227// with awserr.Error's Code and Message methods to get detailed information about
3228// the error.
3229//
3230// See the AWS API reference guide for Amazon Route 53's
3231// API operation GetHostedZoneLimit for usage and error information.
3232//
3233// Returned Error Codes:
3234//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
3235//   No hosted zone exists with the ID that you specified.
3236//
3237//   * ErrCodeInvalidInput "InvalidInput"
3238//   The input is not valid.
3239//
3240//   * ErrCodeHostedZoneNotPrivate "HostedZoneNotPrivate"
3241//   The specified hosted zone is a public hosted zone, not a private hosted zone.
3242//
3243// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimit
3244func (c *Route53) GetHostedZoneLimit(input *GetHostedZoneLimitInput) (*GetHostedZoneLimitOutput, error) {
3245	req, out := c.GetHostedZoneLimitRequest(input)
3246	return out, req.Send()
3247}
3248
3249// GetHostedZoneLimitWithContext is the same as GetHostedZoneLimit with the addition of
3250// the ability to pass a context and additional request options.
3251//
3252// See GetHostedZoneLimit for details on how to use this API operation.
3253//
3254// The context must be non-nil and will be used for request cancellation. If
3255// the context is nil a panic will occur. In the future the SDK may create
3256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3257// for more information on using Contexts.
3258func (c *Route53) GetHostedZoneLimitWithContext(ctx aws.Context, input *GetHostedZoneLimitInput, opts ...request.Option) (*GetHostedZoneLimitOutput, error) {
3259	req, out := c.GetHostedZoneLimitRequest(input)
3260	req.SetContext(ctx)
3261	req.ApplyOptions(opts...)
3262	return out, req.Send()
3263}
3264
3265const opGetQueryLoggingConfig = "GetQueryLoggingConfig"
3266
3267// GetQueryLoggingConfigRequest generates a "aws/request.Request" representing the
3268// client's request for the GetQueryLoggingConfig operation. The "output" return
3269// value will be populated with the request's response once the request completes
3270// successfully.
3271//
3272// Use "Send" method on the returned Request to send the API call to the service.
3273// the "output" return value is not valid until after Send returns without error.
3274//
3275// See GetQueryLoggingConfig for more information on using the GetQueryLoggingConfig
3276// API call, and error handling.
3277//
3278// This method is useful when you want to inject custom logic or configuration
3279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3280//
3281//
3282//    // Example sending a request using the GetQueryLoggingConfigRequest method.
3283//    req, resp := client.GetQueryLoggingConfigRequest(params)
3284//
3285//    err := req.Send()
3286//    if err == nil { // resp is now filled
3287//        fmt.Println(resp)
3288//    }
3289//
3290// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfig
3291func (c *Route53) GetQueryLoggingConfigRequest(input *GetQueryLoggingConfigInput) (req *request.Request, output *GetQueryLoggingConfigOutput) {
3292	op := &request.Operation{
3293		Name:       opGetQueryLoggingConfig,
3294		HTTPMethod: "GET",
3295		HTTPPath:   "/2013-04-01/queryloggingconfig/{Id}",
3296	}
3297
3298	if input == nil {
3299		input = &GetQueryLoggingConfigInput{}
3300	}
3301
3302	output = &GetQueryLoggingConfigOutput{}
3303	req = c.newRequest(op, input, output)
3304	return
3305}
3306
3307// GetQueryLoggingConfig API operation for Amazon Route 53.
3308//
3309// Gets information about a specified configuration for DNS query logging.
3310//
3311// For more information about DNS query logs, see CreateQueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html)
3312// and Logging DNS Queries (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html).
3313//
3314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3315// with awserr.Error's Code and Message methods to get detailed information about
3316// the error.
3317//
3318// See the AWS API reference guide for Amazon Route 53's
3319// API operation GetQueryLoggingConfig for usage and error information.
3320//
3321// Returned Error Codes:
3322//   * ErrCodeNoSuchQueryLoggingConfig "NoSuchQueryLoggingConfig"
3323//   There is no DNS query logging configuration with the specified ID.
3324//
3325//   * ErrCodeInvalidInput "InvalidInput"
3326//   The input is not valid.
3327//
3328// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfig
3329func (c *Route53) GetQueryLoggingConfig(input *GetQueryLoggingConfigInput) (*GetQueryLoggingConfigOutput, error) {
3330	req, out := c.GetQueryLoggingConfigRequest(input)
3331	return out, req.Send()
3332}
3333
3334// GetQueryLoggingConfigWithContext is the same as GetQueryLoggingConfig with the addition of
3335// the ability to pass a context and additional request options.
3336//
3337// See GetQueryLoggingConfig for details on how to use this API operation.
3338//
3339// The context must be non-nil and will be used for request cancellation. If
3340// the context is nil a panic will occur. In the future the SDK may create
3341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3342// for more information on using Contexts.
3343func (c *Route53) GetQueryLoggingConfigWithContext(ctx aws.Context, input *GetQueryLoggingConfigInput, opts ...request.Option) (*GetQueryLoggingConfigOutput, error) {
3344	req, out := c.GetQueryLoggingConfigRequest(input)
3345	req.SetContext(ctx)
3346	req.ApplyOptions(opts...)
3347	return out, req.Send()
3348}
3349
3350const opGetReusableDelegationSet = "GetReusableDelegationSet"
3351
3352// GetReusableDelegationSetRequest generates a "aws/request.Request" representing the
3353// client's request for the GetReusableDelegationSet operation. The "output" return
3354// value will be populated with the request's response once the request completes
3355// successfully.
3356//
3357// Use "Send" method on the returned Request to send the API call to the service.
3358// the "output" return value is not valid until after Send returns without error.
3359//
3360// See GetReusableDelegationSet for more information on using the GetReusableDelegationSet
3361// API call, and error handling.
3362//
3363// This method is useful when you want to inject custom logic or configuration
3364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3365//
3366//
3367//    // Example sending a request using the GetReusableDelegationSetRequest method.
3368//    req, resp := client.GetReusableDelegationSetRequest(params)
3369//
3370//    err := req.Send()
3371//    if err == nil { // resp is now filled
3372//        fmt.Println(resp)
3373//    }
3374//
3375// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSet
3376func (c *Route53) GetReusableDelegationSetRequest(input *GetReusableDelegationSetInput) (req *request.Request, output *GetReusableDelegationSetOutput) {
3377	op := &request.Operation{
3378		Name:       opGetReusableDelegationSet,
3379		HTTPMethod: "GET",
3380		HTTPPath:   "/2013-04-01/delegationset/{Id}",
3381	}
3382
3383	if input == nil {
3384		input = &GetReusableDelegationSetInput{}
3385	}
3386
3387	output = &GetReusableDelegationSetOutput{}
3388	req = c.newRequest(op, input, output)
3389	return
3390}
3391
3392// GetReusableDelegationSet API operation for Amazon Route 53.
3393//
3394// Retrieves information about a specified reusable delegation set, including
3395// the four name servers that are assigned to the delegation set.
3396//
3397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3398// with awserr.Error's Code and Message methods to get detailed information about
3399// the error.
3400//
3401// See the AWS API reference guide for Amazon Route 53's
3402// API operation GetReusableDelegationSet for usage and error information.
3403//
3404// Returned Error Codes:
3405//   * ErrCodeNoSuchDelegationSet "NoSuchDelegationSet"
3406//   A reusable delegation set with the specified ID does not exist.
3407//
3408//   * ErrCodeDelegationSetNotReusable "DelegationSetNotReusable"
3409//   A reusable delegation set with the specified ID does not exist.
3410//
3411//   * ErrCodeInvalidInput "InvalidInput"
3412//   The input is not valid.
3413//
3414// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSet
3415func (c *Route53) GetReusableDelegationSet(input *GetReusableDelegationSetInput) (*GetReusableDelegationSetOutput, error) {
3416	req, out := c.GetReusableDelegationSetRequest(input)
3417	return out, req.Send()
3418}
3419
3420// GetReusableDelegationSetWithContext is the same as GetReusableDelegationSet with the addition of
3421// the ability to pass a context and additional request options.
3422//
3423// See GetReusableDelegationSet for details on how to use this API operation.
3424//
3425// The context must be non-nil and will be used for request cancellation. If
3426// the context is nil a panic will occur. In the future the SDK may create
3427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3428// for more information on using Contexts.
3429func (c *Route53) GetReusableDelegationSetWithContext(ctx aws.Context, input *GetReusableDelegationSetInput, opts ...request.Option) (*GetReusableDelegationSetOutput, error) {
3430	req, out := c.GetReusableDelegationSetRequest(input)
3431	req.SetContext(ctx)
3432	req.ApplyOptions(opts...)
3433	return out, req.Send()
3434}
3435
3436const opGetReusableDelegationSetLimit = "GetReusableDelegationSetLimit"
3437
3438// GetReusableDelegationSetLimitRequest generates a "aws/request.Request" representing the
3439// client's request for the GetReusableDelegationSetLimit operation. The "output" return
3440// value will be populated with the request's response once the request completes
3441// successfully.
3442//
3443// Use "Send" method on the returned Request to send the API call to the service.
3444// the "output" return value is not valid until after Send returns without error.
3445//
3446// See GetReusableDelegationSetLimit for more information on using the GetReusableDelegationSetLimit
3447// API call, and error handling.
3448//
3449// This method is useful when you want to inject custom logic or configuration
3450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3451//
3452//
3453//    // Example sending a request using the GetReusableDelegationSetLimitRequest method.
3454//    req, resp := client.GetReusableDelegationSetLimitRequest(params)
3455//
3456//    err := req.Send()
3457//    if err == nil { // resp is now filled
3458//        fmt.Println(resp)
3459//    }
3460//
3461// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimit
3462func (c *Route53) GetReusableDelegationSetLimitRequest(input *GetReusableDelegationSetLimitInput) (req *request.Request, output *GetReusableDelegationSetLimitOutput) {
3463	op := &request.Operation{
3464		Name:       opGetReusableDelegationSetLimit,
3465		HTTPMethod: "GET",
3466		HTTPPath:   "/2013-04-01/reusabledelegationsetlimit/{Id}/{Type}",
3467	}
3468
3469	if input == nil {
3470		input = &GetReusableDelegationSetLimitInput{}
3471	}
3472
3473	output = &GetReusableDelegationSetLimitOutput{}
3474	req = c.newRequest(op, input, output)
3475	return
3476}
3477
3478// GetReusableDelegationSetLimit API operation for Amazon Route 53.
3479//
3480// Gets the maximum number of hosted zones that you can associate with the specified
3481// reusable delegation set.
3482//
3483// For the default limit, see Limits (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html)
3484// in the Amazon Route 53 Developer Guide. To request a higher limit, open a
3485// case (https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-route53).
3486//
3487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3488// with awserr.Error's Code and Message methods to get detailed information about
3489// the error.
3490//
3491// See the AWS API reference guide for Amazon Route 53's
3492// API operation GetReusableDelegationSetLimit for usage and error information.
3493//
3494// Returned Error Codes:
3495//   * ErrCodeInvalidInput "InvalidInput"
3496//   The input is not valid.
3497//
3498//   * ErrCodeNoSuchDelegationSet "NoSuchDelegationSet"
3499//   A reusable delegation set with the specified ID does not exist.
3500//
3501// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimit
3502func (c *Route53) GetReusableDelegationSetLimit(input *GetReusableDelegationSetLimitInput) (*GetReusableDelegationSetLimitOutput, error) {
3503	req, out := c.GetReusableDelegationSetLimitRequest(input)
3504	return out, req.Send()
3505}
3506
3507// GetReusableDelegationSetLimitWithContext is the same as GetReusableDelegationSetLimit with the addition of
3508// the ability to pass a context and additional request options.
3509//
3510// See GetReusableDelegationSetLimit for details on how to use this API operation.
3511//
3512// The context must be non-nil and will be used for request cancellation. If
3513// the context is nil a panic will occur. In the future the SDK may create
3514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3515// for more information on using Contexts.
3516func (c *Route53) GetReusableDelegationSetLimitWithContext(ctx aws.Context, input *GetReusableDelegationSetLimitInput, opts ...request.Option) (*GetReusableDelegationSetLimitOutput, error) {
3517	req, out := c.GetReusableDelegationSetLimitRequest(input)
3518	req.SetContext(ctx)
3519	req.ApplyOptions(opts...)
3520	return out, req.Send()
3521}
3522
3523const opGetTrafficPolicy = "GetTrafficPolicy"
3524
3525// GetTrafficPolicyRequest generates a "aws/request.Request" representing the
3526// client's request for the GetTrafficPolicy operation. The "output" return
3527// value will be populated with the request's response once the request completes
3528// successfully.
3529//
3530// Use "Send" method on the returned Request to send the API call to the service.
3531// the "output" return value is not valid until after Send returns without error.
3532//
3533// See GetTrafficPolicy for more information on using the GetTrafficPolicy
3534// API call, and error handling.
3535//
3536// This method is useful when you want to inject custom logic or configuration
3537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3538//
3539//
3540//    // Example sending a request using the GetTrafficPolicyRequest method.
3541//    req, resp := client.GetTrafficPolicyRequest(params)
3542//
3543//    err := req.Send()
3544//    if err == nil { // resp is now filled
3545//        fmt.Println(resp)
3546//    }
3547//
3548// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicy
3549func (c *Route53) GetTrafficPolicyRequest(input *GetTrafficPolicyInput) (req *request.Request, output *GetTrafficPolicyOutput) {
3550	op := &request.Operation{
3551		Name:       opGetTrafficPolicy,
3552		HTTPMethod: "GET",
3553		HTTPPath:   "/2013-04-01/trafficpolicy/{Id}/{Version}",
3554	}
3555
3556	if input == nil {
3557		input = &GetTrafficPolicyInput{}
3558	}
3559
3560	output = &GetTrafficPolicyOutput{}
3561	req = c.newRequest(op, input, output)
3562	return
3563}
3564
3565// GetTrafficPolicy API operation for Amazon Route 53.
3566//
3567// Gets information about a specific traffic policy version.
3568//
3569// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3570// with awserr.Error's Code and Message methods to get detailed information about
3571// the error.
3572//
3573// See the AWS API reference guide for Amazon Route 53's
3574// API operation GetTrafficPolicy for usage and error information.
3575//
3576// Returned Error Codes:
3577//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
3578//   No traffic policy exists with the specified ID.
3579//
3580//   * ErrCodeInvalidInput "InvalidInput"
3581//   The input is not valid.
3582//
3583// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicy
3584func (c *Route53) GetTrafficPolicy(input *GetTrafficPolicyInput) (*GetTrafficPolicyOutput, error) {
3585	req, out := c.GetTrafficPolicyRequest(input)
3586	return out, req.Send()
3587}
3588
3589// GetTrafficPolicyWithContext is the same as GetTrafficPolicy with the addition of
3590// the ability to pass a context and additional request options.
3591//
3592// See GetTrafficPolicy for details on how to use this API operation.
3593//
3594// The context must be non-nil and will be used for request cancellation. If
3595// the context is nil a panic will occur. In the future the SDK may create
3596// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3597// for more information on using Contexts.
3598func (c *Route53) GetTrafficPolicyWithContext(ctx aws.Context, input *GetTrafficPolicyInput, opts ...request.Option) (*GetTrafficPolicyOutput, error) {
3599	req, out := c.GetTrafficPolicyRequest(input)
3600	req.SetContext(ctx)
3601	req.ApplyOptions(opts...)
3602	return out, req.Send()
3603}
3604
3605const opGetTrafficPolicyInstance = "GetTrafficPolicyInstance"
3606
3607// GetTrafficPolicyInstanceRequest generates a "aws/request.Request" representing the
3608// client's request for the GetTrafficPolicyInstance operation. The "output" return
3609// value will be populated with the request's response once the request completes
3610// successfully.
3611//
3612// Use "Send" method on the returned Request to send the API call to the service.
3613// the "output" return value is not valid until after Send returns without error.
3614//
3615// See GetTrafficPolicyInstance for more information on using the GetTrafficPolicyInstance
3616// API call, and error handling.
3617//
3618// This method is useful when you want to inject custom logic or configuration
3619// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3620//
3621//
3622//    // Example sending a request using the GetTrafficPolicyInstanceRequest method.
3623//    req, resp := client.GetTrafficPolicyInstanceRequest(params)
3624//
3625//    err := req.Send()
3626//    if err == nil { // resp is now filled
3627//        fmt.Println(resp)
3628//    }
3629//
3630// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstance
3631func (c *Route53) GetTrafficPolicyInstanceRequest(input *GetTrafficPolicyInstanceInput) (req *request.Request, output *GetTrafficPolicyInstanceOutput) {
3632	op := &request.Operation{
3633		Name:       opGetTrafficPolicyInstance,
3634		HTTPMethod: "GET",
3635		HTTPPath:   "/2013-04-01/trafficpolicyinstance/{Id}",
3636	}
3637
3638	if input == nil {
3639		input = &GetTrafficPolicyInstanceInput{}
3640	}
3641
3642	output = &GetTrafficPolicyInstanceOutput{}
3643	req = c.newRequest(op, input, output)
3644	return
3645}
3646
3647// GetTrafficPolicyInstance API operation for Amazon Route 53.
3648//
3649// Gets information about a specified traffic policy instance.
3650//
3651// After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance
3652// request, there's a brief delay while Amazon Route 53 creates the resource
3653// record sets that are specified in the traffic policy definition. For more
3654// information, see the State response element.
3655//
3656// In the Route 53 console, traffic policy instances are known as policy records.
3657//
3658// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3659// with awserr.Error's Code and Message methods to get detailed information about
3660// the error.
3661//
3662// See the AWS API reference guide for Amazon Route 53's
3663// API operation GetTrafficPolicyInstance for usage and error information.
3664//
3665// Returned Error Codes:
3666//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
3667//   No traffic policy instance exists with the specified ID.
3668//
3669//   * ErrCodeInvalidInput "InvalidInput"
3670//   The input is not valid.
3671//
3672// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstance
3673func (c *Route53) GetTrafficPolicyInstance(input *GetTrafficPolicyInstanceInput) (*GetTrafficPolicyInstanceOutput, error) {
3674	req, out := c.GetTrafficPolicyInstanceRequest(input)
3675	return out, req.Send()
3676}
3677
3678// GetTrafficPolicyInstanceWithContext is the same as GetTrafficPolicyInstance with the addition of
3679// the ability to pass a context and additional request options.
3680//
3681// See GetTrafficPolicyInstance for details on how to use this API operation.
3682//
3683// The context must be non-nil and will be used for request cancellation. If
3684// the context is nil a panic will occur. In the future the SDK may create
3685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3686// for more information on using Contexts.
3687func (c *Route53) GetTrafficPolicyInstanceWithContext(ctx aws.Context, input *GetTrafficPolicyInstanceInput, opts ...request.Option) (*GetTrafficPolicyInstanceOutput, error) {
3688	req, out := c.GetTrafficPolicyInstanceRequest(input)
3689	req.SetContext(ctx)
3690	req.ApplyOptions(opts...)
3691	return out, req.Send()
3692}
3693
3694const opGetTrafficPolicyInstanceCount = "GetTrafficPolicyInstanceCount"
3695
3696// GetTrafficPolicyInstanceCountRequest generates a "aws/request.Request" representing the
3697// client's request for the GetTrafficPolicyInstanceCount operation. The "output" return
3698// value will be populated with the request's response once the request completes
3699// successfully.
3700//
3701// Use "Send" method on the returned Request to send the API call to the service.
3702// the "output" return value is not valid until after Send returns without error.
3703//
3704// See GetTrafficPolicyInstanceCount for more information on using the GetTrafficPolicyInstanceCount
3705// API call, and error handling.
3706//
3707// This method is useful when you want to inject custom logic or configuration
3708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3709//
3710//
3711//    // Example sending a request using the GetTrafficPolicyInstanceCountRequest method.
3712//    req, resp := client.GetTrafficPolicyInstanceCountRequest(params)
3713//
3714//    err := req.Send()
3715//    if err == nil { // resp is now filled
3716//        fmt.Println(resp)
3717//    }
3718//
3719// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCount
3720func (c *Route53) GetTrafficPolicyInstanceCountRequest(input *GetTrafficPolicyInstanceCountInput) (req *request.Request, output *GetTrafficPolicyInstanceCountOutput) {
3721	op := &request.Operation{
3722		Name:       opGetTrafficPolicyInstanceCount,
3723		HTTPMethod: "GET",
3724		HTTPPath:   "/2013-04-01/trafficpolicyinstancecount",
3725	}
3726
3727	if input == nil {
3728		input = &GetTrafficPolicyInstanceCountInput{}
3729	}
3730
3731	output = &GetTrafficPolicyInstanceCountOutput{}
3732	req = c.newRequest(op, input, output)
3733	return
3734}
3735
3736// GetTrafficPolicyInstanceCount API operation for Amazon Route 53.
3737//
3738// Gets the number of traffic policy instances that are associated with the
3739// current AWS account.
3740//
3741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3742// with awserr.Error's Code and Message methods to get detailed information about
3743// the error.
3744//
3745// See the AWS API reference guide for Amazon Route 53's
3746// API operation GetTrafficPolicyInstanceCount for usage and error information.
3747// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCount
3748func (c *Route53) GetTrafficPolicyInstanceCount(input *GetTrafficPolicyInstanceCountInput) (*GetTrafficPolicyInstanceCountOutput, error) {
3749	req, out := c.GetTrafficPolicyInstanceCountRequest(input)
3750	return out, req.Send()
3751}
3752
3753// GetTrafficPolicyInstanceCountWithContext is the same as GetTrafficPolicyInstanceCount with the addition of
3754// the ability to pass a context and additional request options.
3755//
3756// See GetTrafficPolicyInstanceCount for details on how to use this API operation.
3757//
3758// The context must be non-nil and will be used for request cancellation. If
3759// the context is nil a panic will occur. In the future the SDK may create
3760// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3761// for more information on using Contexts.
3762func (c *Route53) GetTrafficPolicyInstanceCountWithContext(ctx aws.Context, input *GetTrafficPolicyInstanceCountInput, opts ...request.Option) (*GetTrafficPolicyInstanceCountOutput, error) {
3763	req, out := c.GetTrafficPolicyInstanceCountRequest(input)
3764	req.SetContext(ctx)
3765	req.ApplyOptions(opts...)
3766	return out, req.Send()
3767}
3768
3769const opListGeoLocations = "ListGeoLocations"
3770
3771// ListGeoLocationsRequest generates a "aws/request.Request" representing the
3772// client's request for the ListGeoLocations operation. The "output" return
3773// value will be populated with the request's response once the request completes
3774// successfully.
3775//
3776// Use "Send" method on the returned Request to send the API call to the service.
3777// the "output" return value is not valid until after Send returns without error.
3778//
3779// See ListGeoLocations for more information on using the ListGeoLocations
3780// API call, and error handling.
3781//
3782// This method is useful when you want to inject custom logic or configuration
3783// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3784//
3785//
3786//    // Example sending a request using the ListGeoLocationsRequest method.
3787//    req, resp := client.ListGeoLocationsRequest(params)
3788//
3789//    err := req.Send()
3790//    if err == nil { // resp is now filled
3791//        fmt.Println(resp)
3792//    }
3793//
3794// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocations
3795func (c *Route53) ListGeoLocationsRequest(input *ListGeoLocationsInput) (req *request.Request, output *ListGeoLocationsOutput) {
3796	op := &request.Operation{
3797		Name:       opListGeoLocations,
3798		HTTPMethod: "GET",
3799		HTTPPath:   "/2013-04-01/geolocations",
3800	}
3801
3802	if input == nil {
3803		input = &ListGeoLocationsInput{}
3804	}
3805
3806	output = &ListGeoLocationsOutput{}
3807	req = c.newRequest(op, input, output)
3808	return
3809}
3810
3811// ListGeoLocations API operation for Amazon Route 53.
3812//
3813// Retrieves a list of supported geographic locations.
3814//
3815// Countries are listed first, and continents are listed last. If Amazon Route
3816// 53 supports subdivisions for a country (for example, states or provinces),
3817// the subdivisions for that country are listed in alphabetical order immediately
3818// after the corresponding country.
3819//
3820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3821// with awserr.Error's Code and Message methods to get detailed information about
3822// the error.
3823//
3824// See the AWS API reference guide for Amazon Route 53's
3825// API operation ListGeoLocations for usage and error information.
3826//
3827// Returned Error Codes:
3828//   * ErrCodeInvalidInput "InvalidInput"
3829//   The input is not valid.
3830//
3831// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocations
3832func (c *Route53) ListGeoLocations(input *ListGeoLocationsInput) (*ListGeoLocationsOutput, error) {
3833	req, out := c.ListGeoLocationsRequest(input)
3834	return out, req.Send()
3835}
3836
3837// ListGeoLocationsWithContext is the same as ListGeoLocations with the addition of
3838// the ability to pass a context and additional request options.
3839//
3840// See ListGeoLocations for details on how to use this API operation.
3841//
3842// The context must be non-nil and will be used for request cancellation. If
3843// the context is nil a panic will occur. In the future the SDK may create
3844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3845// for more information on using Contexts.
3846func (c *Route53) ListGeoLocationsWithContext(ctx aws.Context, input *ListGeoLocationsInput, opts ...request.Option) (*ListGeoLocationsOutput, error) {
3847	req, out := c.ListGeoLocationsRequest(input)
3848	req.SetContext(ctx)
3849	req.ApplyOptions(opts...)
3850	return out, req.Send()
3851}
3852
3853const opListHealthChecks = "ListHealthChecks"
3854
3855// ListHealthChecksRequest generates a "aws/request.Request" representing the
3856// client's request for the ListHealthChecks operation. The "output" return
3857// value will be populated with the request's response once the request completes
3858// successfully.
3859//
3860// Use "Send" method on the returned Request to send the API call to the service.
3861// the "output" return value is not valid until after Send returns without error.
3862//
3863// See ListHealthChecks for more information on using the ListHealthChecks
3864// API call, and error handling.
3865//
3866// This method is useful when you want to inject custom logic or configuration
3867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3868//
3869//
3870//    // Example sending a request using the ListHealthChecksRequest method.
3871//    req, resp := client.ListHealthChecksRequest(params)
3872//
3873//    err := req.Send()
3874//    if err == nil { // resp is now filled
3875//        fmt.Println(resp)
3876//    }
3877//
3878// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecks
3879func (c *Route53) ListHealthChecksRequest(input *ListHealthChecksInput) (req *request.Request, output *ListHealthChecksOutput) {
3880	op := &request.Operation{
3881		Name:       opListHealthChecks,
3882		HTTPMethod: "GET",
3883		HTTPPath:   "/2013-04-01/healthcheck",
3884		Paginator: &request.Paginator{
3885			InputTokens:     []string{"Marker"},
3886			OutputTokens:    []string{"NextMarker"},
3887			LimitToken:      "MaxItems",
3888			TruncationToken: "IsTruncated",
3889		},
3890	}
3891
3892	if input == nil {
3893		input = &ListHealthChecksInput{}
3894	}
3895
3896	output = &ListHealthChecksOutput{}
3897	req = c.newRequest(op, input, output)
3898	return
3899}
3900
3901// ListHealthChecks API operation for Amazon Route 53.
3902//
3903// Retrieve a list of the health checks that are associated with the current
3904// AWS account.
3905//
3906// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3907// with awserr.Error's Code and Message methods to get detailed information about
3908// the error.
3909//
3910// See the AWS API reference guide for Amazon Route 53's
3911// API operation ListHealthChecks for usage and error information.
3912//
3913// Returned Error Codes:
3914//   * ErrCodeInvalidInput "InvalidInput"
3915//   The input is not valid.
3916//
3917//   * ErrCodeIncompatibleVersion "IncompatibleVersion"
3918//   The resource you're trying to access is unsupported on this Amazon Route
3919//   53 endpoint.
3920//
3921// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecks
3922func (c *Route53) ListHealthChecks(input *ListHealthChecksInput) (*ListHealthChecksOutput, error) {
3923	req, out := c.ListHealthChecksRequest(input)
3924	return out, req.Send()
3925}
3926
3927// ListHealthChecksWithContext is the same as ListHealthChecks with the addition of
3928// the ability to pass a context and additional request options.
3929//
3930// See ListHealthChecks for details on how to use this API operation.
3931//
3932// The context must be non-nil and will be used for request cancellation. If
3933// the context is nil a panic will occur. In the future the SDK may create
3934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3935// for more information on using Contexts.
3936func (c *Route53) ListHealthChecksWithContext(ctx aws.Context, input *ListHealthChecksInput, opts ...request.Option) (*ListHealthChecksOutput, error) {
3937	req, out := c.ListHealthChecksRequest(input)
3938	req.SetContext(ctx)
3939	req.ApplyOptions(opts...)
3940	return out, req.Send()
3941}
3942
3943// ListHealthChecksPages iterates over the pages of a ListHealthChecks operation,
3944// calling the "fn" function with the response data for each page. To stop
3945// iterating, return false from the fn function.
3946//
3947// See ListHealthChecks method for more information on how to use this operation.
3948//
3949// Note: This operation can generate multiple requests to a service.
3950//
3951//    // Example iterating over at most 3 pages of a ListHealthChecks operation.
3952//    pageNum := 0
3953//    err := client.ListHealthChecksPages(params,
3954//        func(page *route53.ListHealthChecksOutput, lastPage bool) bool {
3955//            pageNum++
3956//            fmt.Println(page)
3957//            return pageNum <= 3
3958//        })
3959//
3960func (c *Route53) ListHealthChecksPages(input *ListHealthChecksInput, fn func(*ListHealthChecksOutput, bool) bool) error {
3961	return c.ListHealthChecksPagesWithContext(aws.BackgroundContext(), input, fn)
3962}
3963
3964// ListHealthChecksPagesWithContext same as ListHealthChecksPages except
3965// it takes a Context and allows setting request options on the pages.
3966//
3967// The context must be non-nil and will be used for request cancellation. If
3968// the context is nil a panic will occur. In the future the SDK may create
3969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3970// for more information on using Contexts.
3971func (c *Route53) ListHealthChecksPagesWithContext(ctx aws.Context, input *ListHealthChecksInput, fn func(*ListHealthChecksOutput, bool) bool, opts ...request.Option) error {
3972	p := request.Pagination{
3973		NewRequest: func() (*request.Request, error) {
3974			var inCpy *ListHealthChecksInput
3975			if input != nil {
3976				tmp := *input
3977				inCpy = &tmp
3978			}
3979			req, _ := c.ListHealthChecksRequest(inCpy)
3980			req.SetContext(ctx)
3981			req.ApplyOptions(opts...)
3982			return req, nil
3983		},
3984	}
3985
3986	for p.Next() {
3987		if !fn(p.Page().(*ListHealthChecksOutput), !p.HasNextPage()) {
3988			break
3989		}
3990	}
3991
3992	return p.Err()
3993}
3994
3995const opListHostedZones = "ListHostedZones"
3996
3997// ListHostedZonesRequest generates a "aws/request.Request" representing the
3998// client's request for the ListHostedZones operation. The "output" return
3999// value will be populated with the request's response once the request completes
4000// successfully.
4001//
4002// Use "Send" method on the returned Request to send the API call to the service.
4003// the "output" return value is not valid until after Send returns without error.
4004//
4005// See ListHostedZones for more information on using the ListHostedZones
4006// API call, and error handling.
4007//
4008// This method is useful when you want to inject custom logic or configuration
4009// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4010//
4011//
4012//    // Example sending a request using the ListHostedZonesRequest method.
4013//    req, resp := client.ListHostedZonesRequest(params)
4014//
4015//    err := req.Send()
4016//    if err == nil { // resp is now filled
4017//        fmt.Println(resp)
4018//    }
4019//
4020// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones
4021func (c *Route53) ListHostedZonesRequest(input *ListHostedZonesInput) (req *request.Request, output *ListHostedZonesOutput) {
4022	op := &request.Operation{
4023		Name:       opListHostedZones,
4024		HTTPMethod: "GET",
4025		HTTPPath:   "/2013-04-01/hostedzone",
4026		Paginator: &request.Paginator{
4027			InputTokens:     []string{"Marker"},
4028			OutputTokens:    []string{"NextMarker"},
4029			LimitToken:      "MaxItems",
4030			TruncationToken: "IsTruncated",
4031		},
4032	}
4033
4034	if input == nil {
4035		input = &ListHostedZonesInput{}
4036	}
4037
4038	output = &ListHostedZonesOutput{}
4039	req = c.newRequest(op, input, output)
4040	return
4041}
4042
4043// ListHostedZones API operation for Amazon Route 53.
4044//
4045// Retrieves a list of the public and private hosted zones that are associated
4046// with the current AWS account. The response includes a HostedZones child element
4047// for each hosted zone.
4048//
4049// Amazon Route 53 returns a maximum of 100 items in each response. If you have
4050// a lot of hosted zones, you can use the maxitems parameter to list them in
4051// groups of up to 100.
4052//
4053// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4054// with awserr.Error's Code and Message methods to get detailed information about
4055// the error.
4056//
4057// See the AWS API reference guide for Amazon Route 53's
4058// API operation ListHostedZones for usage and error information.
4059//
4060// Returned Error Codes:
4061//   * ErrCodeInvalidInput "InvalidInput"
4062//   The input is not valid.
4063//
4064//   * ErrCodeNoSuchDelegationSet "NoSuchDelegationSet"
4065//   A reusable delegation set with the specified ID does not exist.
4066//
4067//   * ErrCodeDelegationSetNotReusable "DelegationSetNotReusable"
4068//   A reusable delegation set with the specified ID does not exist.
4069//
4070// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones
4071func (c *Route53) ListHostedZones(input *ListHostedZonesInput) (*ListHostedZonesOutput, error) {
4072	req, out := c.ListHostedZonesRequest(input)
4073	return out, req.Send()
4074}
4075
4076// ListHostedZonesWithContext is the same as ListHostedZones with the addition of
4077// the ability to pass a context and additional request options.
4078//
4079// See ListHostedZones for details on how to use this API operation.
4080//
4081// The context must be non-nil and will be used for request cancellation. If
4082// the context is nil a panic will occur. In the future the SDK may create
4083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4084// for more information on using Contexts.
4085func (c *Route53) ListHostedZonesWithContext(ctx aws.Context, input *ListHostedZonesInput, opts ...request.Option) (*ListHostedZonesOutput, error) {
4086	req, out := c.ListHostedZonesRequest(input)
4087	req.SetContext(ctx)
4088	req.ApplyOptions(opts...)
4089	return out, req.Send()
4090}
4091
4092// ListHostedZonesPages iterates over the pages of a ListHostedZones operation,
4093// calling the "fn" function with the response data for each page. To stop
4094// iterating, return false from the fn function.
4095//
4096// See ListHostedZones method for more information on how to use this operation.
4097//
4098// Note: This operation can generate multiple requests to a service.
4099//
4100//    // Example iterating over at most 3 pages of a ListHostedZones operation.
4101//    pageNum := 0
4102//    err := client.ListHostedZonesPages(params,
4103//        func(page *route53.ListHostedZonesOutput, lastPage bool) bool {
4104//            pageNum++
4105//            fmt.Println(page)
4106//            return pageNum <= 3
4107//        })
4108//
4109func (c *Route53) ListHostedZonesPages(input *ListHostedZonesInput, fn func(*ListHostedZonesOutput, bool) bool) error {
4110	return c.ListHostedZonesPagesWithContext(aws.BackgroundContext(), input, fn)
4111}
4112
4113// ListHostedZonesPagesWithContext same as ListHostedZonesPages except
4114// it takes a Context and allows setting request options on the pages.
4115//
4116// The context must be non-nil and will be used for request cancellation. If
4117// the context is nil a panic will occur. In the future the SDK may create
4118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4119// for more information on using Contexts.
4120func (c *Route53) ListHostedZonesPagesWithContext(ctx aws.Context, input *ListHostedZonesInput, fn func(*ListHostedZonesOutput, bool) bool, opts ...request.Option) error {
4121	p := request.Pagination{
4122		NewRequest: func() (*request.Request, error) {
4123			var inCpy *ListHostedZonesInput
4124			if input != nil {
4125				tmp := *input
4126				inCpy = &tmp
4127			}
4128			req, _ := c.ListHostedZonesRequest(inCpy)
4129			req.SetContext(ctx)
4130			req.ApplyOptions(opts...)
4131			return req, nil
4132		},
4133	}
4134
4135	for p.Next() {
4136		if !fn(p.Page().(*ListHostedZonesOutput), !p.HasNextPage()) {
4137			break
4138		}
4139	}
4140
4141	return p.Err()
4142}
4143
4144const opListHostedZonesByName = "ListHostedZonesByName"
4145
4146// ListHostedZonesByNameRequest generates a "aws/request.Request" representing the
4147// client's request for the ListHostedZonesByName operation. The "output" return
4148// value will be populated with the request's response once the request completes
4149// successfully.
4150//
4151// Use "Send" method on the returned Request to send the API call to the service.
4152// the "output" return value is not valid until after Send returns without error.
4153//
4154// See ListHostedZonesByName for more information on using the ListHostedZonesByName
4155// API call, and error handling.
4156//
4157// This method is useful when you want to inject custom logic or configuration
4158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4159//
4160//
4161//    // Example sending a request using the ListHostedZonesByNameRequest method.
4162//    req, resp := client.ListHostedZonesByNameRequest(params)
4163//
4164//    err := req.Send()
4165//    if err == nil { // resp is now filled
4166//        fmt.Println(resp)
4167//    }
4168//
4169// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName
4170func (c *Route53) ListHostedZonesByNameRequest(input *ListHostedZonesByNameInput) (req *request.Request, output *ListHostedZonesByNameOutput) {
4171	op := &request.Operation{
4172		Name:       opListHostedZonesByName,
4173		HTTPMethod: "GET",
4174		HTTPPath:   "/2013-04-01/hostedzonesbyname",
4175	}
4176
4177	if input == nil {
4178		input = &ListHostedZonesByNameInput{}
4179	}
4180
4181	output = &ListHostedZonesByNameOutput{}
4182	req = c.newRequest(op, input, output)
4183	return
4184}
4185
4186// ListHostedZonesByName API operation for Amazon Route 53.
4187//
4188// Retrieves a list of your hosted zones in lexicographic order. The response
4189// includes a HostedZones child element for each hosted zone created by the
4190// current AWS account.
4191//
4192// ListHostedZonesByName sorts hosted zones by name with the labels reversed.
4193// For example:
4194//
4195// com.example.www.
4196//
4197// Note the trailing dot, which can change the sort order in some circumstances.
4198//
4199// If the domain name includes escape characters or Punycode, ListHostedZonesByName
4200// alphabetizes the domain name using the escaped or Punycoded value, which
4201// is the format that Amazon Route 53 saves in its database. For example, to
4202// create a hosted zone for exämple.com, you specify ex\344mple.com for the
4203// domain name. ListHostedZonesByName alphabetizes it as:
4204//
4205// com.ex\344mple.
4206//
4207// The labels are reversed and alphabetized using the escaped value. For more
4208// information about valid domain name formats, including internationalized
4209// domain names, see DNS Domain Name Format (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html)
4210// in the Amazon Route 53 Developer Guide.
4211//
4212// Route 53 returns up to 100 items in each response. If you have a lot of hosted
4213// zones, use the MaxItems parameter to list them in groups of up to 100. The
4214// response includes values that help navigate from one group of MaxItems hosted
4215// zones to the next:
4216//
4217//    * The DNSName and HostedZoneId elements in the response contain the values,
4218//    if any, specified for the dnsname and hostedzoneid parameters in the request
4219//    that produced the current response.
4220//
4221//    * The MaxItems element in the response contains the value, if any, that
4222//    you specified for the maxitems parameter in the request that produced
4223//    the current response.
4224//
4225//    * If the value of IsTruncated in the response is true, there are more
4226//    hosted zones associated with the current AWS account. If IsTruncated is
4227//    false, this response includes the last hosted zone that is associated
4228//    with the current account. The NextDNSName element and NextHostedZoneId
4229//    elements are omitted from the response.
4230//
4231//    * The NextDNSName and NextHostedZoneId elements in the response contain
4232//    the domain name and the hosted zone ID of the next hosted zone that is
4233//    associated with the current AWS account. If you want to list more hosted
4234//    zones, make another call to ListHostedZonesByName, and specify the value
4235//    of NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters,
4236//    respectively.
4237//
4238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4239// with awserr.Error's Code and Message methods to get detailed information about
4240// the error.
4241//
4242// See the AWS API reference guide for Amazon Route 53's
4243// API operation ListHostedZonesByName for usage and error information.
4244//
4245// Returned Error Codes:
4246//   * ErrCodeInvalidInput "InvalidInput"
4247//   The input is not valid.
4248//
4249//   * ErrCodeInvalidDomainName "InvalidDomainName"
4250//   The specified domain name is not valid.
4251//
4252// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName
4253func (c *Route53) ListHostedZonesByName(input *ListHostedZonesByNameInput) (*ListHostedZonesByNameOutput, error) {
4254	req, out := c.ListHostedZonesByNameRequest(input)
4255	return out, req.Send()
4256}
4257
4258// ListHostedZonesByNameWithContext is the same as ListHostedZonesByName with the addition of
4259// the ability to pass a context and additional request options.
4260//
4261// See ListHostedZonesByName for details on how to use this API operation.
4262//
4263// The context must be non-nil and will be used for request cancellation. If
4264// the context is nil a panic will occur. In the future the SDK may create
4265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4266// for more information on using Contexts.
4267func (c *Route53) ListHostedZonesByNameWithContext(ctx aws.Context, input *ListHostedZonesByNameInput, opts ...request.Option) (*ListHostedZonesByNameOutput, error) {
4268	req, out := c.ListHostedZonesByNameRequest(input)
4269	req.SetContext(ctx)
4270	req.ApplyOptions(opts...)
4271	return out, req.Send()
4272}
4273
4274const opListQueryLoggingConfigs = "ListQueryLoggingConfigs"
4275
4276// ListQueryLoggingConfigsRequest generates a "aws/request.Request" representing the
4277// client's request for the ListQueryLoggingConfigs operation. The "output" return
4278// value will be populated with the request's response once the request completes
4279// successfully.
4280//
4281// Use "Send" method on the returned Request to send the API call to the service.
4282// the "output" return value is not valid until after Send returns without error.
4283//
4284// See ListQueryLoggingConfigs for more information on using the ListQueryLoggingConfigs
4285// API call, and error handling.
4286//
4287// This method is useful when you want to inject custom logic or configuration
4288// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4289//
4290//
4291//    // Example sending a request using the ListQueryLoggingConfigsRequest method.
4292//    req, resp := client.ListQueryLoggingConfigsRequest(params)
4293//
4294//    err := req.Send()
4295//    if err == nil { // resp is now filled
4296//        fmt.Println(resp)
4297//    }
4298//
4299// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs
4300func (c *Route53) ListQueryLoggingConfigsRequest(input *ListQueryLoggingConfigsInput) (req *request.Request, output *ListQueryLoggingConfigsOutput) {
4301	op := &request.Operation{
4302		Name:       opListQueryLoggingConfigs,
4303		HTTPMethod: "GET",
4304		HTTPPath:   "/2013-04-01/queryloggingconfig",
4305	}
4306
4307	if input == nil {
4308		input = &ListQueryLoggingConfigsInput{}
4309	}
4310
4311	output = &ListQueryLoggingConfigsOutput{}
4312	req = c.newRequest(op, input, output)
4313	return
4314}
4315
4316// ListQueryLoggingConfigs API operation for Amazon Route 53.
4317//
4318// Lists the configurations for DNS query logging that are associated with the
4319// current AWS account or the configuration that is associated with a specified
4320// hosted zone.
4321//
4322// For more information about DNS query logs, see CreateQueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html).
4323// Additional information, including the format of DNS query logs, appears in
4324// Logging DNS Queries (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html)
4325// in the Amazon Route 53 Developer Guide.
4326//
4327// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4328// with awserr.Error's Code and Message methods to get detailed information about
4329// the error.
4330//
4331// See the AWS API reference guide for Amazon Route 53's
4332// API operation ListQueryLoggingConfigs for usage and error information.
4333//
4334// Returned Error Codes:
4335//   * ErrCodeInvalidInput "InvalidInput"
4336//   The input is not valid.
4337//
4338//   * ErrCodeInvalidPaginationToken "InvalidPaginationToken"
4339//   The value that you specified to get the second or subsequent page of results
4340//   is invalid.
4341//
4342//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4343//   No hosted zone exists with the ID that you specified.
4344//
4345// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs
4346func (c *Route53) ListQueryLoggingConfigs(input *ListQueryLoggingConfigsInput) (*ListQueryLoggingConfigsOutput, error) {
4347	req, out := c.ListQueryLoggingConfigsRequest(input)
4348	return out, req.Send()
4349}
4350
4351// ListQueryLoggingConfigsWithContext is the same as ListQueryLoggingConfigs with the addition of
4352// the ability to pass a context and additional request options.
4353//
4354// See ListQueryLoggingConfigs for details on how to use this API operation.
4355//
4356// The context must be non-nil and will be used for request cancellation. If
4357// the context is nil a panic will occur. In the future the SDK may create
4358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4359// for more information on using Contexts.
4360func (c *Route53) ListQueryLoggingConfigsWithContext(ctx aws.Context, input *ListQueryLoggingConfigsInput, opts ...request.Option) (*ListQueryLoggingConfigsOutput, error) {
4361	req, out := c.ListQueryLoggingConfigsRequest(input)
4362	req.SetContext(ctx)
4363	req.ApplyOptions(opts...)
4364	return out, req.Send()
4365}
4366
4367const opListResourceRecordSets = "ListResourceRecordSets"
4368
4369// ListResourceRecordSetsRequest generates a "aws/request.Request" representing the
4370// client's request for the ListResourceRecordSets operation. The "output" return
4371// value will be populated with the request's response once the request completes
4372// successfully.
4373//
4374// Use "Send" method on the returned Request to send the API call to the service.
4375// the "output" return value is not valid until after Send returns without error.
4376//
4377// See ListResourceRecordSets for more information on using the ListResourceRecordSets
4378// API call, and error handling.
4379//
4380// This method is useful when you want to inject custom logic or configuration
4381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4382//
4383//
4384//    // Example sending a request using the ListResourceRecordSetsRequest method.
4385//    req, resp := client.ListResourceRecordSetsRequest(params)
4386//
4387//    err := req.Send()
4388//    if err == nil { // resp is now filled
4389//        fmt.Println(resp)
4390//    }
4391//
4392// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets
4393func (c *Route53) ListResourceRecordSetsRequest(input *ListResourceRecordSetsInput) (req *request.Request, output *ListResourceRecordSetsOutput) {
4394	op := &request.Operation{
4395		Name:       opListResourceRecordSets,
4396		HTTPMethod: "GET",
4397		HTTPPath:   "/2013-04-01/hostedzone/{Id}/rrset",
4398		Paginator: &request.Paginator{
4399			InputTokens:     []string{"StartRecordName", "StartRecordType", "StartRecordIdentifier"},
4400			OutputTokens:    []string{"NextRecordName", "NextRecordType", "NextRecordIdentifier"},
4401			LimitToken:      "MaxItems",
4402			TruncationToken: "IsTruncated",
4403		},
4404	}
4405
4406	if input == nil {
4407		input = &ListResourceRecordSetsInput{}
4408	}
4409
4410	output = &ListResourceRecordSetsOutput{}
4411	req = c.newRequest(op, input, output)
4412	return
4413}
4414
4415// ListResourceRecordSets API operation for Amazon Route 53.
4416//
4417// Lists the resource record sets in a specified hosted zone.
4418//
4419// ListResourceRecordSets returns up to 100 resource record sets at a time in
4420// ASCII order, beginning at a position specified by the name and type elements.
4421//
4422// Sort order
4423//
4424// ListResourceRecordSets sorts results first by DNS name with the labels reversed,
4425// for example:
4426//
4427// com.example.www.
4428//
4429// Note the trailing dot, which can change the sort order when the record name
4430// contains characters that appear before . (decimal 46) in the ASCII table.
4431// These characters include the following: ! " # $ % & ' ( ) * + , -
4432//
4433// When multiple records have the same DNS name, ListResourceRecordSets sorts
4434// results by the record type.
4435//
4436// Specifying where to start listing records
4437//
4438// You can use the name and type elements to specify the resource record set
4439// that the list begins with:
4440//
4441// If you do not specify Name or Type
4442//
4443// The results begin with the first resource record set that the hosted zone
4444// contains.
4445//
4446// If you specify Name but not Type
4447//
4448// The results begin with the first resource record set in the list whose name
4449// is greater than or equal to Name.
4450//
4451// If you specify Type but not Name
4452//
4453// Amazon Route 53 returns the InvalidInput error.
4454//
4455// If you specify both Name and Type
4456//
4457// The results begin with the first resource record set in the list whose name
4458// is greater than or equal to Name, and whose type is greater than or equal
4459// to Type.
4460//
4461// Resource record sets that are PENDING
4462//
4463// This action returns the most current version of the records. This includes
4464// records that are PENDING, and that are not yet available on all Route 53
4465// DNS servers.
4466//
4467// Changing resource record sets
4468//
4469// To ensure that you get an accurate listing of the resource record sets for
4470// a hosted zone at a point in time, do not submit a ChangeResourceRecordSets
4471// request while you're paging through the results of a ListResourceRecordSets
4472// request. If you do, some pages may display results without the latest changes
4473// while other pages display results with the latest changes.
4474//
4475// Displaying the next page of results
4476//
4477// If a ListResourceRecordSets command returns more than one page of results,
4478// the value of IsTruncated is true. To display the next page of results, get
4479// the values of NextRecordName, NextRecordType, and NextRecordIdentifier (if
4480// any) from the response. Then submit another ListResourceRecordSets request,
4481// and specify those values for StartRecordName, StartRecordType, and StartRecordIdentifier.
4482//
4483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4484// with awserr.Error's Code and Message methods to get detailed information about
4485// the error.
4486//
4487// See the AWS API reference guide for Amazon Route 53's
4488// API operation ListResourceRecordSets for usage and error information.
4489//
4490// Returned Error Codes:
4491//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4492//   No hosted zone exists with the ID that you specified.
4493//
4494//   * ErrCodeInvalidInput "InvalidInput"
4495//   The input is not valid.
4496//
4497// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets
4498func (c *Route53) ListResourceRecordSets(input *ListResourceRecordSetsInput) (*ListResourceRecordSetsOutput, error) {
4499	req, out := c.ListResourceRecordSetsRequest(input)
4500	return out, req.Send()
4501}
4502
4503// ListResourceRecordSetsWithContext is the same as ListResourceRecordSets with the addition of
4504// the ability to pass a context and additional request options.
4505//
4506// See ListResourceRecordSets for details on how to use this API operation.
4507//
4508// The context must be non-nil and will be used for request cancellation. If
4509// the context is nil a panic will occur. In the future the SDK may create
4510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4511// for more information on using Contexts.
4512func (c *Route53) ListResourceRecordSetsWithContext(ctx aws.Context, input *ListResourceRecordSetsInput, opts ...request.Option) (*ListResourceRecordSetsOutput, error) {
4513	req, out := c.ListResourceRecordSetsRequest(input)
4514	req.SetContext(ctx)
4515	req.ApplyOptions(opts...)
4516	return out, req.Send()
4517}
4518
4519// ListResourceRecordSetsPages iterates over the pages of a ListResourceRecordSets operation,
4520// calling the "fn" function with the response data for each page. To stop
4521// iterating, return false from the fn function.
4522//
4523// See ListResourceRecordSets method for more information on how to use this operation.
4524//
4525// Note: This operation can generate multiple requests to a service.
4526//
4527//    // Example iterating over at most 3 pages of a ListResourceRecordSets operation.
4528//    pageNum := 0
4529//    err := client.ListResourceRecordSetsPages(params,
4530//        func(page *route53.ListResourceRecordSetsOutput, lastPage bool) bool {
4531//            pageNum++
4532//            fmt.Println(page)
4533//            return pageNum <= 3
4534//        })
4535//
4536func (c *Route53) ListResourceRecordSetsPages(input *ListResourceRecordSetsInput, fn func(*ListResourceRecordSetsOutput, bool) bool) error {
4537	return c.ListResourceRecordSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4538}
4539
4540// ListResourceRecordSetsPagesWithContext same as ListResourceRecordSetsPages except
4541// it takes a Context and allows setting request options on the pages.
4542//
4543// The context must be non-nil and will be used for request cancellation. If
4544// the context is nil a panic will occur. In the future the SDK may create
4545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4546// for more information on using Contexts.
4547func (c *Route53) ListResourceRecordSetsPagesWithContext(ctx aws.Context, input *ListResourceRecordSetsInput, fn func(*ListResourceRecordSetsOutput, bool) bool, opts ...request.Option) error {
4548	p := request.Pagination{
4549		NewRequest: func() (*request.Request, error) {
4550			var inCpy *ListResourceRecordSetsInput
4551			if input != nil {
4552				tmp := *input
4553				inCpy = &tmp
4554			}
4555			req, _ := c.ListResourceRecordSetsRequest(inCpy)
4556			req.SetContext(ctx)
4557			req.ApplyOptions(opts...)
4558			return req, nil
4559		},
4560	}
4561
4562	for p.Next() {
4563		if !fn(p.Page().(*ListResourceRecordSetsOutput), !p.HasNextPage()) {
4564			break
4565		}
4566	}
4567
4568	return p.Err()
4569}
4570
4571const opListReusableDelegationSets = "ListReusableDelegationSets"
4572
4573// ListReusableDelegationSetsRequest generates a "aws/request.Request" representing the
4574// client's request for the ListReusableDelegationSets operation. The "output" return
4575// value will be populated with the request's response once the request completes
4576// successfully.
4577//
4578// Use "Send" method on the returned Request to send the API call to the service.
4579// the "output" return value is not valid until after Send returns without error.
4580//
4581// See ListReusableDelegationSets for more information on using the ListReusableDelegationSets
4582// API call, and error handling.
4583//
4584// This method is useful when you want to inject custom logic or configuration
4585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4586//
4587//
4588//    // Example sending a request using the ListReusableDelegationSetsRequest method.
4589//    req, resp := client.ListReusableDelegationSetsRequest(params)
4590//
4591//    err := req.Send()
4592//    if err == nil { // resp is now filled
4593//        fmt.Println(resp)
4594//    }
4595//
4596// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets
4597func (c *Route53) ListReusableDelegationSetsRequest(input *ListReusableDelegationSetsInput) (req *request.Request, output *ListReusableDelegationSetsOutput) {
4598	op := &request.Operation{
4599		Name:       opListReusableDelegationSets,
4600		HTTPMethod: "GET",
4601		HTTPPath:   "/2013-04-01/delegationset",
4602	}
4603
4604	if input == nil {
4605		input = &ListReusableDelegationSetsInput{}
4606	}
4607
4608	output = &ListReusableDelegationSetsOutput{}
4609	req = c.newRequest(op, input, output)
4610	return
4611}
4612
4613// ListReusableDelegationSets API operation for Amazon Route 53.
4614//
4615// Retrieves a list of the reusable delegation sets that are associated with
4616// the current AWS account.
4617//
4618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4619// with awserr.Error's Code and Message methods to get detailed information about
4620// the error.
4621//
4622// See the AWS API reference guide for Amazon Route 53's
4623// API operation ListReusableDelegationSets for usage and error information.
4624//
4625// Returned Error Codes:
4626//   * ErrCodeInvalidInput "InvalidInput"
4627//   The input is not valid.
4628//
4629// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets
4630func (c *Route53) ListReusableDelegationSets(input *ListReusableDelegationSetsInput) (*ListReusableDelegationSetsOutput, error) {
4631	req, out := c.ListReusableDelegationSetsRequest(input)
4632	return out, req.Send()
4633}
4634
4635// ListReusableDelegationSetsWithContext is the same as ListReusableDelegationSets with the addition of
4636// the ability to pass a context and additional request options.
4637//
4638// See ListReusableDelegationSets for details on how to use this API operation.
4639//
4640// The context must be non-nil and will be used for request cancellation. If
4641// the context is nil a panic will occur. In the future the SDK may create
4642// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4643// for more information on using Contexts.
4644func (c *Route53) ListReusableDelegationSetsWithContext(ctx aws.Context, input *ListReusableDelegationSetsInput, opts ...request.Option) (*ListReusableDelegationSetsOutput, error) {
4645	req, out := c.ListReusableDelegationSetsRequest(input)
4646	req.SetContext(ctx)
4647	req.ApplyOptions(opts...)
4648	return out, req.Send()
4649}
4650
4651const opListTagsForResource = "ListTagsForResource"
4652
4653// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4654// client's request for the ListTagsForResource operation. The "output" return
4655// value will be populated with the request's response once the request completes
4656// successfully.
4657//
4658// Use "Send" method on the returned Request to send the API call to the service.
4659// the "output" return value is not valid until after Send returns without error.
4660//
4661// See ListTagsForResource for more information on using the ListTagsForResource
4662// API call, and error handling.
4663//
4664// This method is useful when you want to inject custom logic or configuration
4665// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4666//
4667//
4668//    // Example sending a request using the ListTagsForResourceRequest method.
4669//    req, resp := client.ListTagsForResourceRequest(params)
4670//
4671//    err := req.Send()
4672//    if err == nil { // resp is now filled
4673//        fmt.Println(resp)
4674//    }
4675//
4676// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource
4677func (c *Route53) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4678	op := &request.Operation{
4679		Name:       opListTagsForResource,
4680		HTTPMethod: "GET",
4681		HTTPPath:   "/2013-04-01/tags/{ResourceType}/{ResourceId}",
4682	}
4683
4684	if input == nil {
4685		input = &ListTagsForResourceInput{}
4686	}
4687
4688	output = &ListTagsForResourceOutput{}
4689	req = c.newRequest(op, input, output)
4690	return
4691}
4692
4693// ListTagsForResource API operation for Amazon Route 53.
4694//
4695// Lists tags for one health check or hosted zone.
4696//
4697// For information about using tags for cost allocation, see Using Cost Allocation
4698// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
4699// in the AWS Billing and Cost Management User Guide.
4700//
4701// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4702// with awserr.Error's Code and Message methods to get detailed information about
4703// the error.
4704//
4705// See the AWS API reference guide for Amazon Route 53's
4706// API operation ListTagsForResource for usage and error information.
4707//
4708// Returned Error Codes:
4709//   * ErrCodeInvalidInput "InvalidInput"
4710//   The input is not valid.
4711//
4712//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
4713//   No health check exists with the specified ID.
4714//
4715//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4716//   No hosted zone exists with the ID that you specified.
4717//
4718//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
4719//   If Amazon Route 53 can't process a request before the next request arrives,
4720//   it will reject subsequent requests for the same hosted zone and return an
4721//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
4722//   the same request, we recommend that you wait, in intervals of increasing
4723//   duration, before you try the request again.
4724//
4725//   * ErrCodeThrottlingException "ThrottlingException"
4726//   The limit on the number of requests per second was exceeded.
4727//
4728// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource
4729func (c *Route53) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4730	req, out := c.ListTagsForResourceRequest(input)
4731	return out, req.Send()
4732}
4733
4734// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4735// the ability to pass a context and additional request options.
4736//
4737// See ListTagsForResource for details on how to use this API operation.
4738//
4739// The context must be non-nil and will be used for request cancellation. If
4740// the context is nil a panic will occur. In the future the SDK may create
4741// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4742// for more information on using Contexts.
4743func (c *Route53) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4744	req, out := c.ListTagsForResourceRequest(input)
4745	req.SetContext(ctx)
4746	req.ApplyOptions(opts...)
4747	return out, req.Send()
4748}
4749
4750const opListTagsForResources = "ListTagsForResources"
4751
4752// ListTagsForResourcesRequest generates a "aws/request.Request" representing the
4753// client's request for the ListTagsForResources operation. The "output" return
4754// value will be populated with the request's response once the request completes
4755// successfully.
4756//
4757// Use "Send" method on the returned Request to send the API call to the service.
4758// the "output" return value is not valid until after Send returns without error.
4759//
4760// See ListTagsForResources for more information on using the ListTagsForResources
4761// API call, and error handling.
4762//
4763// This method is useful when you want to inject custom logic or configuration
4764// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4765//
4766//
4767//    // Example sending a request using the ListTagsForResourcesRequest method.
4768//    req, resp := client.ListTagsForResourcesRequest(params)
4769//
4770//    err := req.Send()
4771//    if err == nil { // resp is now filled
4772//        fmt.Println(resp)
4773//    }
4774//
4775// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources
4776func (c *Route53) ListTagsForResourcesRequest(input *ListTagsForResourcesInput) (req *request.Request, output *ListTagsForResourcesOutput) {
4777	op := &request.Operation{
4778		Name:       opListTagsForResources,
4779		HTTPMethod: "POST",
4780		HTTPPath:   "/2013-04-01/tags/{ResourceType}",
4781	}
4782
4783	if input == nil {
4784		input = &ListTagsForResourcesInput{}
4785	}
4786
4787	output = &ListTagsForResourcesOutput{}
4788	req = c.newRequest(op, input, output)
4789	return
4790}
4791
4792// ListTagsForResources API operation for Amazon Route 53.
4793//
4794// Lists tags for up to 10 health checks or hosted zones.
4795//
4796// For information about using tags for cost allocation, see Using Cost Allocation
4797// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
4798// in the AWS Billing and Cost Management User Guide.
4799//
4800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4801// with awserr.Error's Code and Message methods to get detailed information about
4802// the error.
4803//
4804// See the AWS API reference guide for Amazon Route 53's
4805// API operation ListTagsForResources for usage and error information.
4806//
4807// Returned Error Codes:
4808//   * ErrCodeInvalidInput "InvalidInput"
4809//   The input is not valid.
4810//
4811//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
4812//   No health check exists with the specified ID.
4813//
4814//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4815//   No hosted zone exists with the ID that you specified.
4816//
4817//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
4818//   If Amazon Route 53 can't process a request before the next request arrives,
4819//   it will reject subsequent requests for the same hosted zone and return an
4820//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
4821//   the same request, we recommend that you wait, in intervals of increasing
4822//   duration, before you try the request again.
4823//
4824//   * ErrCodeThrottlingException "ThrottlingException"
4825//   The limit on the number of requests per second was exceeded.
4826//
4827// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources
4828func (c *Route53) ListTagsForResources(input *ListTagsForResourcesInput) (*ListTagsForResourcesOutput, error) {
4829	req, out := c.ListTagsForResourcesRequest(input)
4830	return out, req.Send()
4831}
4832
4833// ListTagsForResourcesWithContext is the same as ListTagsForResources with the addition of
4834// the ability to pass a context and additional request options.
4835//
4836// See ListTagsForResources for details on how to use this API operation.
4837//
4838// The context must be non-nil and will be used for request cancellation. If
4839// the context is nil a panic will occur. In the future the SDK may create
4840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4841// for more information on using Contexts.
4842func (c *Route53) ListTagsForResourcesWithContext(ctx aws.Context, input *ListTagsForResourcesInput, opts ...request.Option) (*ListTagsForResourcesOutput, error) {
4843	req, out := c.ListTagsForResourcesRequest(input)
4844	req.SetContext(ctx)
4845	req.ApplyOptions(opts...)
4846	return out, req.Send()
4847}
4848
4849const opListTrafficPolicies = "ListTrafficPolicies"
4850
4851// ListTrafficPoliciesRequest generates a "aws/request.Request" representing the
4852// client's request for the ListTrafficPolicies operation. The "output" return
4853// value will be populated with the request's response once the request completes
4854// successfully.
4855//
4856// Use "Send" method on the returned Request to send the API call to the service.
4857// the "output" return value is not valid until after Send returns without error.
4858//
4859// See ListTrafficPolicies for more information on using the ListTrafficPolicies
4860// API call, and error handling.
4861//
4862// This method is useful when you want to inject custom logic or configuration
4863// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4864//
4865//
4866//    // Example sending a request using the ListTrafficPoliciesRequest method.
4867//    req, resp := client.ListTrafficPoliciesRequest(params)
4868//
4869//    err := req.Send()
4870//    if err == nil { // resp is now filled
4871//        fmt.Println(resp)
4872//    }
4873//
4874// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies
4875func (c *Route53) ListTrafficPoliciesRequest(input *ListTrafficPoliciesInput) (req *request.Request, output *ListTrafficPoliciesOutput) {
4876	op := &request.Operation{
4877		Name:       opListTrafficPolicies,
4878		HTTPMethod: "GET",
4879		HTTPPath:   "/2013-04-01/trafficpolicies",
4880	}
4881
4882	if input == nil {
4883		input = &ListTrafficPoliciesInput{}
4884	}
4885
4886	output = &ListTrafficPoliciesOutput{}
4887	req = c.newRequest(op, input, output)
4888	return
4889}
4890
4891// ListTrafficPolicies API operation for Amazon Route 53.
4892//
4893// Gets information about the latest version for every traffic policy that is
4894// associated with the current AWS account. Policies are listed in the order
4895// that they were created in.
4896//
4897// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4898// with awserr.Error's Code and Message methods to get detailed information about
4899// the error.
4900//
4901// See the AWS API reference guide for Amazon Route 53's
4902// API operation ListTrafficPolicies for usage and error information.
4903//
4904// Returned Error Codes:
4905//   * ErrCodeInvalidInput "InvalidInput"
4906//   The input is not valid.
4907//
4908// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies
4909func (c *Route53) ListTrafficPolicies(input *ListTrafficPoliciesInput) (*ListTrafficPoliciesOutput, error) {
4910	req, out := c.ListTrafficPoliciesRequest(input)
4911	return out, req.Send()
4912}
4913
4914// ListTrafficPoliciesWithContext is the same as ListTrafficPolicies with the addition of
4915// the ability to pass a context and additional request options.
4916//
4917// See ListTrafficPolicies for details on how to use this API operation.
4918//
4919// The context must be non-nil and will be used for request cancellation. If
4920// the context is nil a panic will occur. In the future the SDK may create
4921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4922// for more information on using Contexts.
4923func (c *Route53) ListTrafficPoliciesWithContext(ctx aws.Context, input *ListTrafficPoliciesInput, opts ...request.Option) (*ListTrafficPoliciesOutput, error) {
4924	req, out := c.ListTrafficPoliciesRequest(input)
4925	req.SetContext(ctx)
4926	req.ApplyOptions(opts...)
4927	return out, req.Send()
4928}
4929
4930const opListTrafficPolicyInstances = "ListTrafficPolicyInstances"
4931
4932// ListTrafficPolicyInstancesRequest generates a "aws/request.Request" representing the
4933// client's request for the ListTrafficPolicyInstances operation. The "output" return
4934// value will be populated with the request's response once the request completes
4935// successfully.
4936//
4937// Use "Send" method on the returned Request to send the API call to the service.
4938// the "output" return value is not valid until after Send returns without error.
4939//
4940// See ListTrafficPolicyInstances for more information on using the ListTrafficPolicyInstances
4941// API call, and error handling.
4942//
4943// This method is useful when you want to inject custom logic or configuration
4944// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4945//
4946//
4947//    // Example sending a request using the ListTrafficPolicyInstancesRequest method.
4948//    req, resp := client.ListTrafficPolicyInstancesRequest(params)
4949//
4950//    err := req.Send()
4951//    if err == nil { // resp is now filled
4952//        fmt.Println(resp)
4953//    }
4954//
4955// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances
4956func (c *Route53) ListTrafficPolicyInstancesRequest(input *ListTrafficPolicyInstancesInput) (req *request.Request, output *ListTrafficPolicyInstancesOutput) {
4957	op := &request.Operation{
4958		Name:       opListTrafficPolicyInstances,
4959		HTTPMethod: "GET",
4960		HTTPPath:   "/2013-04-01/trafficpolicyinstances",
4961	}
4962
4963	if input == nil {
4964		input = &ListTrafficPolicyInstancesInput{}
4965	}
4966
4967	output = &ListTrafficPolicyInstancesOutput{}
4968	req = c.newRequest(op, input, output)
4969	return
4970}
4971
4972// ListTrafficPolicyInstances API operation for Amazon Route 53.
4973//
4974// Gets information about the traffic policy instances that you created by using
4975// the current AWS account.
4976//
4977// After you submit an UpdateTrafficPolicyInstance request, there's a brief
4978// delay while Amazon Route 53 creates the resource record sets that are specified
4979// in the traffic policy definition. For more information, see the State response
4980// element.
4981//
4982// Route 53 returns a maximum of 100 items in each response. If you have a lot
4983// of traffic policy instances, you can use the MaxItems parameter to list them
4984// in groups of up to 100.
4985//
4986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4987// with awserr.Error's Code and Message methods to get detailed information about
4988// the error.
4989//
4990// See the AWS API reference guide for Amazon Route 53's
4991// API operation ListTrafficPolicyInstances for usage and error information.
4992//
4993// Returned Error Codes:
4994//   * ErrCodeInvalidInput "InvalidInput"
4995//   The input is not valid.
4996//
4997//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
4998//   No traffic policy instance exists with the specified ID.
4999//
5000// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances
5001func (c *Route53) ListTrafficPolicyInstances(input *ListTrafficPolicyInstancesInput) (*ListTrafficPolicyInstancesOutput, error) {
5002	req, out := c.ListTrafficPolicyInstancesRequest(input)
5003	return out, req.Send()
5004}
5005
5006// ListTrafficPolicyInstancesWithContext is the same as ListTrafficPolicyInstances with the addition of
5007// the ability to pass a context and additional request options.
5008//
5009// See ListTrafficPolicyInstances for details on how to use this API operation.
5010//
5011// The context must be non-nil and will be used for request cancellation. If
5012// the context is nil a panic will occur. In the future the SDK may create
5013// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5014// for more information on using Contexts.
5015func (c *Route53) ListTrafficPolicyInstancesWithContext(ctx aws.Context, input *ListTrafficPolicyInstancesInput, opts ...request.Option) (*ListTrafficPolicyInstancesOutput, error) {
5016	req, out := c.ListTrafficPolicyInstancesRequest(input)
5017	req.SetContext(ctx)
5018	req.ApplyOptions(opts...)
5019	return out, req.Send()
5020}
5021
5022const opListTrafficPolicyInstancesByHostedZone = "ListTrafficPolicyInstancesByHostedZone"
5023
5024// ListTrafficPolicyInstancesByHostedZoneRequest generates a "aws/request.Request" representing the
5025// client's request for the ListTrafficPolicyInstancesByHostedZone operation. The "output" return
5026// value will be populated with the request's response once the request completes
5027// successfully.
5028//
5029// Use "Send" method on the returned Request to send the API call to the service.
5030// the "output" return value is not valid until after Send returns without error.
5031//
5032// See ListTrafficPolicyInstancesByHostedZone for more information on using the ListTrafficPolicyInstancesByHostedZone
5033// API call, and error handling.
5034//
5035// This method is useful when you want to inject custom logic or configuration
5036// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5037//
5038//
5039//    // Example sending a request using the ListTrafficPolicyInstancesByHostedZoneRequest method.
5040//    req, resp := client.ListTrafficPolicyInstancesByHostedZoneRequest(params)
5041//
5042//    err := req.Send()
5043//    if err == nil { // resp is now filled
5044//        fmt.Println(resp)
5045//    }
5046//
5047// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone
5048func (c *Route53) ListTrafficPolicyInstancesByHostedZoneRequest(input *ListTrafficPolicyInstancesByHostedZoneInput) (req *request.Request, output *ListTrafficPolicyInstancesByHostedZoneOutput) {
5049	op := &request.Operation{
5050		Name:       opListTrafficPolicyInstancesByHostedZone,
5051		HTTPMethod: "GET",
5052		HTTPPath:   "/2013-04-01/trafficpolicyinstances/hostedzone",
5053	}
5054
5055	if input == nil {
5056		input = &ListTrafficPolicyInstancesByHostedZoneInput{}
5057	}
5058
5059	output = &ListTrafficPolicyInstancesByHostedZoneOutput{}
5060	req = c.newRequest(op, input, output)
5061	return
5062}
5063
5064// ListTrafficPolicyInstancesByHostedZone API operation for Amazon Route 53.
5065//
5066// Gets information about the traffic policy instances that you created in a
5067// specified hosted zone.
5068//
5069// After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance
5070// request, there's a brief delay while Amazon Route 53 creates the resource
5071// record sets that are specified in the traffic policy definition. For more
5072// information, see the State response element.
5073//
5074// Route 53 returns a maximum of 100 items in each response. If you have a lot
5075// of traffic policy instances, you can use the MaxItems parameter to list them
5076// in groups of up to 100.
5077//
5078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5079// with awserr.Error's Code and Message methods to get detailed information about
5080// the error.
5081//
5082// See the AWS API reference guide for Amazon Route 53's
5083// API operation ListTrafficPolicyInstancesByHostedZone for usage and error information.
5084//
5085// Returned Error Codes:
5086//   * ErrCodeInvalidInput "InvalidInput"
5087//   The input is not valid.
5088//
5089//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
5090//   No traffic policy instance exists with the specified ID.
5091//
5092//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5093//   No hosted zone exists with the ID that you specified.
5094//
5095// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone
5096func (c *Route53) ListTrafficPolicyInstancesByHostedZone(input *ListTrafficPolicyInstancesByHostedZoneInput) (*ListTrafficPolicyInstancesByHostedZoneOutput, error) {
5097	req, out := c.ListTrafficPolicyInstancesByHostedZoneRequest(input)
5098	return out, req.Send()
5099}
5100
5101// ListTrafficPolicyInstancesByHostedZoneWithContext is the same as ListTrafficPolicyInstancesByHostedZone with the addition of
5102// the ability to pass a context and additional request options.
5103//
5104// See ListTrafficPolicyInstancesByHostedZone for details on how to use this API operation.
5105//
5106// The context must be non-nil and will be used for request cancellation. If
5107// the context is nil a panic will occur. In the future the SDK may create
5108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5109// for more information on using Contexts.
5110func (c *Route53) ListTrafficPolicyInstancesByHostedZoneWithContext(ctx aws.Context, input *ListTrafficPolicyInstancesByHostedZoneInput, opts ...request.Option) (*ListTrafficPolicyInstancesByHostedZoneOutput, error) {
5111	req, out := c.ListTrafficPolicyInstancesByHostedZoneRequest(input)
5112	req.SetContext(ctx)
5113	req.ApplyOptions(opts...)
5114	return out, req.Send()
5115}
5116
5117const opListTrafficPolicyInstancesByPolicy = "ListTrafficPolicyInstancesByPolicy"
5118
5119// ListTrafficPolicyInstancesByPolicyRequest generates a "aws/request.Request" representing the
5120// client's request for the ListTrafficPolicyInstancesByPolicy operation. The "output" return
5121// value will be populated with the request's response once the request completes
5122// successfully.
5123//
5124// Use "Send" method on the returned Request to send the API call to the service.
5125// the "output" return value is not valid until after Send returns without error.
5126//
5127// See ListTrafficPolicyInstancesByPolicy for more information on using the ListTrafficPolicyInstancesByPolicy
5128// API call, and error handling.
5129//
5130// This method is useful when you want to inject custom logic or configuration
5131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5132//
5133//
5134//    // Example sending a request using the ListTrafficPolicyInstancesByPolicyRequest method.
5135//    req, resp := client.ListTrafficPolicyInstancesByPolicyRequest(params)
5136//
5137//    err := req.Send()
5138//    if err == nil { // resp is now filled
5139//        fmt.Println(resp)
5140//    }
5141//
5142// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy
5143func (c *Route53) ListTrafficPolicyInstancesByPolicyRequest(input *ListTrafficPolicyInstancesByPolicyInput) (req *request.Request, output *ListTrafficPolicyInstancesByPolicyOutput) {
5144	op := &request.Operation{
5145		Name:       opListTrafficPolicyInstancesByPolicy,
5146		HTTPMethod: "GET",
5147		HTTPPath:   "/2013-04-01/trafficpolicyinstances/trafficpolicy",
5148	}
5149
5150	if input == nil {
5151		input = &ListTrafficPolicyInstancesByPolicyInput{}
5152	}
5153
5154	output = &ListTrafficPolicyInstancesByPolicyOutput{}
5155	req = c.newRequest(op, input, output)
5156	return
5157}
5158
5159// ListTrafficPolicyInstancesByPolicy API operation for Amazon Route 53.
5160//
5161// Gets information about the traffic policy instances that you created by using
5162// a specify traffic policy version.
5163//
5164// After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance
5165// request, there's a brief delay while Amazon Route 53 creates the resource
5166// record sets that are specified in the traffic policy definition. For more
5167// information, see the State response element.
5168//
5169// Route 53 returns a maximum of 100 items in each response. If you have a lot
5170// of traffic policy instances, you can use the MaxItems parameter to list them
5171// in groups of up to 100.
5172//
5173// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5174// with awserr.Error's Code and Message methods to get detailed information about
5175// the error.
5176//
5177// See the AWS API reference guide for Amazon Route 53's
5178// API operation ListTrafficPolicyInstancesByPolicy for usage and error information.
5179//
5180// Returned Error Codes:
5181//   * ErrCodeInvalidInput "InvalidInput"
5182//   The input is not valid.
5183//
5184//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
5185//   No traffic policy instance exists with the specified ID.
5186//
5187//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5188//   No traffic policy exists with the specified ID.
5189//
5190// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy
5191func (c *Route53) ListTrafficPolicyInstancesByPolicy(input *ListTrafficPolicyInstancesByPolicyInput) (*ListTrafficPolicyInstancesByPolicyOutput, error) {
5192	req, out := c.ListTrafficPolicyInstancesByPolicyRequest(input)
5193	return out, req.Send()
5194}
5195
5196// ListTrafficPolicyInstancesByPolicyWithContext is the same as ListTrafficPolicyInstancesByPolicy with the addition of
5197// the ability to pass a context and additional request options.
5198//
5199// See ListTrafficPolicyInstancesByPolicy for details on how to use this API operation.
5200//
5201// The context must be non-nil and will be used for request cancellation. If
5202// the context is nil a panic will occur. In the future the SDK may create
5203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5204// for more information on using Contexts.
5205func (c *Route53) ListTrafficPolicyInstancesByPolicyWithContext(ctx aws.Context, input *ListTrafficPolicyInstancesByPolicyInput, opts ...request.Option) (*ListTrafficPolicyInstancesByPolicyOutput, error) {
5206	req, out := c.ListTrafficPolicyInstancesByPolicyRequest(input)
5207	req.SetContext(ctx)
5208	req.ApplyOptions(opts...)
5209	return out, req.Send()
5210}
5211
5212const opListTrafficPolicyVersions = "ListTrafficPolicyVersions"
5213
5214// ListTrafficPolicyVersionsRequest generates a "aws/request.Request" representing the
5215// client's request for the ListTrafficPolicyVersions operation. The "output" return
5216// value will be populated with the request's response once the request completes
5217// successfully.
5218//
5219// Use "Send" method on the returned Request to send the API call to the service.
5220// the "output" return value is not valid until after Send returns without error.
5221//
5222// See ListTrafficPolicyVersions for more information on using the ListTrafficPolicyVersions
5223// API call, and error handling.
5224//
5225// This method is useful when you want to inject custom logic or configuration
5226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5227//
5228//
5229//    // Example sending a request using the ListTrafficPolicyVersionsRequest method.
5230//    req, resp := client.ListTrafficPolicyVersionsRequest(params)
5231//
5232//    err := req.Send()
5233//    if err == nil { // resp is now filled
5234//        fmt.Println(resp)
5235//    }
5236//
5237// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions
5238func (c *Route53) ListTrafficPolicyVersionsRequest(input *ListTrafficPolicyVersionsInput) (req *request.Request, output *ListTrafficPolicyVersionsOutput) {
5239	op := &request.Operation{
5240		Name:       opListTrafficPolicyVersions,
5241		HTTPMethod: "GET",
5242		HTTPPath:   "/2013-04-01/trafficpolicies/{Id}/versions",
5243	}
5244
5245	if input == nil {
5246		input = &ListTrafficPolicyVersionsInput{}
5247	}
5248
5249	output = &ListTrafficPolicyVersionsOutput{}
5250	req = c.newRequest(op, input, output)
5251	return
5252}
5253
5254// ListTrafficPolicyVersions API operation for Amazon Route 53.
5255//
5256// Gets information about all of the versions for a specified traffic policy.
5257//
5258// Traffic policy versions are listed in numerical order by VersionNumber.
5259//
5260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5261// with awserr.Error's Code and Message methods to get detailed information about
5262// the error.
5263//
5264// See the AWS API reference guide for Amazon Route 53's
5265// API operation ListTrafficPolicyVersions for usage and error information.
5266//
5267// Returned Error Codes:
5268//   * ErrCodeInvalidInput "InvalidInput"
5269//   The input is not valid.
5270//
5271//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5272//   No traffic policy exists with the specified ID.
5273//
5274// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions
5275func (c *Route53) ListTrafficPolicyVersions(input *ListTrafficPolicyVersionsInput) (*ListTrafficPolicyVersionsOutput, error) {
5276	req, out := c.ListTrafficPolicyVersionsRequest(input)
5277	return out, req.Send()
5278}
5279
5280// ListTrafficPolicyVersionsWithContext is the same as ListTrafficPolicyVersions with the addition of
5281// the ability to pass a context and additional request options.
5282//
5283// See ListTrafficPolicyVersions for details on how to use this API operation.
5284//
5285// The context must be non-nil and will be used for request cancellation. If
5286// the context is nil a panic will occur. In the future the SDK may create
5287// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5288// for more information on using Contexts.
5289func (c *Route53) ListTrafficPolicyVersionsWithContext(ctx aws.Context, input *ListTrafficPolicyVersionsInput, opts ...request.Option) (*ListTrafficPolicyVersionsOutput, error) {
5290	req, out := c.ListTrafficPolicyVersionsRequest(input)
5291	req.SetContext(ctx)
5292	req.ApplyOptions(opts...)
5293	return out, req.Send()
5294}
5295
5296const opListVPCAssociationAuthorizations = "ListVPCAssociationAuthorizations"
5297
5298// ListVPCAssociationAuthorizationsRequest generates a "aws/request.Request" representing the
5299// client's request for the ListVPCAssociationAuthorizations operation. The "output" return
5300// value will be populated with the request's response once the request completes
5301// successfully.
5302//
5303// Use "Send" method on the returned Request to send the API call to the service.
5304// the "output" return value is not valid until after Send returns without error.
5305//
5306// See ListVPCAssociationAuthorizations for more information on using the ListVPCAssociationAuthorizations
5307// API call, and error handling.
5308//
5309// This method is useful when you want to inject custom logic or configuration
5310// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5311//
5312//
5313//    // Example sending a request using the ListVPCAssociationAuthorizationsRequest method.
5314//    req, resp := client.ListVPCAssociationAuthorizationsRequest(params)
5315//
5316//    err := req.Send()
5317//    if err == nil { // resp is now filled
5318//        fmt.Println(resp)
5319//    }
5320//
5321// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations
5322func (c *Route53) ListVPCAssociationAuthorizationsRequest(input *ListVPCAssociationAuthorizationsInput) (req *request.Request, output *ListVPCAssociationAuthorizationsOutput) {
5323	op := &request.Operation{
5324		Name:       opListVPCAssociationAuthorizations,
5325		HTTPMethod: "GET",
5326		HTTPPath:   "/2013-04-01/hostedzone/{Id}/authorizevpcassociation",
5327	}
5328
5329	if input == nil {
5330		input = &ListVPCAssociationAuthorizationsInput{}
5331	}
5332
5333	output = &ListVPCAssociationAuthorizationsOutput{}
5334	req = c.newRequest(op, input, output)
5335	return
5336}
5337
5338// ListVPCAssociationAuthorizations API operation for Amazon Route 53.
5339//
5340// Gets a list of the VPCs that were created by other accounts and that can
5341// be associated with a specified hosted zone because you've submitted one or
5342// more CreateVPCAssociationAuthorization requests.
5343//
5344// The response includes a VPCs element with a VPC child element for each VPC
5345// that can be associated with the hosted zone.
5346//
5347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5348// with awserr.Error's Code and Message methods to get detailed information about
5349// the error.
5350//
5351// See the AWS API reference guide for Amazon Route 53's
5352// API operation ListVPCAssociationAuthorizations for usage and error information.
5353//
5354// Returned Error Codes:
5355//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5356//   No hosted zone exists with the ID that you specified.
5357//
5358//   * ErrCodeInvalidInput "InvalidInput"
5359//   The input is not valid.
5360//
5361//   * ErrCodeInvalidPaginationToken "InvalidPaginationToken"
5362//   The value that you specified to get the second or subsequent page of results
5363//   is invalid.
5364//
5365// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations
5366func (c *Route53) ListVPCAssociationAuthorizations(input *ListVPCAssociationAuthorizationsInput) (*ListVPCAssociationAuthorizationsOutput, error) {
5367	req, out := c.ListVPCAssociationAuthorizationsRequest(input)
5368	return out, req.Send()
5369}
5370
5371// ListVPCAssociationAuthorizationsWithContext is the same as ListVPCAssociationAuthorizations with the addition of
5372// the ability to pass a context and additional request options.
5373//
5374// See ListVPCAssociationAuthorizations for details on how to use this API operation.
5375//
5376// The context must be non-nil and will be used for request cancellation. If
5377// the context is nil a panic will occur. In the future the SDK may create
5378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5379// for more information on using Contexts.
5380func (c *Route53) ListVPCAssociationAuthorizationsWithContext(ctx aws.Context, input *ListVPCAssociationAuthorizationsInput, opts ...request.Option) (*ListVPCAssociationAuthorizationsOutput, error) {
5381	req, out := c.ListVPCAssociationAuthorizationsRequest(input)
5382	req.SetContext(ctx)
5383	req.ApplyOptions(opts...)
5384	return out, req.Send()
5385}
5386
5387const opTestDNSAnswer = "TestDNSAnswer"
5388
5389// TestDNSAnswerRequest generates a "aws/request.Request" representing the
5390// client's request for the TestDNSAnswer operation. The "output" return
5391// value will be populated with the request's response once the request completes
5392// successfully.
5393//
5394// Use "Send" method on the returned Request to send the API call to the service.
5395// the "output" return value is not valid until after Send returns without error.
5396//
5397// See TestDNSAnswer for more information on using the TestDNSAnswer
5398// API call, and error handling.
5399//
5400// This method is useful when you want to inject custom logic or configuration
5401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5402//
5403//
5404//    // Example sending a request using the TestDNSAnswerRequest method.
5405//    req, resp := client.TestDNSAnswerRequest(params)
5406//
5407//    err := req.Send()
5408//    if err == nil { // resp is now filled
5409//        fmt.Println(resp)
5410//    }
5411//
5412// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer
5413func (c *Route53) TestDNSAnswerRequest(input *TestDNSAnswerInput) (req *request.Request, output *TestDNSAnswerOutput) {
5414	op := &request.Operation{
5415		Name:       opTestDNSAnswer,
5416		HTTPMethod: "GET",
5417		HTTPPath:   "/2013-04-01/testdnsanswer",
5418	}
5419
5420	if input == nil {
5421		input = &TestDNSAnswerInput{}
5422	}
5423
5424	output = &TestDNSAnswerOutput{}
5425	req = c.newRequest(op, input, output)
5426	return
5427}
5428
5429// TestDNSAnswer API operation for Amazon Route 53.
5430//
5431// Gets the value that Amazon Route 53 returns in response to a DNS request
5432// for a specified record name and type. You can optionally specify the IP address
5433// of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask.
5434//
5435// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5436// with awserr.Error's Code and Message methods to get detailed information about
5437// the error.
5438//
5439// See the AWS API reference guide for Amazon Route 53's
5440// API operation TestDNSAnswer for usage and error information.
5441//
5442// Returned Error Codes:
5443//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5444//   No hosted zone exists with the ID that you specified.
5445//
5446//   * ErrCodeInvalidInput "InvalidInput"
5447//   The input is not valid.
5448//
5449// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer
5450func (c *Route53) TestDNSAnswer(input *TestDNSAnswerInput) (*TestDNSAnswerOutput, error) {
5451	req, out := c.TestDNSAnswerRequest(input)
5452	return out, req.Send()
5453}
5454
5455// TestDNSAnswerWithContext is the same as TestDNSAnswer with the addition of
5456// the ability to pass a context and additional request options.
5457//
5458// See TestDNSAnswer for details on how to use this API operation.
5459//
5460// The context must be non-nil and will be used for request cancellation. If
5461// the context is nil a panic will occur. In the future the SDK may create
5462// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5463// for more information on using Contexts.
5464func (c *Route53) TestDNSAnswerWithContext(ctx aws.Context, input *TestDNSAnswerInput, opts ...request.Option) (*TestDNSAnswerOutput, error) {
5465	req, out := c.TestDNSAnswerRequest(input)
5466	req.SetContext(ctx)
5467	req.ApplyOptions(opts...)
5468	return out, req.Send()
5469}
5470
5471const opUpdateHealthCheck = "UpdateHealthCheck"
5472
5473// UpdateHealthCheckRequest generates a "aws/request.Request" representing the
5474// client's request for the UpdateHealthCheck operation. The "output" return
5475// value will be populated with the request's response once the request completes
5476// successfully.
5477//
5478// Use "Send" method on the returned Request to send the API call to the service.
5479// the "output" return value is not valid until after Send returns without error.
5480//
5481// See UpdateHealthCheck for more information on using the UpdateHealthCheck
5482// API call, and error handling.
5483//
5484// This method is useful when you want to inject custom logic or configuration
5485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5486//
5487//
5488//    // Example sending a request using the UpdateHealthCheckRequest method.
5489//    req, resp := client.UpdateHealthCheckRequest(params)
5490//
5491//    err := req.Send()
5492//    if err == nil { // resp is now filled
5493//        fmt.Println(resp)
5494//    }
5495//
5496// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck
5497func (c *Route53) UpdateHealthCheckRequest(input *UpdateHealthCheckInput) (req *request.Request, output *UpdateHealthCheckOutput) {
5498	op := &request.Operation{
5499		Name:       opUpdateHealthCheck,
5500		HTTPMethod: "POST",
5501		HTTPPath:   "/2013-04-01/healthcheck/{HealthCheckId}",
5502	}
5503
5504	if input == nil {
5505		input = &UpdateHealthCheckInput{}
5506	}
5507
5508	output = &UpdateHealthCheckOutput{}
5509	req = c.newRequest(op, input, output)
5510	return
5511}
5512
5513// UpdateHealthCheck API operation for Amazon Route 53.
5514//
5515// Updates an existing health check. Note that some values can't be updated.
5516//
5517// For more information about updating health checks, see Creating, Updating,
5518// and Deleting Health Checks (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html)
5519// in the Amazon Route 53 Developer Guide.
5520//
5521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5522// with awserr.Error's Code and Message methods to get detailed information about
5523// the error.
5524//
5525// See the AWS API reference guide for Amazon Route 53's
5526// API operation UpdateHealthCheck for usage and error information.
5527//
5528// Returned Error Codes:
5529//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
5530//   No health check exists with the specified ID.
5531//
5532//   * ErrCodeInvalidInput "InvalidInput"
5533//   The input is not valid.
5534//
5535//   * ErrCodeHealthCheckVersionMismatch "HealthCheckVersionMismatch"
5536//   The value of HealthCheckVersion in the request doesn't match the value of
5537//   HealthCheckVersion in the health check.
5538//
5539// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck
5540func (c *Route53) UpdateHealthCheck(input *UpdateHealthCheckInput) (*UpdateHealthCheckOutput, error) {
5541	req, out := c.UpdateHealthCheckRequest(input)
5542	return out, req.Send()
5543}
5544
5545// UpdateHealthCheckWithContext is the same as UpdateHealthCheck with the addition of
5546// the ability to pass a context and additional request options.
5547//
5548// See UpdateHealthCheck for details on how to use this API operation.
5549//
5550// The context must be non-nil and will be used for request cancellation. If
5551// the context is nil a panic will occur. In the future the SDK may create
5552// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5553// for more information on using Contexts.
5554func (c *Route53) UpdateHealthCheckWithContext(ctx aws.Context, input *UpdateHealthCheckInput, opts ...request.Option) (*UpdateHealthCheckOutput, error) {
5555	req, out := c.UpdateHealthCheckRequest(input)
5556	req.SetContext(ctx)
5557	req.ApplyOptions(opts...)
5558	return out, req.Send()
5559}
5560
5561const opUpdateHostedZoneComment = "UpdateHostedZoneComment"
5562
5563// UpdateHostedZoneCommentRequest generates a "aws/request.Request" representing the
5564// client's request for the UpdateHostedZoneComment operation. The "output" return
5565// value will be populated with the request's response once the request completes
5566// successfully.
5567//
5568// Use "Send" method on the returned Request to send the API call to the service.
5569// the "output" return value is not valid until after Send returns without error.
5570//
5571// See UpdateHostedZoneComment for more information on using the UpdateHostedZoneComment
5572// API call, and error handling.
5573//
5574// This method is useful when you want to inject custom logic or configuration
5575// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5576//
5577//
5578//    // Example sending a request using the UpdateHostedZoneCommentRequest method.
5579//    req, resp := client.UpdateHostedZoneCommentRequest(params)
5580//
5581//    err := req.Send()
5582//    if err == nil { // resp is now filled
5583//        fmt.Println(resp)
5584//    }
5585//
5586// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment
5587func (c *Route53) UpdateHostedZoneCommentRequest(input *UpdateHostedZoneCommentInput) (req *request.Request, output *UpdateHostedZoneCommentOutput) {
5588	op := &request.Operation{
5589		Name:       opUpdateHostedZoneComment,
5590		HTTPMethod: "POST",
5591		HTTPPath:   "/2013-04-01/hostedzone/{Id}",
5592	}
5593
5594	if input == nil {
5595		input = &UpdateHostedZoneCommentInput{}
5596	}
5597
5598	output = &UpdateHostedZoneCommentOutput{}
5599	req = c.newRequest(op, input, output)
5600	return
5601}
5602
5603// UpdateHostedZoneComment API operation for Amazon Route 53.
5604//
5605// Updates the comment for a specified hosted zone.
5606//
5607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5608// with awserr.Error's Code and Message methods to get detailed information about
5609// the error.
5610//
5611// See the AWS API reference guide for Amazon Route 53's
5612// API operation UpdateHostedZoneComment for usage and error information.
5613//
5614// Returned Error Codes:
5615//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5616//   No hosted zone exists with the ID that you specified.
5617//
5618//   * ErrCodeInvalidInput "InvalidInput"
5619//   The input is not valid.
5620//
5621// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment
5622func (c *Route53) UpdateHostedZoneComment(input *UpdateHostedZoneCommentInput) (*UpdateHostedZoneCommentOutput, error) {
5623	req, out := c.UpdateHostedZoneCommentRequest(input)
5624	return out, req.Send()
5625}
5626
5627// UpdateHostedZoneCommentWithContext is the same as UpdateHostedZoneComment with the addition of
5628// the ability to pass a context and additional request options.
5629//
5630// See UpdateHostedZoneComment for details on how to use this API operation.
5631//
5632// The context must be non-nil and will be used for request cancellation. If
5633// the context is nil a panic will occur. In the future the SDK may create
5634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5635// for more information on using Contexts.
5636func (c *Route53) UpdateHostedZoneCommentWithContext(ctx aws.Context, input *UpdateHostedZoneCommentInput, opts ...request.Option) (*UpdateHostedZoneCommentOutput, error) {
5637	req, out := c.UpdateHostedZoneCommentRequest(input)
5638	req.SetContext(ctx)
5639	req.ApplyOptions(opts...)
5640	return out, req.Send()
5641}
5642
5643const opUpdateTrafficPolicyComment = "UpdateTrafficPolicyComment"
5644
5645// UpdateTrafficPolicyCommentRequest generates a "aws/request.Request" representing the
5646// client's request for the UpdateTrafficPolicyComment operation. The "output" return
5647// value will be populated with the request's response once the request completes
5648// successfully.
5649//
5650// Use "Send" method on the returned Request to send the API call to the service.
5651// the "output" return value is not valid until after Send returns without error.
5652//
5653// See UpdateTrafficPolicyComment for more information on using the UpdateTrafficPolicyComment
5654// API call, and error handling.
5655//
5656// This method is useful when you want to inject custom logic or configuration
5657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5658//
5659//
5660//    // Example sending a request using the UpdateTrafficPolicyCommentRequest method.
5661//    req, resp := client.UpdateTrafficPolicyCommentRequest(params)
5662//
5663//    err := req.Send()
5664//    if err == nil { // resp is now filled
5665//        fmt.Println(resp)
5666//    }
5667//
5668// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment
5669func (c *Route53) UpdateTrafficPolicyCommentRequest(input *UpdateTrafficPolicyCommentInput) (req *request.Request, output *UpdateTrafficPolicyCommentOutput) {
5670	op := &request.Operation{
5671		Name:       opUpdateTrafficPolicyComment,
5672		HTTPMethod: "POST",
5673		HTTPPath:   "/2013-04-01/trafficpolicy/{Id}/{Version}",
5674	}
5675
5676	if input == nil {
5677		input = &UpdateTrafficPolicyCommentInput{}
5678	}
5679
5680	output = &UpdateTrafficPolicyCommentOutput{}
5681	req = c.newRequest(op, input, output)
5682	return
5683}
5684
5685// UpdateTrafficPolicyComment API operation for Amazon Route 53.
5686//
5687// Updates the comment for a specified traffic policy version.
5688//
5689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5690// with awserr.Error's Code and Message methods to get detailed information about
5691// the error.
5692//
5693// See the AWS API reference guide for Amazon Route 53's
5694// API operation UpdateTrafficPolicyComment for usage and error information.
5695//
5696// Returned Error Codes:
5697//   * ErrCodeInvalidInput "InvalidInput"
5698//   The input is not valid.
5699//
5700//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5701//   No traffic policy exists with the specified ID.
5702//
5703//   * ErrCodeConcurrentModification "ConcurrentModification"
5704//   Another user submitted a request to create, update, or delete the object
5705//   at the same time that you did. Retry the request.
5706//
5707// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment
5708func (c *Route53) UpdateTrafficPolicyComment(input *UpdateTrafficPolicyCommentInput) (*UpdateTrafficPolicyCommentOutput, error) {
5709	req, out := c.UpdateTrafficPolicyCommentRequest(input)
5710	return out, req.Send()
5711}
5712
5713// UpdateTrafficPolicyCommentWithContext is the same as UpdateTrafficPolicyComment with the addition of
5714// the ability to pass a context and additional request options.
5715//
5716// See UpdateTrafficPolicyComment for details on how to use this API operation.
5717//
5718// The context must be non-nil and will be used for request cancellation. If
5719// the context is nil a panic will occur. In the future the SDK may create
5720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5721// for more information on using Contexts.
5722func (c *Route53) UpdateTrafficPolicyCommentWithContext(ctx aws.Context, input *UpdateTrafficPolicyCommentInput, opts ...request.Option) (*UpdateTrafficPolicyCommentOutput, error) {
5723	req, out := c.UpdateTrafficPolicyCommentRequest(input)
5724	req.SetContext(ctx)
5725	req.ApplyOptions(opts...)
5726	return out, req.Send()
5727}
5728
5729const opUpdateTrafficPolicyInstance = "UpdateTrafficPolicyInstance"
5730
5731// UpdateTrafficPolicyInstanceRequest generates a "aws/request.Request" representing the
5732// client's request for the UpdateTrafficPolicyInstance operation. The "output" return
5733// value will be populated with the request's response once the request completes
5734// successfully.
5735//
5736// Use "Send" method on the returned Request to send the API call to the service.
5737// the "output" return value is not valid until after Send returns without error.
5738//
5739// See UpdateTrafficPolicyInstance for more information on using the UpdateTrafficPolicyInstance
5740// API call, and error handling.
5741//
5742// This method is useful when you want to inject custom logic or configuration
5743// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5744//
5745//
5746//    // Example sending a request using the UpdateTrafficPolicyInstanceRequest method.
5747//    req, resp := client.UpdateTrafficPolicyInstanceRequest(params)
5748//
5749//    err := req.Send()
5750//    if err == nil { // resp is now filled
5751//        fmt.Println(resp)
5752//    }
5753//
5754// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance
5755func (c *Route53) UpdateTrafficPolicyInstanceRequest(input *UpdateTrafficPolicyInstanceInput) (req *request.Request, output *UpdateTrafficPolicyInstanceOutput) {
5756	op := &request.Operation{
5757		Name:       opUpdateTrafficPolicyInstance,
5758		HTTPMethod: "POST",
5759		HTTPPath:   "/2013-04-01/trafficpolicyinstance/{Id}",
5760	}
5761
5762	if input == nil {
5763		input = &UpdateTrafficPolicyInstanceInput{}
5764	}
5765
5766	output = &UpdateTrafficPolicyInstanceOutput{}
5767	req = c.newRequest(op, input, output)
5768	return
5769}
5770
5771// UpdateTrafficPolicyInstance API operation for Amazon Route 53.
5772//
5773// Updates the resource record sets in a specified hosted zone that were created
5774// based on the settings in a specified traffic policy version.
5775//
5776// When you update a traffic policy instance, Amazon Route 53 continues to respond
5777// to DNS queries for the root resource record set name (such as example.com)
5778// while it replaces one group of resource record sets with another. Route 53
5779// performs the following operations:
5780//
5781// Route 53 creates a new group of resource record sets based on the specified
5782// traffic policy. This is true regardless of how significant the differences
5783// are between the existing resource record sets and the new resource record
5784// sets.
5785//
5786// When all of the new resource record sets have been created, Route 53 starts
5787// to respond to DNS queries for the root resource record set name (such as
5788// example.com) by using the new resource record sets.
5789//
5790// Route 53 deletes the old group of resource record sets that are associated
5791// with the root resource record set name.
5792//
5793// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5794// with awserr.Error's Code and Message methods to get detailed information about
5795// the error.
5796//
5797// See the AWS API reference guide for Amazon Route 53's
5798// API operation UpdateTrafficPolicyInstance for usage and error information.
5799//
5800// Returned Error Codes:
5801//   * ErrCodeInvalidInput "InvalidInput"
5802//   The input is not valid.
5803//
5804//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5805//   No traffic policy exists with the specified ID.
5806//
5807//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
5808//   No traffic policy instance exists with the specified ID.
5809//
5810//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
5811//   If Amazon Route 53 can't process a request before the next request arrives,
5812//   it will reject subsequent requests for the same hosted zone and return an
5813//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
5814//   the same request, we recommend that you wait, in intervals of increasing
5815//   duration, before you try the request again.
5816//
5817//   * ErrCodeConflictingTypes "ConflictingTypes"
5818//   You tried to update a traffic policy instance by using a traffic policy version
5819//   that has a different DNS type than the current type for the instance. You
5820//   specified the type in the JSON document in the CreateTrafficPolicy or CreateTrafficPolicyVersionrequest.
5821//
5822// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance
5823func (c *Route53) UpdateTrafficPolicyInstance(input *UpdateTrafficPolicyInstanceInput) (*UpdateTrafficPolicyInstanceOutput, error) {
5824	req, out := c.UpdateTrafficPolicyInstanceRequest(input)
5825	return out, req.Send()
5826}
5827
5828// UpdateTrafficPolicyInstanceWithContext is the same as UpdateTrafficPolicyInstance with the addition of
5829// the ability to pass a context and additional request options.
5830//
5831// See UpdateTrafficPolicyInstance for details on how to use this API operation.
5832//
5833// The context must be non-nil and will be used for request cancellation. If
5834// the context is nil a panic will occur. In the future the SDK may create
5835// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5836// for more information on using Contexts.
5837func (c *Route53) UpdateTrafficPolicyInstanceWithContext(ctx aws.Context, input *UpdateTrafficPolicyInstanceInput, opts ...request.Option) (*UpdateTrafficPolicyInstanceOutput, error) {
5838	req, out := c.UpdateTrafficPolicyInstanceRequest(input)
5839	req.SetContext(ctx)
5840	req.ApplyOptions(opts...)
5841	return out, req.Send()
5842}
5843
5844// A complex type that contains the type of limit that you specified in the
5845// request and the current value for that limit.
5846type AccountLimit struct {
5847	_ struct{} `type:"structure"`
5848
5849	// The limit that you requested. Valid values include the following:
5850	//
5851	//    * MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that
5852	//    you can create using the current account.
5853	//
5854	//    * MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you
5855	//    can create using the current account.
5856	//
5857	//    * MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable
5858	//    delegation sets that you can create using the current account.
5859	//
5860	//    * MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies
5861	//    that you can create using the current account.
5862	//
5863	//    * MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic
5864	//    policy instances that you can create using the current account. (Traffic
5865	//    policy instances are referred to as traffic flow policy records in the
5866	//    Amazon Route 53 console.)
5867	//
5868	// Type is a required field
5869	Type *string `type:"string" required:"true" enum:"AccountLimitType"`
5870
5871	// The current value for the limit that is specified by Type (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AccountLimit.html#Route53-Type-AccountLimit-Type).
5872	//
5873	// Value is a required field
5874	Value *int64 `min:"1" type:"long" required:"true"`
5875}
5876
5877// String returns the string representation
5878func (s AccountLimit) String() string {
5879	return awsutil.Prettify(s)
5880}
5881
5882// GoString returns the string representation
5883func (s AccountLimit) GoString() string {
5884	return s.String()
5885}
5886
5887// SetType sets the Type field's value.
5888func (s *AccountLimit) SetType(v string) *AccountLimit {
5889	s.Type = &v
5890	return s
5891}
5892
5893// SetValue sets the Value field's value.
5894func (s *AccountLimit) SetValue(v int64) *AccountLimit {
5895	s.Value = &v
5896	return s
5897}
5898
5899// A complex type that identifies the CloudWatch alarm that you want Amazon
5900// Route 53 health checkers to use to determine whether the specified health
5901// check is healthy.
5902type AlarmIdentifier struct {
5903	_ struct{} `type:"structure"`
5904
5905	// The name of the CloudWatch alarm that you want Amazon Route 53 health checkers
5906	// to use to determine whether this health check is healthy.
5907	//
5908	// Route 53 supports CloudWatch alarms with the following features:
5909	//
5910	//    * Standard-resolution metrics. High-resolution metrics aren't supported.
5911	//    For more information, see High-Resolution Metrics (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html#high-resolution-metrics)
5912	//    in the Amazon CloudWatch User Guide.
5913	//
5914	//    * Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended
5915	//    statistics aren't supported.
5916	//
5917	// Name is a required field
5918	Name *string `min:"1" type:"string" required:"true"`
5919
5920	// For the CloudWatch alarm that you want Route 53 health checkers to use to
5921	// determine whether this health check is healthy, the region that the alarm
5922	// was created in.
5923	//
5924	// For the current list of CloudWatch regions, see Amazon CloudWatch (http://docs.aws.amazon.com/general/latest/gr/rande.html#cw_region)
5925	// in the AWS Regions and Endpoints chapter of the Amazon Web Services General
5926	// Reference.
5927	//
5928	// Region is a required field
5929	Region *string `min:"1" type:"string" required:"true" enum:"CloudWatchRegion"`
5930}
5931
5932// String returns the string representation
5933func (s AlarmIdentifier) String() string {
5934	return awsutil.Prettify(s)
5935}
5936
5937// GoString returns the string representation
5938func (s AlarmIdentifier) GoString() string {
5939	return s.String()
5940}
5941
5942// Validate inspects the fields of the type to determine if they are valid.
5943func (s *AlarmIdentifier) Validate() error {
5944	invalidParams := request.ErrInvalidParams{Context: "AlarmIdentifier"}
5945	if s.Name == nil {
5946		invalidParams.Add(request.NewErrParamRequired("Name"))
5947	}
5948	if s.Name != nil && len(*s.Name) < 1 {
5949		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5950	}
5951	if s.Region == nil {
5952		invalidParams.Add(request.NewErrParamRequired("Region"))
5953	}
5954	if s.Region != nil && len(*s.Region) < 1 {
5955		invalidParams.Add(request.NewErrParamMinLen("Region", 1))
5956	}
5957
5958	if invalidParams.Len() > 0 {
5959		return invalidParams
5960	}
5961	return nil
5962}
5963
5964// SetName sets the Name field's value.
5965func (s *AlarmIdentifier) SetName(v string) *AlarmIdentifier {
5966	s.Name = &v
5967	return s
5968}
5969
5970// SetRegion sets the Region field's value.
5971func (s *AlarmIdentifier) SetRegion(v string) *AlarmIdentifier {
5972	s.Region = &v
5973	return s
5974}
5975
5976// Alias resource record sets only: Information about the AWS resource, such
5977// as a CloudFront distribution or an Amazon S3 bucket, that you want to route
5978// traffic to.
5979//
5980// When creating resource record sets for a private hosted zone, note the following:
5981//
5982//    * Creating geolocation alias resource record sets or latency alias resource
5983//    record sets in a private hosted zone is unsupported.
5984//
5985//    * For information about creating failover resource record sets in a private
5986//    hosted zone, see Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html).
5987type AliasTarget struct {
5988	_ struct{} `type:"structure"`
5989
5990	// Alias resource record sets only: The value that you specify depends on where
5991	// you want to route queries:
5992	//
5993	// Amazon API Gateway custom regional APIs and edge-optimized APIs
5994	//
5995	// Specify the applicable domain name for your API. You can get the applicable
5996	// value using the AWS CLI command get-domain-names (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html):
5997	//
5998	//    * For regional APIs, specify the value of regionalDomainName.
5999	//
6000	//    * For edge-optimized APIs, specify the value of distributionDomainName.
6001	//    This is the name of the associated CloudFront distribution, such as da1b2c3d4e5.cloudfront.net.
6002	//
6003	// The name of the record that you're creating must match a custom domain name
6004	// for your API, such as api.example.com.
6005	//
6006	// Amazon Virtual Private Cloud interface VPC endpoint
6007	//
6008	// Enter the API endpoint for the interface endpoint, such as vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com.
6009	// For edge-optimized APIs, this is the domain name for the corresponding CloudFront
6010	// distribution. You can get the value of DnsName using the AWS CLI command
6011	// describe-vpc-endpoints (https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html).
6012	//
6013	// CloudFront distribution
6014	//
6015	// Specify the domain name that CloudFront assigned when you created your distribution.
6016	//
6017	// Your CloudFront distribution must include an alternate domain name that matches
6018	// the name of the resource record set. For example, if the name of the resource
6019	// record set is acme.example.com, your CloudFront distribution must include
6020	// acme.example.com as one of the alternate domain names. For more information,
6021	// see Using Alternate Domain Names (CNAMEs) (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html)
6022	// in the Amazon CloudFront Developer Guide.
6023	//
6024	// You can't create a resource record set in a private hosted zone to route
6025	// traffic to a CloudFront distribution.
6026	//
6027	// For failover alias records, you can't specify a CloudFront distribution for
6028	// both the primary and secondary records. A distribution must include an alternate
6029	// domain name that matches the name of the record. However, the primary and
6030	// secondary records have the same name, and you can't include the same alternate
6031	// domain name in more than one distribution.
6032	//
6033	// Elastic Beanstalk environment
6034	//
6035	// If the domain name for your Elastic Beanstalk environment includes the region
6036	// that you deployed the environment in, you can create an alias record that
6037	// routes traffic to the environment. For example, the domain name my-environment.us-west-2.elasticbeanstalk.com
6038	// is a regionalized domain name.
6039	//
6040	// For environments that were created before early 2016, the domain name doesn't
6041	// include the region. To route traffic to these environments, you must create
6042	// a CNAME record instead of an alias record. Note that you can't create a CNAME
6043	// record for the root domain name. For example, if your domain name is example.com,
6044	// you can create a record that routes traffic for acme.example.com to your
6045	// Elastic Beanstalk environment, but you can't create a record that routes
6046	// traffic for example.com to your Elastic Beanstalk environment.
6047	//
6048	// For Elastic Beanstalk environments that have regionalized subdomains, specify
6049	// the CNAME attribute for the environment. You can use the following methods
6050	// to get the value of the CNAME attribute:
6051	//
6052	//    * AWS Management Console: For information about how to get the value by
6053	//    using the console, see Using Custom Domains with AWS Elastic Beanstalk
6054	//    (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html)
6055	//    in the AWS Elastic Beanstalk Developer Guide.
6056	//
6057	//    * Elastic Beanstalk API: Use the DescribeEnvironments action to get the
6058	//    value of the CNAME attribute. For more information, see DescribeEnvironments
6059	//    (http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html)
6060	//    in the AWS Elastic Beanstalk API Reference.
6061	//
6062	//    * AWS CLI: Use the describe-environments command to get the value of the
6063	//    CNAME attribute. For more information, see describe-environments (http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html)
6064	//    in the AWS Command Line Interface Reference.
6065	//
6066	// ELB load balancer
6067	//
6068	// Specify the DNS name that is associated with the load balancer. Get the DNS
6069	// name by using the AWS Management Console, the ELB API, or the AWS CLI.
6070	//
6071	//    * AWS Management Console: Go to the EC2 page, choose Load Balancers in
6072	//    the navigation pane, choose the load balancer, choose the Description
6073	//    tab, and get the value of the DNS name field. If you're routing traffic
6074	//    to a Classic Load Balancer, get the value that begins with dualstack.
6075	//    If you're routing traffic to another type of load balancer, get the value
6076	//    that applies to the record type, A or AAAA.
6077	//
6078	//    * Elastic Load Balancing API: Use DescribeLoadBalancers to get the value
6079	//    of DNSName. For more information, see the applicable guide: Classic Load
6080	//    Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html)
6081	//    Application and Network Load Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
6082	//
6083	//    * AWS CLI: Use describe-load-balancers to get the value of DNSName. For
6084	//    more information, see the applicable guide: Classic Load Balancers: describe-load-balancers
6085	//    (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html)
6086	//    Application and Network Load Balancers: describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html)
6087	//
6088	// Amazon S3 bucket that is configured as a static website
6089	//
6090	// Specify the domain name of the Amazon S3 website endpoint that you created
6091	// the bucket in, for example, s3-website.us-east-2.amazonaws.com. For more
6092	// information about valid values, see the table Amazon Simple Storage Service
6093	// (S3) Website Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
6094	// in the Amazon Web Services General Reference. For more information about
6095	// using S3 buckets for websites, see Getting Started with Amazon Route 53 (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html)
6096	// in the Amazon Route 53 Developer Guide.
6097	//
6098	// Another Route 53 resource record set
6099	//
6100	// Specify the value of the Name element for a resource record set in the current
6101	// hosted zone.
6102	//
6103	// If you're creating an alias record that has the same name as the hosted zone
6104	// (known as the zone apex), you can't specify the domain name for a record
6105	// for which the value of Type is CNAME. This is because the alias record must
6106	// have the same type as the record that you're routing traffic to, and creating
6107	// a CNAME record for the zone apex isn't supported even for an alias record.
6108	//
6109	// DNSName is a required field
6110	DNSName *string `type:"string" required:"true"`
6111
6112	// Applies only to alias, failover alias, geolocation alias, latency alias,
6113	// and weighted alias resource record sets: When EvaluateTargetHealth is true,
6114	// an alias resource record set inherits the health of the referenced AWS resource,
6115	// such as an ELB load balancer or another resource record set in the hosted
6116	// zone.
6117	//
6118	// Note the following:
6119	//
6120	// CloudFront distributions
6121	//
6122	// You can't set EvaluateTargetHealth to true when the alias target is a CloudFront
6123	// distribution.
6124	//
6125	// Elastic Beanstalk environments that have regionalized subdomains
6126	//
6127	// If you specify an Elastic Beanstalk environment in DNSName and the environment
6128	// contains an ELB load balancer, Elastic Load Balancing routes queries only
6129	// to the healthy Amazon EC2 instances that are registered with the load balancer.
6130	// (An environment automatically contains an ELB load balancer if it includes
6131	// more than one Amazon EC2 instance.) If you set EvaluateTargetHealth to true
6132	// and either no Amazon EC2 instances are healthy or the load balancer itself
6133	// is unhealthy, Route 53 routes queries to other available resources that are
6134	// healthy, if any.
6135	//
6136	// If the environment contains a single Amazon EC2 instance, there are no special
6137	// requirements.
6138	//
6139	// ELB load balancers
6140	//
6141	// Health checking behavior depends on the type of load balancer:
6142	//
6143	//    * Classic Load Balancers: If you specify an ELB Classic Load Balancer
6144	//    in DNSName, Elastic Load Balancing routes queries only to the healthy
6145	//    Amazon EC2 instances that are registered with the load balancer. If you
6146	//    set EvaluateTargetHealth to true and either no EC2 instances are healthy
6147	//    or the load balancer itself is unhealthy, Route 53 routes queries to other
6148	//    resources.
6149	//
6150	//    * Application and Network Load Balancers: If you specify an ELB Application
6151	//    or Network Load Balancer and you set EvaluateTargetHealth to true, Route
6152	//    53 routes queries to the load balancer based on the health of the target
6153	//    groups that are associated with the load balancer: For an Application
6154	//    or Network Load Balancer to be considered healthy, every target group
6155	//    that contains targets must contain at least one healthy target. If any
6156	//    target group contains only unhealthy targets, the load balancer is considered
6157	//    unhealthy, and Route 53 routes queries to other resources. A target group
6158	//    that has no registered targets is considered unhealthy.
6159	//
6160	// When you create a load balancer, you configure settings for Elastic Load
6161	// Balancing health checks; they're not Route 53 health checks, but they perform
6162	// a similar function. Do not create Route 53 health checks for the EC2 instances
6163	// that you register with an ELB load balancer.
6164	//
6165	// S3 buckets
6166	//
6167	// There are no special requirements for setting EvaluateTargetHealth to true
6168	// when the alias target is an S3 bucket.
6169	//
6170	// Other records in the same hosted zone
6171	//
6172	// If the AWS resource that you specify in DNSName is a record or a group of
6173	// records (for example, a group of weighted records) but is not another alias
6174	// record, we recommend that you associate a health check with all of the records
6175	// in the alias target. For more information, see What Happens When You Omit
6176	// Health Checks? (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting)
6177	// in the Amazon Route 53 Developer Guide.
6178	//
6179	// For more information and examples, see Amazon Route 53 Health Checks and
6180	// DNS Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)
6181	// in the Amazon Route 53 Developer Guide.
6182	//
6183	// EvaluateTargetHealth is a required field
6184	EvaluateTargetHealth *bool `type:"boolean" required:"true"`
6185
6186	// Alias resource records sets only: The value used depends on where you want
6187	// to route traffic:
6188	//
6189	// Amazon API Gateway custom regional APIs and edge-optimized APIs
6190	//
6191	// Specify the hosted zone ID for your API. You can get the applicable value
6192	// using the AWS CLI command get-domain-names (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html):
6193	//
6194	//    * For regional APIs, specify the value of regionalHostedZoneId.
6195	//
6196	//    * For edge-optimized APIs, specify the value of distributionHostedZoneId.
6197	//
6198	// Amazon Virtual Private Cloud interface VPC endpoint
6199	//
6200	// Specify the hosted zone ID for your interface endpoint. You can get the value
6201	// of HostedZoneId using the AWS CLI command describe-vpc-endpoints (https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html).
6202	//
6203	// CloudFront distribution
6204	//
6205	// Specify Z2FDTNDATAQYW2.
6206	//
6207	// Alias resource record sets for CloudFront can't be created in a private zone.
6208	//
6209	// Elastic Beanstalk environment
6210	//
6211	// Specify the hosted zone ID for the region that you created the environment
6212	// in. The environment must have a regionalized subdomain. For a list of regions
6213	// and the corresponding hosted zone IDs, see AWS Elastic Beanstalk (http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region)
6214	// in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General
6215	// Reference.
6216	//
6217	// ELB load balancer
6218	//
6219	// Specify the value of the hosted zone ID for the load balancer. Use the following
6220	// methods to get the hosted zone ID:
6221	//
6222	//    * Elastic Load Balancing (https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region)
6223	//    table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services
6224	//    General Reference: Use the value that corresponds with the region that
6225	//    you created your load balancer in. Note that there are separate columns
6226	//    for Application and Classic Load Balancers and for Network Load Balancers.
6227	//
6228	//    * AWS Management Console: Go to the Amazon EC2 page, choose Load Balancers
6229	//    in the navigation pane, select the load balancer, and get the value of
6230	//    the Hosted zone field on the Description tab.
6231	//
6232	//    * Elastic Load Balancing API: Use DescribeLoadBalancers to get the applicable
6233	//    value. For more information, see the applicable guide: Classic Load Balancers:
6234	//    Use DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html)
6235	//    to get the value of CanonicalHostedZoneNameId. Application and Network
6236	//    Load Balancers: Use DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
6237	//    to get the value of CanonicalHostedZoneId.
6238	//
6239	//    * AWS CLI: Use describe-load-balancers to get the applicable value. For
6240	//    more information, see the applicable guide: Classic Load Balancers: Use
6241	//    describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html)
6242	//    to get the value of CanonicalHostedZoneNameId. Application and Network
6243	//    Load Balancers: Use describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html)
6244	//    to get the value of CanonicalHostedZoneId.
6245	//
6246	// An Amazon S3 bucket configured as a static website
6247	//
6248	// Specify the hosted zone ID for the region that you created the bucket in.
6249	// For more information about valid values, see the Amazon Simple Storage Service
6250	// Website Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
6251	// table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services
6252	// General Reference.
6253	//
6254	// Another Route 53 resource record set in your hosted zone
6255	//
6256	// Specify the hosted zone ID of your hosted zone. (An alias resource record
6257	// set can't reference a resource record set in a different hosted zone.)
6258	//
6259	// HostedZoneId is a required field
6260	HostedZoneId *string `type:"string" required:"true"`
6261}
6262
6263// String returns the string representation
6264func (s AliasTarget) String() string {
6265	return awsutil.Prettify(s)
6266}
6267
6268// GoString returns the string representation
6269func (s AliasTarget) GoString() string {
6270	return s.String()
6271}
6272
6273// Validate inspects the fields of the type to determine if they are valid.
6274func (s *AliasTarget) Validate() error {
6275	invalidParams := request.ErrInvalidParams{Context: "AliasTarget"}
6276	if s.DNSName == nil {
6277		invalidParams.Add(request.NewErrParamRequired("DNSName"))
6278	}
6279	if s.EvaluateTargetHealth == nil {
6280		invalidParams.Add(request.NewErrParamRequired("EvaluateTargetHealth"))
6281	}
6282	if s.HostedZoneId == nil {
6283		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
6284	}
6285
6286	if invalidParams.Len() > 0 {
6287		return invalidParams
6288	}
6289	return nil
6290}
6291
6292// SetDNSName sets the DNSName field's value.
6293func (s *AliasTarget) SetDNSName(v string) *AliasTarget {
6294	s.DNSName = &v
6295	return s
6296}
6297
6298// SetEvaluateTargetHealth sets the EvaluateTargetHealth field's value.
6299func (s *AliasTarget) SetEvaluateTargetHealth(v bool) *AliasTarget {
6300	s.EvaluateTargetHealth = &v
6301	return s
6302}
6303
6304// SetHostedZoneId sets the HostedZoneId field's value.
6305func (s *AliasTarget) SetHostedZoneId(v string) *AliasTarget {
6306	s.HostedZoneId = &v
6307	return s
6308}
6309
6310// A complex type that contains information about the request to associate a
6311// VPC with a private hosted zone.
6312type AssociateVPCWithHostedZoneInput struct {
6313	_ struct{} `locationName:"AssociateVPCWithHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6314
6315	// Optional: A comment about the association request.
6316	Comment *string `type:"string"`
6317
6318	// The ID of the private hosted zone that you want to associate an Amazon VPC
6319	// with.
6320	//
6321	// Note that you can't associate a VPC with a hosted zone that doesn't have
6322	// an existing VPC association.
6323	//
6324	// HostedZoneId is a required field
6325	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6326
6327	// A complex type that contains information about the VPC that you want to associate
6328	// with a private hosted zone.
6329	//
6330	// VPC is a required field
6331	VPC *VPC `type:"structure" required:"true"`
6332}
6333
6334// String returns the string representation
6335func (s AssociateVPCWithHostedZoneInput) String() string {
6336	return awsutil.Prettify(s)
6337}
6338
6339// GoString returns the string representation
6340func (s AssociateVPCWithHostedZoneInput) GoString() string {
6341	return s.String()
6342}
6343
6344// Validate inspects the fields of the type to determine if they are valid.
6345func (s *AssociateVPCWithHostedZoneInput) Validate() error {
6346	invalidParams := request.ErrInvalidParams{Context: "AssociateVPCWithHostedZoneInput"}
6347	if s.HostedZoneId == nil {
6348		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
6349	}
6350	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
6351		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
6352	}
6353	if s.VPC == nil {
6354		invalidParams.Add(request.NewErrParamRequired("VPC"))
6355	}
6356	if s.VPC != nil {
6357		if err := s.VPC.Validate(); err != nil {
6358			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
6359		}
6360	}
6361
6362	if invalidParams.Len() > 0 {
6363		return invalidParams
6364	}
6365	return nil
6366}
6367
6368// SetComment sets the Comment field's value.
6369func (s *AssociateVPCWithHostedZoneInput) SetComment(v string) *AssociateVPCWithHostedZoneInput {
6370	s.Comment = &v
6371	return s
6372}
6373
6374// SetHostedZoneId sets the HostedZoneId field's value.
6375func (s *AssociateVPCWithHostedZoneInput) SetHostedZoneId(v string) *AssociateVPCWithHostedZoneInput {
6376	s.HostedZoneId = &v
6377	return s
6378}
6379
6380// SetVPC sets the VPC field's value.
6381func (s *AssociateVPCWithHostedZoneInput) SetVPC(v *VPC) *AssociateVPCWithHostedZoneInput {
6382	s.VPC = v
6383	return s
6384}
6385
6386// A complex type that contains the response information for the AssociateVPCWithHostedZone
6387// request.
6388type AssociateVPCWithHostedZoneOutput struct {
6389	_ struct{} `type:"structure"`
6390
6391	// A complex type that describes the changes made to your hosted zone.
6392	//
6393	// ChangeInfo is a required field
6394	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
6395}
6396
6397// String returns the string representation
6398func (s AssociateVPCWithHostedZoneOutput) String() string {
6399	return awsutil.Prettify(s)
6400}
6401
6402// GoString returns the string representation
6403func (s AssociateVPCWithHostedZoneOutput) GoString() string {
6404	return s.String()
6405}
6406
6407// SetChangeInfo sets the ChangeInfo field's value.
6408func (s *AssociateVPCWithHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *AssociateVPCWithHostedZoneOutput {
6409	s.ChangeInfo = v
6410	return s
6411}
6412
6413// The information for each resource record set that you want to change.
6414type Change struct {
6415	_ struct{} `type:"structure"`
6416
6417	// The action to perform:
6418	//
6419	//    * CREATE: Creates a resource record set that has the specified values.
6420	//
6421	//    * DELETE: Deletes a existing resource record set. To delete the resource
6422	//    record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance
6423	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicyInstance.html).
6424	//    Amazon Route 53 will delete the resource record set automatically. If
6425	//    you delete the resource record set by using ChangeResourceRecordSets,
6426	//    Route 53 doesn't automatically delete the traffic policy instance, and
6427	//    you'll continue to be charged for it even though it's no longer in use.
6428	//
6429	//    * UPSERT: If a resource record set doesn't already exist, Route 53 creates
6430	//    it. If a resource record set does exist, Route 53 updates it with the
6431	//    values in the request.
6432	//
6433	// Action is a required field
6434	Action *string `type:"string" required:"true" enum:"ChangeAction"`
6435
6436	// Information about the resource record set to create, delete, or update.
6437	//
6438	// ResourceRecordSet is a required field
6439	ResourceRecordSet *ResourceRecordSet `type:"structure" required:"true"`
6440}
6441
6442// String returns the string representation
6443func (s Change) String() string {
6444	return awsutil.Prettify(s)
6445}
6446
6447// GoString returns the string representation
6448func (s Change) GoString() string {
6449	return s.String()
6450}
6451
6452// Validate inspects the fields of the type to determine if they are valid.
6453func (s *Change) Validate() error {
6454	invalidParams := request.ErrInvalidParams{Context: "Change"}
6455	if s.Action == nil {
6456		invalidParams.Add(request.NewErrParamRequired("Action"))
6457	}
6458	if s.ResourceRecordSet == nil {
6459		invalidParams.Add(request.NewErrParamRequired("ResourceRecordSet"))
6460	}
6461	if s.ResourceRecordSet != nil {
6462		if err := s.ResourceRecordSet.Validate(); err != nil {
6463			invalidParams.AddNested("ResourceRecordSet", err.(request.ErrInvalidParams))
6464		}
6465	}
6466
6467	if invalidParams.Len() > 0 {
6468		return invalidParams
6469	}
6470	return nil
6471}
6472
6473// SetAction sets the Action field's value.
6474func (s *Change) SetAction(v string) *Change {
6475	s.Action = &v
6476	return s
6477}
6478
6479// SetResourceRecordSet sets the ResourceRecordSet field's value.
6480func (s *Change) SetResourceRecordSet(v *ResourceRecordSet) *Change {
6481	s.ResourceRecordSet = v
6482	return s
6483}
6484
6485// The information for a change request.
6486type ChangeBatch struct {
6487	_ struct{} `type:"structure"`
6488
6489	// Information about the changes to make to the record sets.
6490	//
6491	// Changes is a required field
6492	Changes []*Change `locationNameList:"Change" min:"1" type:"list" required:"true"`
6493
6494	// Optional: Any comments you want to include about a change batch request.
6495	Comment *string `type:"string"`
6496}
6497
6498// String returns the string representation
6499func (s ChangeBatch) String() string {
6500	return awsutil.Prettify(s)
6501}
6502
6503// GoString returns the string representation
6504func (s ChangeBatch) GoString() string {
6505	return s.String()
6506}
6507
6508// Validate inspects the fields of the type to determine if they are valid.
6509func (s *ChangeBatch) Validate() error {
6510	invalidParams := request.ErrInvalidParams{Context: "ChangeBatch"}
6511	if s.Changes == nil {
6512		invalidParams.Add(request.NewErrParamRequired("Changes"))
6513	}
6514	if s.Changes != nil && len(s.Changes) < 1 {
6515		invalidParams.Add(request.NewErrParamMinLen("Changes", 1))
6516	}
6517	if s.Changes != nil {
6518		for i, v := range s.Changes {
6519			if v == nil {
6520				continue
6521			}
6522			if err := v.Validate(); err != nil {
6523				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Changes", i), err.(request.ErrInvalidParams))
6524			}
6525		}
6526	}
6527
6528	if invalidParams.Len() > 0 {
6529		return invalidParams
6530	}
6531	return nil
6532}
6533
6534// SetChanges sets the Changes field's value.
6535func (s *ChangeBatch) SetChanges(v []*Change) *ChangeBatch {
6536	s.Changes = v
6537	return s
6538}
6539
6540// SetComment sets the Comment field's value.
6541func (s *ChangeBatch) SetComment(v string) *ChangeBatch {
6542	s.Comment = &v
6543	return s
6544}
6545
6546// A complex type that describes change information about changes made to your
6547// hosted zone.
6548type ChangeInfo struct {
6549	_ struct{} `type:"structure"`
6550
6551	// A complex type that describes change information about changes made to your
6552	// hosted zone.
6553	//
6554	// This element contains an ID that you use when performing a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html)
6555	// action to get detailed information about the change.
6556	Comment *string `type:"string"`
6557
6558	// The ID of the request.
6559	//
6560	// Id is a required field
6561	Id *string `type:"string" required:"true"`
6562
6563	// The current state of the request. PENDING indicates that this request has
6564	// not yet been applied to all Amazon Route 53 DNS servers.
6565	//
6566	// Status is a required field
6567	Status *string `type:"string" required:"true" enum:"ChangeStatus"`
6568
6569	// The date and time that the change request was submitted in ISO 8601 format
6570	// (https://en.wikipedia.org/wiki/ISO_8601) and Coordinated Universal Time (UTC).
6571	// For example, the value 2017-03-27T17:48:16.751Z represents March 27, 2017
6572	// at 17:48:16.751 UTC.
6573	//
6574	// SubmittedAt is a required field
6575	SubmittedAt *time.Time `type:"timestamp" required:"true"`
6576}
6577
6578// String returns the string representation
6579func (s ChangeInfo) String() string {
6580	return awsutil.Prettify(s)
6581}
6582
6583// GoString returns the string representation
6584func (s ChangeInfo) GoString() string {
6585	return s.String()
6586}
6587
6588// SetComment sets the Comment field's value.
6589func (s *ChangeInfo) SetComment(v string) *ChangeInfo {
6590	s.Comment = &v
6591	return s
6592}
6593
6594// SetId sets the Id field's value.
6595func (s *ChangeInfo) SetId(v string) *ChangeInfo {
6596	s.Id = &v
6597	return s
6598}
6599
6600// SetStatus sets the Status field's value.
6601func (s *ChangeInfo) SetStatus(v string) *ChangeInfo {
6602	s.Status = &v
6603	return s
6604}
6605
6606// SetSubmittedAt sets the SubmittedAt field's value.
6607func (s *ChangeInfo) SetSubmittedAt(v time.Time) *ChangeInfo {
6608	s.SubmittedAt = &v
6609	return s
6610}
6611
6612// A complex type that contains change information for the resource record set.
6613type ChangeResourceRecordSetsInput struct {
6614	_ struct{} `locationName:"ChangeResourceRecordSetsRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6615
6616	// A complex type that contains an optional comment and the Changes element.
6617	//
6618	// ChangeBatch is a required field
6619	ChangeBatch *ChangeBatch `type:"structure" required:"true"`
6620
6621	// The ID of the hosted zone that contains the resource record sets that you
6622	// want to change.
6623	//
6624	// HostedZoneId is a required field
6625	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6626}
6627
6628// String returns the string representation
6629func (s ChangeResourceRecordSetsInput) String() string {
6630	return awsutil.Prettify(s)
6631}
6632
6633// GoString returns the string representation
6634func (s ChangeResourceRecordSetsInput) GoString() string {
6635	return s.String()
6636}
6637
6638// Validate inspects the fields of the type to determine if they are valid.
6639func (s *ChangeResourceRecordSetsInput) Validate() error {
6640	invalidParams := request.ErrInvalidParams{Context: "ChangeResourceRecordSetsInput"}
6641	if s.ChangeBatch == nil {
6642		invalidParams.Add(request.NewErrParamRequired("ChangeBatch"))
6643	}
6644	if s.HostedZoneId == nil {
6645		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
6646	}
6647	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
6648		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
6649	}
6650	if s.ChangeBatch != nil {
6651		if err := s.ChangeBatch.Validate(); err != nil {
6652			invalidParams.AddNested("ChangeBatch", err.(request.ErrInvalidParams))
6653		}
6654	}
6655
6656	if invalidParams.Len() > 0 {
6657		return invalidParams
6658	}
6659	return nil
6660}
6661
6662// SetChangeBatch sets the ChangeBatch field's value.
6663func (s *ChangeResourceRecordSetsInput) SetChangeBatch(v *ChangeBatch) *ChangeResourceRecordSetsInput {
6664	s.ChangeBatch = v
6665	return s
6666}
6667
6668// SetHostedZoneId sets the HostedZoneId field's value.
6669func (s *ChangeResourceRecordSetsInput) SetHostedZoneId(v string) *ChangeResourceRecordSetsInput {
6670	s.HostedZoneId = &v
6671	return s
6672}
6673
6674// A complex type containing the response for the request.
6675type ChangeResourceRecordSetsOutput struct {
6676	_ struct{} `type:"structure"`
6677
6678	// A complex type that contains information about changes made to your hosted
6679	// zone.
6680	//
6681	// This element contains an ID that you use when performing a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html)
6682	// action to get detailed information about the change.
6683	//
6684	// ChangeInfo is a required field
6685	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
6686}
6687
6688// String returns the string representation
6689func (s ChangeResourceRecordSetsOutput) String() string {
6690	return awsutil.Prettify(s)
6691}
6692
6693// GoString returns the string representation
6694func (s ChangeResourceRecordSetsOutput) GoString() string {
6695	return s.String()
6696}
6697
6698// SetChangeInfo sets the ChangeInfo field's value.
6699func (s *ChangeResourceRecordSetsOutput) SetChangeInfo(v *ChangeInfo) *ChangeResourceRecordSetsOutput {
6700	s.ChangeInfo = v
6701	return s
6702}
6703
6704// A complex type that contains information about the tags that you want to
6705// add, edit, or delete.
6706type ChangeTagsForResourceInput struct {
6707	_ struct{} `locationName:"ChangeTagsForResourceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6708
6709	// A complex type that contains a list of the tags that you want to add to the
6710	// specified health check or hosted zone and/or the tags that you want to edit
6711	// Value for.
6712	//
6713	// You can add a maximum of 10 tags to a health check or a hosted zone.
6714	AddTags []*Tag `locationNameList:"Tag" min:"1" type:"list"`
6715
6716	// A complex type that contains a list of the tags that you want to delete from
6717	// the specified health check or hosted zone. You can specify up to 10 keys.
6718	RemoveTagKeys []*string `locationNameList:"Key" min:"1" type:"list"`
6719
6720	// The ID of the resource for which you want to add, change, or delete tags.
6721	//
6722	// ResourceId is a required field
6723	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
6724
6725	// The type of the resource.
6726	//
6727	//    * The resource type for health checks is healthcheck.
6728	//
6729	//    * The resource type for hosted zones is hostedzone.
6730	//
6731	// ResourceType is a required field
6732	ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"TagResourceType"`
6733}
6734
6735// String returns the string representation
6736func (s ChangeTagsForResourceInput) String() string {
6737	return awsutil.Prettify(s)
6738}
6739
6740// GoString returns the string representation
6741func (s ChangeTagsForResourceInput) GoString() string {
6742	return s.String()
6743}
6744
6745// Validate inspects the fields of the type to determine if they are valid.
6746func (s *ChangeTagsForResourceInput) Validate() error {
6747	invalidParams := request.ErrInvalidParams{Context: "ChangeTagsForResourceInput"}
6748	if s.AddTags != nil && len(s.AddTags) < 1 {
6749		invalidParams.Add(request.NewErrParamMinLen("AddTags", 1))
6750	}
6751	if s.RemoveTagKeys != nil && len(s.RemoveTagKeys) < 1 {
6752		invalidParams.Add(request.NewErrParamMinLen("RemoveTagKeys", 1))
6753	}
6754	if s.ResourceId == nil {
6755		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6756	}
6757	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6758		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6759	}
6760	if s.ResourceType == nil {
6761		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
6762	}
6763	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
6764		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
6765	}
6766
6767	if invalidParams.Len() > 0 {
6768		return invalidParams
6769	}
6770	return nil
6771}
6772
6773// SetAddTags sets the AddTags field's value.
6774func (s *ChangeTagsForResourceInput) SetAddTags(v []*Tag) *ChangeTagsForResourceInput {
6775	s.AddTags = v
6776	return s
6777}
6778
6779// SetRemoveTagKeys sets the RemoveTagKeys field's value.
6780func (s *ChangeTagsForResourceInput) SetRemoveTagKeys(v []*string) *ChangeTagsForResourceInput {
6781	s.RemoveTagKeys = v
6782	return s
6783}
6784
6785// SetResourceId sets the ResourceId field's value.
6786func (s *ChangeTagsForResourceInput) SetResourceId(v string) *ChangeTagsForResourceInput {
6787	s.ResourceId = &v
6788	return s
6789}
6790
6791// SetResourceType sets the ResourceType field's value.
6792func (s *ChangeTagsForResourceInput) SetResourceType(v string) *ChangeTagsForResourceInput {
6793	s.ResourceType = &v
6794	return s
6795}
6796
6797// Empty response for the request.
6798type ChangeTagsForResourceOutput struct {
6799	_ struct{} `type:"structure"`
6800}
6801
6802// String returns the string representation
6803func (s ChangeTagsForResourceOutput) String() string {
6804	return awsutil.Prettify(s)
6805}
6806
6807// GoString returns the string representation
6808func (s ChangeTagsForResourceOutput) GoString() string {
6809	return s.String()
6810}
6811
6812// A complex type that contains information about the CloudWatch alarm that
6813// Amazon Route 53 is monitoring for this health check.
6814type CloudWatchAlarmConfiguration struct {
6815	_ struct{} `type:"structure"`
6816
6817	// For the metric that the CloudWatch alarm is associated with, the arithmetic
6818	// operation that is used for the comparison.
6819	//
6820	// ComparisonOperator is a required field
6821	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
6822
6823	// For the metric that the CloudWatch alarm is associated with, a complex type
6824	// that contains information about the dimensions for the metric. For information,
6825	// see Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html)
6826	// in the Amazon CloudWatch User Guide.
6827	Dimensions []*Dimension `locationNameList:"Dimension" type:"list"`
6828
6829	// For the metric that the CloudWatch alarm is associated with, the number of
6830	// periods that the metric is compared to the threshold.
6831	//
6832	// EvaluationPeriods is a required field
6833	EvaluationPeriods *int64 `min:"1" type:"integer" required:"true"`
6834
6835	// The name of the CloudWatch metric that the alarm is associated with.
6836	//
6837	// MetricName is a required field
6838	MetricName *string `min:"1" type:"string" required:"true"`
6839
6840	// The namespace of the metric that the alarm is associated with. For more information,
6841	// see Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html)
6842	// in the Amazon CloudWatch User Guide.
6843	//
6844	// Namespace is a required field
6845	Namespace *string `min:"1" type:"string" required:"true"`
6846
6847	// For the metric that the CloudWatch alarm is associated with, the duration
6848	// of one evaluation period in seconds.
6849	//
6850	// Period is a required field
6851	Period *int64 `min:"60" type:"integer" required:"true"`
6852
6853	// For the metric that the CloudWatch alarm is associated with, the statistic
6854	// that is applied to the metric.
6855	//
6856	// Statistic is a required field
6857	Statistic *string `type:"string" required:"true" enum:"Statistic"`
6858
6859	// For the metric that the CloudWatch alarm is associated with, the value the
6860	// metric is compared with.
6861	//
6862	// Threshold is a required field
6863	Threshold *float64 `type:"double" required:"true"`
6864}
6865
6866// String returns the string representation
6867func (s CloudWatchAlarmConfiguration) String() string {
6868	return awsutil.Prettify(s)
6869}
6870
6871// GoString returns the string representation
6872func (s CloudWatchAlarmConfiguration) GoString() string {
6873	return s.String()
6874}
6875
6876// SetComparisonOperator sets the ComparisonOperator field's value.
6877func (s *CloudWatchAlarmConfiguration) SetComparisonOperator(v string) *CloudWatchAlarmConfiguration {
6878	s.ComparisonOperator = &v
6879	return s
6880}
6881
6882// SetDimensions sets the Dimensions field's value.
6883func (s *CloudWatchAlarmConfiguration) SetDimensions(v []*Dimension) *CloudWatchAlarmConfiguration {
6884	s.Dimensions = v
6885	return s
6886}
6887
6888// SetEvaluationPeriods sets the EvaluationPeriods field's value.
6889func (s *CloudWatchAlarmConfiguration) SetEvaluationPeriods(v int64) *CloudWatchAlarmConfiguration {
6890	s.EvaluationPeriods = &v
6891	return s
6892}
6893
6894// SetMetricName sets the MetricName field's value.
6895func (s *CloudWatchAlarmConfiguration) SetMetricName(v string) *CloudWatchAlarmConfiguration {
6896	s.MetricName = &v
6897	return s
6898}
6899
6900// SetNamespace sets the Namespace field's value.
6901func (s *CloudWatchAlarmConfiguration) SetNamespace(v string) *CloudWatchAlarmConfiguration {
6902	s.Namespace = &v
6903	return s
6904}
6905
6906// SetPeriod sets the Period field's value.
6907func (s *CloudWatchAlarmConfiguration) SetPeriod(v int64) *CloudWatchAlarmConfiguration {
6908	s.Period = &v
6909	return s
6910}
6911
6912// SetStatistic sets the Statistic field's value.
6913func (s *CloudWatchAlarmConfiguration) SetStatistic(v string) *CloudWatchAlarmConfiguration {
6914	s.Statistic = &v
6915	return s
6916}
6917
6918// SetThreshold sets the Threshold field's value.
6919func (s *CloudWatchAlarmConfiguration) SetThreshold(v float64) *CloudWatchAlarmConfiguration {
6920	s.Threshold = &v
6921	return s
6922}
6923
6924// A complex type that contains the health check request information.
6925type CreateHealthCheckInput struct {
6926	_ struct{} `locationName:"CreateHealthCheckRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6927
6928	// A unique string that identifies the request and that allows you to retry
6929	// a failed CreateHealthCheck request without the risk of creating two identical
6930	// health checks:
6931	//
6932	//    * If you send a CreateHealthCheck request with the same CallerReference
6933	//    and settings as a previous request, and if the health check doesn't exist,
6934	//    Amazon Route 53 creates the health check. If the health check does exist,
6935	//    Route 53 returns the settings for the existing health check.
6936	//
6937	//    * If you send a CreateHealthCheck request with the same CallerReference
6938	//    as a deleted health check, regardless of the settings, Route 53 returns
6939	//    a HealthCheckAlreadyExists error.
6940	//
6941	//    * If you send a CreateHealthCheck request with the same CallerReference
6942	//    as an existing health check but with different settings, Route 53 returns
6943	//    a HealthCheckAlreadyExists error.
6944	//
6945	//    * If you send a CreateHealthCheck request with a unique CallerReference
6946	//    but settings identical to an existing health check, Route 53 creates the
6947	//    health check.
6948	//
6949	// CallerReference is a required field
6950	CallerReference *string `min:"1" type:"string" required:"true"`
6951
6952	// A complex type that contains settings for a new health check.
6953	//
6954	// HealthCheckConfig is a required field
6955	HealthCheckConfig *HealthCheckConfig `type:"structure" required:"true"`
6956}
6957
6958// String returns the string representation
6959func (s CreateHealthCheckInput) String() string {
6960	return awsutil.Prettify(s)
6961}
6962
6963// GoString returns the string representation
6964func (s CreateHealthCheckInput) GoString() string {
6965	return s.String()
6966}
6967
6968// Validate inspects the fields of the type to determine if they are valid.
6969func (s *CreateHealthCheckInput) Validate() error {
6970	invalidParams := request.ErrInvalidParams{Context: "CreateHealthCheckInput"}
6971	if s.CallerReference == nil {
6972		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
6973	}
6974	if s.CallerReference != nil && len(*s.CallerReference) < 1 {
6975		invalidParams.Add(request.NewErrParamMinLen("CallerReference", 1))
6976	}
6977	if s.HealthCheckConfig == nil {
6978		invalidParams.Add(request.NewErrParamRequired("HealthCheckConfig"))
6979	}
6980	if s.HealthCheckConfig != nil {
6981		if err := s.HealthCheckConfig.Validate(); err != nil {
6982			invalidParams.AddNested("HealthCheckConfig", err.(request.ErrInvalidParams))
6983		}
6984	}
6985
6986	if invalidParams.Len() > 0 {
6987		return invalidParams
6988	}
6989	return nil
6990}
6991
6992// SetCallerReference sets the CallerReference field's value.
6993func (s *CreateHealthCheckInput) SetCallerReference(v string) *CreateHealthCheckInput {
6994	s.CallerReference = &v
6995	return s
6996}
6997
6998// SetHealthCheckConfig sets the HealthCheckConfig field's value.
6999func (s *CreateHealthCheckInput) SetHealthCheckConfig(v *HealthCheckConfig) *CreateHealthCheckInput {
7000	s.HealthCheckConfig = v
7001	return s
7002}
7003
7004// A complex type containing the response information for the new health check.
7005type CreateHealthCheckOutput struct {
7006	_ struct{} `type:"structure"`
7007
7008	// A complex type that contains identifying information about the health check.
7009	//
7010	// HealthCheck is a required field
7011	HealthCheck *HealthCheck `type:"structure" required:"true"`
7012
7013	// The unique URL representing the new health check.
7014	//
7015	// Location is a required field
7016	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7017}
7018
7019// String returns the string representation
7020func (s CreateHealthCheckOutput) String() string {
7021	return awsutil.Prettify(s)
7022}
7023
7024// GoString returns the string representation
7025func (s CreateHealthCheckOutput) GoString() string {
7026	return s.String()
7027}
7028
7029// SetHealthCheck sets the HealthCheck field's value.
7030func (s *CreateHealthCheckOutput) SetHealthCheck(v *HealthCheck) *CreateHealthCheckOutput {
7031	s.HealthCheck = v
7032	return s
7033}
7034
7035// SetLocation sets the Location field's value.
7036func (s *CreateHealthCheckOutput) SetLocation(v string) *CreateHealthCheckOutput {
7037	s.Location = &v
7038	return s
7039}
7040
7041// A complex type that contains information about the request to create a public
7042// or private hosted zone.
7043type CreateHostedZoneInput struct {
7044	_ struct{} `locationName:"CreateHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7045
7046	// A unique string that identifies the request and that allows failed CreateHostedZone
7047	// requests to be retried without the risk of executing the operation twice.
7048	// You must use a unique CallerReference string every time you submit a CreateHostedZone
7049	// request. CallerReference can be any unique string, for example, a date/time
7050	// stamp.
7051	//
7052	// CallerReference is a required field
7053	CallerReference *string `min:"1" type:"string" required:"true"`
7054
7055	// If you want to associate a reusable delegation set with this hosted zone,
7056	// the ID that Amazon Route 53 assigned to the reusable delegation set when
7057	// you created it. For more information about reusable delegation sets, see
7058	// CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html).
7059	DelegationSetId *string `type:"string"`
7060
7061	// (Optional) A complex type that contains the following optional values:
7062	//
7063	//    * For public and private hosted zones, an optional comment
7064	//
7065	//    * For private hosted zones, an optional PrivateZone element
7066	//
7067	// If you don't specify a comment or the PrivateZone element, omit HostedZoneConfig
7068	// and the other elements.
7069	HostedZoneConfig *HostedZoneConfig `type:"structure"`
7070
7071	// The name of the domain. Specify a fully qualified domain name, for example,
7072	// www.example.com. The trailing dot is optional; Amazon Route 53 assumes that
7073	// the domain name is fully qualified. This means that Route 53 treats www.example.com
7074	// (without a trailing dot) and www.example.com. (with a trailing dot) as identical.
7075	//
7076	// If you're creating a public hosted zone, this is the name you have registered
7077	// with your DNS registrar. If your domain name is registered with a registrar
7078	// other than Route 53, change the name servers for your domain to the set of
7079	// NameServers that CreateHostedZone returns in DelegationSet.
7080	//
7081	// Name is a required field
7082	Name *string `type:"string" required:"true"`
7083
7084	// (Private hosted zones only) A complex type that contains information about
7085	// the Amazon VPC that you're associating with this hosted zone.
7086	//
7087	// You can specify only one Amazon VPC when you create a private hosted zone.
7088	// To associate additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone
7089	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html)
7090	// after you create a hosted zone.
7091	VPC *VPC `type:"structure"`
7092}
7093
7094// String returns the string representation
7095func (s CreateHostedZoneInput) String() string {
7096	return awsutil.Prettify(s)
7097}
7098
7099// GoString returns the string representation
7100func (s CreateHostedZoneInput) GoString() string {
7101	return s.String()
7102}
7103
7104// Validate inspects the fields of the type to determine if they are valid.
7105func (s *CreateHostedZoneInput) Validate() error {
7106	invalidParams := request.ErrInvalidParams{Context: "CreateHostedZoneInput"}
7107	if s.CallerReference == nil {
7108		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
7109	}
7110	if s.CallerReference != nil && len(*s.CallerReference) < 1 {
7111		invalidParams.Add(request.NewErrParamMinLen("CallerReference", 1))
7112	}
7113	if s.Name == nil {
7114		invalidParams.Add(request.NewErrParamRequired("Name"))
7115	}
7116	if s.VPC != nil {
7117		if err := s.VPC.Validate(); err != nil {
7118			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
7119		}
7120	}
7121
7122	if invalidParams.Len() > 0 {
7123		return invalidParams
7124	}
7125	return nil
7126}
7127
7128// SetCallerReference sets the CallerReference field's value.
7129func (s *CreateHostedZoneInput) SetCallerReference(v string) *CreateHostedZoneInput {
7130	s.CallerReference = &v
7131	return s
7132}
7133
7134// SetDelegationSetId sets the DelegationSetId field's value.
7135func (s *CreateHostedZoneInput) SetDelegationSetId(v string) *CreateHostedZoneInput {
7136	s.DelegationSetId = &v
7137	return s
7138}
7139
7140// SetHostedZoneConfig sets the HostedZoneConfig field's value.
7141func (s *CreateHostedZoneInput) SetHostedZoneConfig(v *HostedZoneConfig) *CreateHostedZoneInput {
7142	s.HostedZoneConfig = v
7143	return s
7144}
7145
7146// SetName sets the Name field's value.
7147func (s *CreateHostedZoneInput) SetName(v string) *CreateHostedZoneInput {
7148	s.Name = &v
7149	return s
7150}
7151
7152// SetVPC sets the VPC field's value.
7153func (s *CreateHostedZoneInput) SetVPC(v *VPC) *CreateHostedZoneInput {
7154	s.VPC = v
7155	return s
7156}
7157
7158// A complex type containing the response information for the hosted zone.
7159type CreateHostedZoneOutput struct {
7160	_ struct{} `type:"structure"`
7161
7162	// A complex type that contains information about the CreateHostedZone request.
7163	//
7164	// ChangeInfo is a required field
7165	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
7166
7167	// A complex type that describes the name servers for this hosted zone.
7168	//
7169	// DelegationSet is a required field
7170	DelegationSet *DelegationSet `type:"structure" required:"true"`
7171
7172	// A complex type that contains general information about the hosted zone.
7173	//
7174	// HostedZone is a required field
7175	HostedZone *HostedZone `type:"structure" required:"true"`
7176
7177	// The unique URL representing the new hosted zone.
7178	//
7179	// Location is a required field
7180	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7181
7182	// A complex type that contains information about an Amazon VPC that you associated
7183	// with this hosted zone.
7184	VPC *VPC `type:"structure"`
7185}
7186
7187// String returns the string representation
7188func (s CreateHostedZoneOutput) String() string {
7189	return awsutil.Prettify(s)
7190}
7191
7192// GoString returns the string representation
7193func (s CreateHostedZoneOutput) GoString() string {
7194	return s.String()
7195}
7196
7197// SetChangeInfo sets the ChangeInfo field's value.
7198func (s *CreateHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *CreateHostedZoneOutput {
7199	s.ChangeInfo = v
7200	return s
7201}
7202
7203// SetDelegationSet sets the DelegationSet field's value.
7204func (s *CreateHostedZoneOutput) SetDelegationSet(v *DelegationSet) *CreateHostedZoneOutput {
7205	s.DelegationSet = v
7206	return s
7207}
7208
7209// SetHostedZone sets the HostedZone field's value.
7210func (s *CreateHostedZoneOutput) SetHostedZone(v *HostedZone) *CreateHostedZoneOutput {
7211	s.HostedZone = v
7212	return s
7213}
7214
7215// SetLocation sets the Location field's value.
7216func (s *CreateHostedZoneOutput) SetLocation(v string) *CreateHostedZoneOutput {
7217	s.Location = &v
7218	return s
7219}
7220
7221// SetVPC sets the VPC field's value.
7222func (s *CreateHostedZoneOutput) SetVPC(v *VPC) *CreateHostedZoneOutput {
7223	s.VPC = v
7224	return s
7225}
7226
7227type CreateQueryLoggingConfigInput struct {
7228	_ struct{} `locationName:"CreateQueryLoggingConfigRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7229
7230	// The Amazon Resource Name (ARN) for the log group that you want to Amazon
7231	// Route 53 to send query logs to. This is the format of the ARN:
7232	//
7233	// arn:aws:logs:region:account-id:log-group:log_group_name
7234	//
7235	// To get the ARN for a log group, you can use the CloudWatch console, the DescribeLogGroups
7236	// (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogGroups.html)
7237	// API action, the describe-log-groups (https://docs.aws.amazon.com/cli/latest/reference/logs/describe-log-groups.html)
7238	// command, or the applicable command in one of the AWS SDKs.
7239	//
7240	// CloudWatchLogsLogGroupArn is a required field
7241	CloudWatchLogsLogGroupArn *string `type:"string" required:"true"`
7242
7243	// The ID of the hosted zone that you want to log queries for. You can log queries
7244	// only for public hosted zones.
7245	//
7246	// HostedZoneId is a required field
7247	HostedZoneId *string `type:"string" required:"true"`
7248}
7249
7250// String returns the string representation
7251func (s CreateQueryLoggingConfigInput) String() string {
7252	return awsutil.Prettify(s)
7253}
7254
7255// GoString returns the string representation
7256func (s CreateQueryLoggingConfigInput) GoString() string {
7257	return s.String()
7258}
7259
7260// Validate inspects the fields of the type to determine if they are valid.
7261func (s *CreateQueryLoggingConfigInput) Validate() error {
7262	invalidParams := request.ErrInvalidParams{Context: "CreateQueryLoggingConfigInput"}
7263	if s.CloudWatchLogsLogGroupArn == nil {
7264		invalidParams.Add(request.NewErrParamRequired("CloudWatchLogsLogGroupArn"))
7265	}
7266	if s.HostedZoneId == nil {
7267		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
7268	}
7269
7270	if invalidParams.Len() > 0 {
7271		return invalidParams
7272	}
7273	return nil
7274}
7275
7276// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value.
7277func (s *CreateQueryLoggingConfigInput) SetCloudWatchLogsLogGroupArn(v string) *CreateQueryLoggingConfigInput {
7278	s.CloudWatchLogsLogGroupArn = &v
7279	return s
7280}
7281
7282// SetHostedZoneId sets the HostedZoneId field's value.
7283func (s *CreateQueryLoggingConfigInput) SetHostedZoneId(v string) *CreateQueryLoggingConfigInput {
7284	s.HostedZoneId = &v
7285	return s
7286}
7287
7288type CreateQueryLoggingConfigOutput struct {
7289	_ struct{} `type:"structure"`
7290
7291	// The unique URL representing the new query logging configuration.
7292	//
7293	// Location is a required field
7294	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7295
7296	// A complex type that contains the ID for a query logging configuration, the
7297	// ID of the hosted zone that you want to log queries for, and the ARN for the
7298	// log group that you want Amazon Route 53 to send query logs to.
7299	//
7300	// QueryLoggingConfig is a required field
7301	QueryLoggingConfig *QueryLoggingConfig `type:"structure" required:"true"`
7302}
7303
7304// String returns the string representation
7305func (s CreateQueryLoggingConfigOutput) String() string {
7306	return awsutil.Prettify(s)
7307}
7308
7309// GoString returns the string representation
7310func (s CreateQueryLoggingConfigOutput) GoString() string {
7311	return s.String()
7312}
7313
7314// SetLocation sets the Location field's value.
7315func (s *CreateQueryLoggingConfigOutput) SetLocation(v string) *CreateQueryLoggingConfigOutput {
7316	s.Location = &v
7317	return s
7318}
7319
7320// SetQueryLoggingConfig sets the QueryLoggingConfig field's value.
7321func (s *CreateQueryLoggingConfigOutput) SetQueryLoggingConfig(v *QueryLoggingConfig) *CreateQueryLoggingConfigOutput {
7322	s.QueryLoggingConfig = v
7323	return s
7324}
7325
7326type CreateReusableDelegationSetInput struct {
7327	_ struct{} `locationName:"CreateReusableDelegationSetRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7328
7329	// A unique string that identifies the request, and that allows you to retry
7330	// failed CreateReusableDelegationSet requests without the risk of executing
7331	// the operation twice. You must use a unique CallerReference string every time
7332	// you submit a CreateReusableDelegationSet request. CallerReference can be
7333	// any unique string, for example a date/time stamp.
7334	//
7335	// CallerReference is a required field
7336	CallerReference *string `min:"1" type:"string" required:"true"`
7337
7338	// If you want to mark the delegation set for an existing hosted zone as reusable,
7339	// the ID for that hosted zone.
7340	HostedZoneId *string `type:"string"`
7341}
7342
7343// String returns the string representation
7344func (s CreateReusableDelegationSetInput) String() string {
7345	return awsutil.Prettify(s)
7346}
7347
7348// GoString returns the string representation
7349func (s CreateReusableDelegationSetInput) GoString() string {
7350	return s.String()
7351}
7352
7353// Validate inspects the fields of the type to determine if they are valid.
7354func (s *CreateReusableDelegationSetInput) Validate() error {
7355	invalidParams := request.ErrInvalidParams{Context: "CreateReusableDelegationSetInput"}
7356	if s.CallerReference == nil {
7357		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
7358	}
7359	if s.CallerReference != nil && len(*s.CallerReference) < 1 {
7360		invalidParams.Add(request.NewErrParamMinLen("CallerReference", 1))
7361	}
7362
7363	if invalidParams.Len() > 0 {
7364		return invalidParams
7365	}
7366	return nil
7367}
7368
7369// SetCallerReference sets the CallerReference field's value.
7370func (s *CreateReusableDelegationSetInput) SetCallerReference(v string) *CreateReusableDelegationSetInput {
7371	s.CallerReference = &v
7372	return s
7373}
7374
7375// SetHostedZoneId sets the HostedZoneId field's value.
7376func (s *CreateReusableDelegationSetInput) SetHostedZoneId(v string) *CreateReusableDelegationSetInput {
7377	s.HostedZoneId = &v
7378	return s
7379}
7380
7381type CreateReusableDelegationSetOutput struct {
7382	_ struct{} `type:"structure"`
7383
7384	// A complex type that contains name server information.
7385	//
7386	// DelegationSet is a required field
7387	DelegationSet *DelegationSet `type:"structure" required:"true"`
7388
7389	// The unique URL representing the new reusable delegation set.
7390	//
7391	// Location is a required field
7392	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7393}
7394
7395// String returns the string representation
7396func (s CreateReusableDelegationSetOutput) String() string {
7397	return awsutil.Prettify(s)
7398}
7399
7400// GoString returns the string representation
7401func (s CreateReusableDelegationSetOutput) GoString() string {
7402	return s.String()
7403}
7404
7405// SetDelegationSet sets the DelegationSet field's value.
7406func (s *CreateReusableDelegationSetOutput) SetDelegationSet(v *DelegationSet) *CreateReusableDelegationSetOutput {
7407	s.DelegationSet = v
7408	return s
7409}
7410
7411// SetLocation sets the Location field's value.
7412func (s *CreateReusableDelegationSetOutput) SetLocation(v string) *CreateReusableDelegationSetOutput {
7413	s.Location = &v
7414	return s
7415}
7416
7417// A complex type that contains information about the traffic policy that you
7418// want to create.
7419type CreateTrafficPolicyInput struct {
7420	_ struct{} `locationName:"CreateTrafficPolicyRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7421
7422	// (Optional) Any comments that you want to include about the traffic policy.
7423	Comment *string `type:"string"`
7424
7425	// The definition of this traffic policy in JSON format. For more information,
7426	// see Traffic Policy Document Format (https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html).
7427	//
7428	// Document is a required field
7429	Document *string `type:"string" required:"true"`
7430
7431	// The name of the traffic policy.
7432	//
7433	// Name is a required field
7434	Name *string `type:"string" required:"true"`
7435}
7436
7437// String returns the string representation
7438func (s CreateTrafficPolicyInput) String() string {
7439	return awsutil.Prettify(s)
7440}
7441
7442// GoString returns the string representation
7443func (s CreateTrafficPolicyInput) GoString() string {
7444	return s.String()
7445}
7446
7447// Validate inspects the fields of the type to determine if they are valid.
7448func (s *CreateTrafficPolicyInput) Validate() error {
7449	invalidParams := request.ErrInvalidParams{Context: "CreateTrafficPolicyInput"}
7450	if s.Document == nil {
7451		invalidParams.Add(request.NewErrParamRequired("Document"))
7452	}
7453	if s.Name == nil {
7454		invalidParams.Add(request.NewErrParamRequired("Name"))
7455	}
7456
7457	if invalidParams.Len() > 0 {
7458		return invalidParams
7459	}
7460	return nil
7461}
7462
7463// SetComment sets the Comment field's value.
7464func (s *CreateTrafficPolicyInput) SetComment(v string) *CreateTrafficPolicyInput {
7465	s.Comment = &v
7466	return s
7467}
7468
7469// SetDocument sets the Document field's value.
7470func (s *CreateTrafficPolicyInput) SetDocument(v string) *CreateTrafficPolicyInput {
7471	s.Document = &v
7472	return s
7473}
7474
7475// SetName sets the Name field's value.
7476func (s *CreateTrafficPolicyInput) SetName(v string) *CreateTrafficPolicyInput {
7477	s.Name = &v
7478	return s
7479}
7480
7481// A complex type that contains information about the resource record sets that
7482// you want to create based on a specified traffic policy.
7483type CreateTrafficPolicyInstanceInput struct {
7484	_ struct{} `locationName:"CreateTrafficPolicyInstanceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7485
7486	// The ID of the hosted zone that you want Amazon Route 53 to create resource
7487	// record sets in by using the configuration in a traffic policy.
7488	//
7489	// HostedZoneId is a required field
7490	HostedZoneId *string `type:"string" required:"true"`
7491
7492	// The domain name (such as example.com) or subdomain name (such as www.example.com)
7493	// for which Amazon Route 53 responds to DNS queries by using the resource record
7494	// sets that Route 53 creates for this traffic policy instance.
7495	//
7496	// Name is a required field
7497	Name *string `type:"string" required:"true"`
7498
7499	// (Optional) The TTL that you want Amazon Route 53 to assign to all of the
7500	// resource record sets that it creates in the specified hosted zone.
7501	//
7502	// TTL is a required field
7503	TTL *int64 `type:"long" required:"true"`
7504
7505	// The ID of the traffic policy that you want to use to create resource record
7506	// sets in the specified hosted zone.
7507	//
7508	// TrafficPolicyId is a required field
7509	TrafficPolicyId *string `min:"1" type:"string" required:"true"`
7510
7511	// The version of the traffic policy that you want to use to create resource
7512	// record sets in the specified hosted zone.
7513	//
7514	// TrafficPolicyVersion is a required field
7515	TrafficPolicyVersion *int64 `min:"1" type:"integer" required:"true"`
7516}
7517
7518// String returns the string representation
7519func (s CreateTrafficPolicyInstanceInput) String() string {
7520	return awsutil.Prettify(s)
7521}
7522
7523// GoString returns the string representation
7524func (s CreateTrafficPolicyInstanceInput) GoString() string {
7525	return s.String()
7526}
7527
7528// Validate inspects the fields of the type to determine if they are valid.
7529func (s *CreateTrafficPolicyInstanceInput) Validate() error {
7530	invalidParams := request.ErrInvalidParams{Context: "CreateTrafficPolicyInstanceInput"}
7531	if s.HostedZoneId == nil {
7532		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
7533	}
7534	if s.Name == nil {
7535		invalidParams.Add(request.NewErrParamRequired("Name"))
7536	}
7537	if s.TTL == nil {
7538		invalidParams.Add(request.NewErrParamRequired("TTL"))
7539	}
7540	if s.TrafficPolicyId == nil {
7541		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyId"))
7542	}
7543	if s.TrafficPolicyId != nil && len(*s.TrafficPolicyId) < 1 {
7544		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyId", 1))
7545	}
7546	if s.TrafficPolicyVersion == nil {
7547		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyVersion"))
7548	}
7549	if s.TrafficPolicyVersion != nil && *s.TrafficPolicyVersion < 1 {
7550		invalidParams.Add(request.NewErrParamMinValue("TrafficPolicyVersion", 1))
7551	}
7552
7553	if invalidParams.Len() > 0 {
7554		return invalidParams
7555	}
7556	return nil
7557}
7558
7559// SetHostedZoneId sets the HostedZoneId field's value.
7560func (s *CreateTrafficPolicyInstanceInput) SetHostedZoneId(v string) *CreateTrafficPolicyInstanceInput {
7561	s.HostedZoneId = &v
7562	return s
7563}
7564
7565// SetName sets the Name field's value.
7566func (s *CreateTrafficPolicyInstanceInput) SetName(v string) *CreateTrafficPolicyInstanceInput {
7567	s.Name = &v
7568	return s
7569}
7570
7571// SetTTL sets the TTL field's value.
7572func (s *CreateTrafficPolicyInstanceInput) SetTTL(v int64) *CreateTrafficPolicyInstanceInput {
7573	s.TTL = &v
7574	return s
7575}
7576
7577// SetTrafficPolicyId sets the TrafficPolicyId field's value.
7578func (s *CreateTrafficPolicyInstanceInput) SetTrafficPolicyId(v string) *CreateTrafficPolicyInstanceInput {
7579	s.TrafficPolicyId = &v
7580	return s
7581}
7582
7583// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
7584func (s *CreateTrafficPolicyInstanceInput) SetTrafficPolicyVersion(v int64) *CreateTrafficPolicyInstanceInput {
7585	s.TrafficPolicyVersion = &v
7586	return s
7587}
7588
7589// A complex type that contains the response information for the CreateTrafficPolicyInstance
7590// request.
7591type CreateTrafficPolicyInstanceOutput struct {
7592	_ struct{} `type:"structure"`
7593
7594	// A unique URL that represents a new traffic policy instance.
7595	//
7596	// Location is a required field
7597	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7598
7599	// A complex type that contains settings for the new traffic policy instance.
7600	//
7601	// TrafficPolicyInstance is a required field
7602	TrafficPolicyInstance *TrafficPolicyInstance `type:"structure" required:"true"`
7603}
7604
7605// String returns the string representation
7606func (s CreateTrafficPolicyInstanceOutput) String() string {
7607	return awsutil.Prettify(s)
7608}
7609
7610// GoString returns the string representation
7611func (s CreateTrafficPolicyInstanceOutput) GoString() string {
7612	return s.String()
7613}
7614
7615// SetLocation sets the Location field's value.
7616func (s *CreateTrafficPolicyInstanceOutput) SetLocation(v string) *CreateTrafficPolicyInstanceOutput {
7617	s.Location = &v
7618	return s
7619}
7620
7621// SetTrafficPolicyInstance sets the TrafficPolicyInstance field's value.
7622func (s *CreateTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPolicyInstance) *CreateTrafficPolicyInstanceOutput {
7623	s.TrafficPolicyInstance = v
7624	return s
7625}
7626
7627// A complex type that contains the response information for the CreateTrafficPolicy
7628// request.
7629type CreateTrafficPolicyOutput struct {
7630	_ struct{} `type:"structure"`
7631
7632	// A unique URL that represents a new traffic policy.
7633	//
7634	// Location is a required field
7635	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7636
7637	// A complex type that contains settings for the new traffic policy.
7638	//
7639	// TrafficPolicy is a required field
7640	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
7641}
7642
7643// String returns the string representation
7644func (s CreateTrafficPolicyOutput) String() string {
7645	return awsutil.Prettify(s)
7646}
7647
7648// GoString returns the string representation
7649func (s CreateTrafficPolicyOutput) GoString() string {
7650	return s.String()
7651}
7652
7653// SetLocation sets the Location field's value.
7654func (s *CreateTrafficPolicyOutput) SetLocation(v string) *CreateTrafficPolicyOutput {
7655	s.Location = &v
7656	return s
7657}
7658
7659// SetTrafficPolicy sets the TrafficPolicy field's value.
7660func (s *CreateTrafficPolicyOutput) SetTrafficPolicy(v *TrafficPolicy) *CreateTrafficPolicyOutput {
7661	s.TrafficPolicy = v
7662	return s
7663}
7664
7665// A complex type that contains information about the traffic policy that you
7666// want to create a new version for.
7667type CreateTrafficPolicyVersionInput struct {
7668	_ struct{} `locationName:"CreateTrafficPolicyVersionRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7669
7670	// The comment that you specified in the CreateTrafficPolicyVersion request,
7671	// if any.
7672	Comment *string `type:"string"`
7673
7674	// The definition of this version of the traffic policy, in JSON format. You
7675	// specified the JSON in the CreateTrafficPolicyVersion request. For more information
7676	// about the JSON format, see CreateTrafficPolicy (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateTrafficPolicy.html).
7677	//
7678	// Document is a required field
7679	Document *string `type:"string" required:"true"`
7680
7681	// The ID of the traffic policy for which you want to create a new version.
7682	//
7683	// Id is a required field
7684	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
7685}
7686
7687// String returns the string representation
7688func (s CreateTrafficPolicyVersionInput) String() string {
7689	return awsutil.Prettify(s)
7690}
7691
7692// GoString returns the string representation
7693func (s CreateTrafficPolicyVersionInput) GoString() string {
7694	return s.String()
7695}
7696
7697// Validate inspects the fields of the type to determine if they are valid.
7698func (s *CreateTrafficPolicyVersionInput) Validate() error {
7699	invalidParams := request.ErrInvalidParams{Context: "CreateTrafficPolicyVersionInput"}
7700	if s.Document == nil {
7701		invalidParams.Add(request.NewErrParamRequired("Document"))
7702	}
7703	if s.Id == nil {
7704		invalidParams.Add(request.NewErrParamRequired("Id"))
7705	}
7706	if s.Id != nil && len(*s.Id) < 1 {
7707		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7708	}
7709
7710	if invalidParams.Len() > 0 {
7711		return invalidParams
7712	}
7713	return nil
7714}
7715
7716// SetComment sets the Comment field's value.
7717func (s *CreateTrafficPolicyVersionInput) SetComment(v string) *CreateTrafficPolicyVersionInput {
7718	s.Comment = &v
7719	return s
7720}
7721
7722// SetDocument sets the Document field's value.
7723func (s *CreateTrafficPolicyVersionInput) SetDocument(v string) *CreateTrafficPolicyVersionInput {
7724	s.Document = &v
7725	return s
7726}
7727
7728// SetId sets the Id field's value.
7729func (s *CreateTrafficPolicyVersionInput) SetId(v string) *CreateTrafficPolicyVersionInput {
7730	s.Id = &v
7731	return s
7732}
7733
7734// A complex type that contains the response information for the CreateTrafficPolicyVersion
7735// request.
7736type CreateTrafficPolicyVersionOutput struct {
7737	_ struct{} `type:"structure"`
7738
7739	// A unique URL that represents a new traffic policy version.
7740	//
7741	// Location is a required field
7742	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7743
7744	// A complex type that contains settings for the new version of the traffic
7745	// policy.
7746	//
7747	// TrafficPolicy is a required field
7748	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
7749}
7750
7751// String returns the string representation
7752func (s CreateTrafficPolicyVersionOutput) String() string {
7753	return awsutil.Prettify(s)
7754}
7755
7756// GoString returns the string representation
7757func (s CreateTrafficPolicyVersionOutput) GoString() string {
7758	return s.String()
7759}
7760
7761// SetLocation sets the Location field's value.
7762func (s *CreateTrafficPolicyVersionOutput) SetLocation(v string) *CreateTrafficPolicyVersionOutput {
7763	s.Location = &v
7764	return s
7765}
7766
7767// SetTrafficPolicy sets the TrafficPolicy field's value.
7768func (s *CreateTrafficPolicyVersionOutput) SetTrafficPolicy(v *TrafficPolicy) *CreateTrafficPolicyVersionOutput {
7769	s.TrafficPolicy = v
7770	return s
7771}
7772
7773// A complex type that contains information about the request to authorize associating
7774// a VPC with your private hosted zone. Authorization is only required when
7775// a private hosted zone and a VPC were created by using different accounts.
7776type CreateVPCAssociationAuthorizationInput struct {
7777	_ struct{} `locationName:"CreateVPCAssociationAuthorizationRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7778
7779	// The ID of the private hosted zone that you want to authorize associating
7780	// a VPC with.
7781	//
7782	// HostedZoneId is a required field
7783	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7784
7785	// A complex type that contains the VPC ID and region for the VPC that you want
7786	// to authorize associating with your hosted zone.
7787	//
7788	// VPC is a required field
7789	VPC *VPC `type:"structure" required:"true"`
7790}
7791
7792// String returns the string representation
7793func (s CreateVPCAssociationAuthorizationInput) String() string {
7794	return awsutil.Prettify(s)
7795}
7796
7797// GoString returns the string representation
7798func (s CreateVPCAssociationAuthorizationInput) GoString() string {
7799	return s.String()
7800}
7801
7802// Validate inspects the fields of the type to determine if they are valid.
7803func (s *CreateVPCAssociationAuthorizationInput) Validate() error {
7804	invalidParams := request.ErrInvalidParams{Context: "CreateVPCAssociationAuthorizationInput"}
7805	if s.HostedZoneId == nil {
7806		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
7807	}
7808	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
7809		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
7810	}
7811	if s.VPC == nil {
7812		invalidParams.Add(request.NewErrParamRequired("VPC"))
7813	}
7814	if s.VPC != nil {
7815		if err := s.VPC.Validate(); err != nil {
7816			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
7817		}
7818	}
7819
7820	if invalidParams.Len() > 0 {
7821		return invalidParams
7822	}
7823	return nil
7824}
7825
7826// SetHostedZoneId sets the HostedZoneId field's value.
7827func (s *CreateVPCAssociationAuthorizationInput) SetHostedZoneId(v string) *CreateVPCAssociationAuthorizationInput {
7828	s.HostedZoneId = &v
7829	return s
7830}
7831
7832// SetVPC sets the VPC field's value.
7833func (s *CreateVPCAssociationAuthorizationInput) SetVPC(v *VPC) *CreateVPCAssociationAuthorizationInput {
7834	s.VPC = v
7835	return s
7836}
7837
7838// A complex type that contains the response information from a CreateVPCAssociationAuthorization
7839// request.
7840type CreateVPCAssociationAuthorizationOutput struct {
7841	_ struct{} `type:"structure"`
7842
7843	// The ID of the hosted zone that you authorized associating a VPC with.
7844	//
7845	// HostedZoneId is a required field
7846	HostedZoneId *string `type:"string" required:"true"`
7847
7848	// The VPC that you authorized associating with a hosted zone.
7849	//
7850	// VPC is a required field
7851	VPC *VPC `type:"structure" required:"true"`
7852}
7853
7854// String returns the string representation
7855func (s CreateVPCAssociationAuthorizationOutput) String() string {
7856	return awsutil.Prettify(s)
7857}
7858
7859// GoString returns the string representation
7860func (s CreateVPCAssociationAuthorizationOutput) GoString() string {
7861	return s.String()
7862}
7863
7864// SetHostedZoneId sets the HostedZoneId field's value.
7865func (s *CreateVPCAssociationAuthorizationOutput) SetHostedZoneId(v string) *CreateVPCAssociationAuthorizationOutput {
7866	s.HostedZoneId = &v
7867	return s
7868}
7869
7870// SetVPC sets the VPC field's value.
7871func (s *CreateVPCAssociationAuthorizationOutput) SetVPC(v *VPC) *CreateVPCAssociationAuthorizationOutput {
7872	s.VPC = v
7873	return s
7874}
7875
7876// A complex type that lists the name servers in a delegation set, as well as
7877// the CallerReference and the ID for the delegation set.
7878type DelegationSet struct {
7879	_ struct{} `type:"structure"`
7880
7881	// The value that you specified for CallerReference when you created the reusable
7882	// delegation set.
7883	CallerReference *string `min:"1" type:"string"`
7884
7885	// The ID that Amazon Route 53 assigns to a reusable delegation set.
7886	Id *string `type:"string"`
7887
7888	// A complex type that contains a list of the authoritative name servers for
7889	// a hosted zone or for a reusable delegation set.
7890	//
7891	// NameServers is a required field
7892	NameServers []*string `locationNameList:"NameServer" min:"1" type:"list" required:"true"`
7893}
7894
7895// String returns the string representation
7896func (s DelegationSet) String() string {
7897	return awsutil.Prettify(s)
7898}
7899
7900// GoString returns the string representation
7901func (s DelegationSet) GoString() string {
7902	return s.String()
7903}
7904
7905// SetCallerReference sets the CallerReference field's value.
7906func (s *DelegationSet) SetCallerReference(v string) *DelegationSet {
7907	s.CallerReference = &v
7908	return s
7909}
7910
7911// SetId sets the Id field's value.
7912func (s *DelegationSet) SetId(v string) *DelegationSet {
7913	s.Id = &v
7914	return s
7915}
7916
7917// SetNameServers sets the NameServers field's value.
7918func (s *DelegationSet) SetNameServers(v []*string) *DelegationSet {
7919	s.NameServers = v
7920	return s
7921}
7922
7923// This action deletes a health check.
7924type DeleteHealthCheckInput struct {
7925	_ struct{} `locationName:"DeleteHealthCheckRequest" type:"structure"`
7926
7927	// The ID of the health check that you want to delete.
7928	//
7929	// HealthCheckId is a required field
7930	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
7931}
7932
7933// String returns the string representation
7934func (s DeleteHealthCheckInput) String() string {
7935	return awsutil.Prettify(s)
7936}
7937
7938// GoString returns the string representation
7939func (s DeleteHealthCheckInput) GoString() string {
7940	return s.String()
7941}
7942
7943// Validate inspects the fields of the type to determine if they are valid.
7944func (s *DeleteHealthCheckInput) Validate() error {
7945	invalidParams := request.ErrInvalidParams{Context: "DeleteHealthCheckInput"}
7946	if s.HealthCheckId == nil {
7947		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
7948	}
7949	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
7950		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
7951	}
7952
7953	if invalidParams.Len() > 0 {
7954		return invalidParams
7955	}
7956	return nil
7957}
7958
7959// SetHealthCheckId sets the HealthCheckId field's value.
7960func (s *DeleteHealthCheckInput) SetHealthCheckId(v string) *DeleteHealthCheckInput {
7961	s.HealthCheckId = &v
7962	return s
7963}
7964
7965// An empty element.
7966type DeleteHealthCheckOutput struct {
7967	_ struct{} `type:"structure"`
7968}
7969
7970// String returns the string representation
7971func (s DeleteHealthCheckOutput) String() string {
7972	return awsutil.Prettify(s)
7973}
7974
7975// GoString returns the string representation
7976func (s DeleteHealthCheckOutput) GoString() string {
7977	return s.String()
7978}
7979
7980// A request to delete a hosted zone.
7981type DeleteHostedZoneInput struct {
7982	_ struct{} `locationName:"DeleteHostedZoneRequest" type:"structure"`
7983
7984	// The ID of the hosted zone you want to delete.
7985	//
7986	// Id is a required field
7987	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7988}
7989
7990// String returns the string representation
7991func (s DeleteHostedZoneInput) String() string {
7992	return awsutil.Prettify(s)
7993}
7994
7995// GoString returns the string representation
7996func (s DeleteHostedZoneInput) GoString() string {
7997	return s.String()
7998}
7999
8000// Validate inspects the fields of the type to determine if they are valid.
8001func (s *DeleteHostedZoneInput) Validate() error {
8002	invalidParams := request.ErrInvalidParams{Context: "DeleteHostedZoneInput"}
8003	if s.Id == nil {
8004		invalidParams.Add(request.NewErrParamRequired("Id"))
8005	}
8006	if s.Id != nil && len(*s.Id) < 1 {
8007		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8008	}
8009
8010	if invalidParams.Len() > 0 {
8011		return invalidParams
8012	}
8013	return nil
8014}
8015
8016// SetId sets the Id field's value.
8017func (s *DeleteHostedZoneInput) SetId(v string) *DeleteHostedZoneInput {
8018	s.Id = &v
8019	return s
8020}
8021
8022// A complex type that contains the response to a DeleteHostedZone request.
8023type DeleteHostedZoneOutput struct {
8024	_ struct{} `type:"structure"`
8025
8026	// A complex type that contains the ID, the status, and the date and time of
8027	// a request to delete a hosted zone.
8028	//
8029	// ChangeInfo is a required field
8030	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
8031}
8032
8033// String returns the string representation
8034func (s DeleteHostedZoneOutput) String() string {
8035	return awsutil.Prettify(s)
8036}
8037
8038// GoString returns the string representation
8039func (s DeleteHostedZoneOutput) GoString() string {
8040	return s.String()
8041}
8042
8043// SetChangeInfo sets the ChangeInfo field's value.
8044func (s *DeleteHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *DeleteHostedZoneOutput {
8045	s.ChangeInfo = v
8046	return s
8047}
8048
8049type DeleteQueryLoggingConfigInput struct {
8050	_ struct{} `locationName:"DeleteQueryLoggingConfigRequest" type:"structure"`
8051
8052	// The ID of the configuration that you want to delete.
8053	//
8054	// Id is a required field
8055	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
8056}
8057
8058// String returns the string representation
8059func (s DeleteQueryLoggingConfigInput) String() string {
8060	return awsutil.Prettify(s)
8061}
8062
8063// GoString returns the string representation
8064func (s DeleteQueryLoggingConfigInput) GoString() string {
8065	return s.String()
8066}
8067
8068// Validate inspects the fields of the type to determine if they are valid.
8069func (s *DeleteQueryLoggingConfigInput) Validate() error {
8070	invalidParams := request.ErrInvalidParams{Context: "DeleteQueryLoggingConfigInput"}
8071	if s.Id == nil {
8072		invalidParams.Add(request.NewErrParamRequired("Id"))
8073	}
8074	if s.Id != nil && len(*s.Id) < 1 {
8075		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8076	}
8077
8078	if invalidParams.Len() > 0 {
8079		return invalidParams
8080	}
8081	return nil
8082}
8083
8084// SetId sets the Id field's value.
8085func (s *DeleteQueryLoggingConfigInput) SetId(v string) *DeleteQueryLoggingConfigInput {
8086	s.Id = &v
8087	return s
8088}
8089
8090type DeleteQueryLoggingConfigOutput struct {
8091	_ struct{} `type:"structure"`
8092}
8093
8094// String returns the string representation
8095func (s DeleteQueryLoggingConfigOutput) String() string {
8096	return awsutil.Prettify(s)
8097}
8098
8099// GoString returns the string representation
8100func (s DeleteQueryLoggingConfigOutput) GoString() string {
8101	return s.String()
8102}
8103
8104// A request to delete a reusable delegation set.
8105type DeleteReusableDelegationSetInput struct {
8106	_ struct{} `locationName:"DeleteReusableDelegationSetRequest" type:"structure"`
8107
8108	// The ID of the reusable delegation set that you want to delete.
8109	//
8110	// Id is a required field
8111	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8112}
8113
8114// String returns the string representation
8115func (s DeleteReusableDelegationSetInput) String() string {
8116	return awsutil.Prettify(s)
8117}
8118
8119// GoString returns the string representation
8120func (s DeleteReusableDelegationSetInput) GoString() string {
8121	return s.String()
8122}
8123
8124// Validate inspects the fields of the type to determine if they are valid.
8125func (s *DeleteReusableDelegationSetInput) Validate() error {
8126	invalidParams := request.ErrInvalidParams{Context: "DeleteReusableDelegationSetInput"}
8127	if s.Id == nil {
8128		invalidParams.Add(request.NewErrParamRequired("Id"))
8129	}
8130	if s.Id != nil && len(*s.Id) < 1 {
8131		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8132	}
8133
8134	if invalidParams.Len() > 0 {
8135		return invalidParams
8136	}
8137	return nil
8138}
8139
8140// SetId sets the Id field's value.
8141func (s *DeleteReusableDelegationSetInput) SetId(v string) *DeleteReusableDelegationSetInput {
8142	s.Id = &v
8143	return s
8144}
8145
8146// An empty element.
8147type DeleteReusableDelegationSetOutput struct {
8148	_ struct{} `type:"structure"`
8149}
8150
8151// String returns the string representation
8152func (s DeleteReusableDelegationSetOutput) String() string {
8153	return awsutil.Prettify(s)
8154}
8155
8156// GoString returns the string representation
8157func (s DeleteReusableDelegationSetOutput) GoString() string {
8158	return s.String()
8159}
8160
8161// A request to delete a specified traffic policy version.
8162type DeleteTrafficPolicyInput struct {
8163	_ struct{} `locationName:"DeleteTrafficPolicyRequest" type:"structure"`
8164
8165	// The ID of the traffic policy that you want to delete.
8166	//
8167	// Id is a required field
8168	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
8169
8170	// The version number of the traffic policy that you want to delete.
8171	//
8172	// Version is a required field
8173	Version *int64 `location:"uri" locationName:"Version" min:"1" type:"integer" required:"true"`
8174}
8175
8176// String returns the string representation
8177func (s DeleteTrafficPolicyInput) String() string {
8178	return awsutil.Prettify(s)
8179}
8180
8181// GoString returns the string representation
8182func (s DeleteTrafficPolicyInput) GoString() string {
8183	return s.String()
8184}
8185
8186// Validate inspects the fields of the type to determine if they are valid.
8187func (s *DeleteTrafficPolicyInput) Validate() error {
8188	invalidParams := request.ErrInvalidParams{Context: "DeleteTrafficPolicyInput"}
8189	if s.Id == nil {
8190		invalidParams.Add(request.NewErrParamRequired("Id"))
8191	}
8192	if s.Id != nil && len(*s.Id) < 1 {
8193		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8194	}
8195	if s.Version == nil {
8196		invalidParams.Add(request.NewErrParamRequired("Version"))
8197	}
8198	if s.Version != nil && *s.Version < 1 {
8199		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
8200	}
8201
8202	if invalidParams.Len() > 0 {
8203		return invalidParams
8204	}
8205	return nil
8206}
8207
8208// SetId sets the Id field's value.
8209func (s *DeleteTrafficPolicyInput) SetId(v string) *DeleteTrafficPolicyInput {
8210	s.Id = &v
8211	return s
8212}
8213
8214// SetVersion sets the Version field's value.
8215func (s *DeleteTrafficPolicyInput) SetVersion(v int64) *DeleteTrafficPolicyInput {
8216	s.Version = &v
8217	return s
8218}
8219
8220// A request to delete a specified traffic policy instance.
8221type DeleteTrafficPolicyInstanceInput struct {
8222	_ struct{} `locationName:"DeleteTrafficPolicyInstanceRequest" type:"structure"`
8223
8224	// The ID of the traffic policy instance that you want to delete.
8225	//
8226	// When you delete a traffic policy instance, Amazon Route 53 also deletes all
8227	// of the resource record sets that were created when you created the traffic
8228	// policy instance.
8229	//
8230	// Id is a required field
8231	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
8232}
8233
8234// String returns the string representation
8235func (s DeleteTrafficPolicyInstanceInput) String() string {
8236	return awsutil.Prettify(s)
8237}
8238
8239// GoString returns the string representation
8240func (s DeleteTrafficPolicyInstanceInput) GoString() string {
8241	return s.String()
8242}
8243
8244// Validate inspects the fields of the type to determine if they are valid.
8245func (s *DeleteTrafficPolicyInstanceInput) Validate() error {
8246	invalidParams := request.ErrInvalidParams{Context: "DeleteTrafficPolicyInstanceInput"}
8247	if s.Id == nil {
8248		invalidParams.Add(request.NewErrParamRequired("Id"))
8249	}
8250	if s.Id != nil && len(*s.Id) < 1 {
8251		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8252	}
8253
8254	if invalidParams.Len() > 0 {
8255		return invalidParams
8256	}
8257	return nil
8258}
8259
8260// SetId sets the Id field's value.
8261func (s *DeleteTrafficPolicyInstanceInput) SetId(v string) *DeleteTrafficPolicyInstanceInput {
8262	s.Id = &v
8263	return s
8264}
8265
8266// An empty element.
8267type DeleteTrafficPolicyInstanceOutput struct {
8268	_ struct{} `type:"structure"`
8269}
8270
8271// String returns the string representation
8272func (s DeleteTrafficPolicyInstanceOutput) String() string {
8273	return awsutil.Prettify(s)
8274}
8275
8276// GoString returns the string representation
8277func (s DeleteTrafficPolicyInstanceOutput) GoString() string {
8278	return s.String()
8279}
8280
8281// An empty element.
8282type DeleteTrafficPolicyOutput struct {
8283	_ struct{} `type:"structure"`
8284}
8285
8286// String returns the string representation
8287func (s DeleteTrafficPolicyOutput) String() string {
8288	return awsutil.Prettify(s)
8289}
8290
8291// GoString returns the string representation
8292func (s DeleteTrafficPolicyOutput) GoString() string {
8293	return s.String()
8294}
8295
8296// A complex type that contains information about the request to remove authorization
8297// to associate a VPC that was created by one AWS account with a hosted zone
8298// that was created with a different AWS account.
8299type DeleteVPCAssociationAuthorizationInput struct {
8300	_ struct{} `locationName:"DeleteVPCAssociationAuthorizationRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
8301
8302	// When removing authorization to associate a VPC that was created by one AWS
8303	// account with a hosted zone that was created with a different AWS account,
8304	// the ID of the hosted zone.
8305	//
8306	// HostedZoneId is a required field
8307	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8308
8309	// When removing authorization to associate a VPC that was created by one AWS
8310	// account with a hosted zone that was created with a different AWS account,
8311	// a complex type that includes the ID and region of the VPC.
8312	//
8313	// VPC is a required field
8314	VPC *VPC `type:"structure" required:"true"`
8315}
8316
8317// String returns the string representation
8318func (s DeleteVPCAssociationAuthorizationInput) String() string {
8319	return awsutil.Prettify(s)
8320}
8321
8322// GoString returns the string representation
8323func (s DeleteVPCAssociationAuthorizationInput) GoString() string {
8324	return s.String()
8325}
8326
8327// Validate inspects the fields of the type to determine if they are valid.
8328func (s *DeleteVPCAssociationAuthorizationInput) Validate() error {
8329	invalidParams := request.ErrInvalidParams{Context: "DeleteVPCAssociationAuthorizationInput"}
8330	if s.HostedZoneId == nil {
8331		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
8332	}
8333	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
8334		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
8335	}
8336	if s.VPC == nil {
8337		invalidParams.Add(request.NewErrParamRequired("VPC"))
8338	}
8339	if s.VPC != nil {
8340		if err := s.VPC.Validate(); err != nil {
8341			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
8342		}
8343	}
8344
8345	if invalidParams.Len() > 0 {
8346		return invalidParams
8347	}
8348	return nil
8349}
8350
8351// SetHostedZoneId sets the HostedZoneId field's value.
8352func (s *DeleteVPCAssociationAuthorizationInput) SetHostedZoneId(v string) *DeleteVPCAssociationAuthorizationInput {
8353	s.HostedZoneId = &v
8354	return s
8355}
8356
8357// SetVPC sets the VPC field's value.
8358func (s *DeleteVPCAssociationAuthorizationInput) SetVPC(v *VPC) *DeleteVPCAssociationAuthorizationInput {
8359	s.VPC = v
8360	return s
8361}
8362
8363// Empty response for the request.
8364type DeleteVPCAssociationAuthorizationOutput struct {
8365	_ struct{} `type:"structure"`
8366}
8367
8368// String returns the string representation
8369func (s DeleteVPCAssociationAuthorizationOutput) String() string {
8370	return awsutil.Prettify(s)
8371}
8372
8373// GoString returns the string representation
8374func (s DeleteVPCAssociationAuthorizationOutput) GoString() string {
8375	return s.String()
8376}
8377
8378// For the metric that the CloudWatch alarm is associated with, a complex type
8379// that contains information about one dimension.
8380type Dimension struct {
8381	_ struct{} `type:"structure"`
8382
8383	// For the metric that the CloudWatch alarm is associated with, the name of
8384	// one dimension.
8385	//
8386	// Name is a required field
8387	Name *string `min:"1" type:"string" required:"true"`
8388
8389	// For the metric that the CloudWatch alarm is associated with, the value of
8390	// one dimension.
8391	//
8392	// Value is a required field
8393	Value *string `min:"1" type:"string" required:"true"`
8394}
8395
8396// String returns the string representation
8397func (s Dimension) String() string {
8398	return awsutil.Prettify(s)
8399}
8400
8401// GoString returns the string representation
8402func (s Dimension) GoString() string {
8403	return s.String()
8404}
8405
8406// SetName sets the Name field's value.
8407func (s *Dimension) SetName(v string) *Dimension {
8408	s.Name = &v
8409	return s
8410}
8411
8412// SetValue sets the Value field's value.
8413func (s *Dimension) SetValue(v string) *Dimension {
8414	s.Value = &v
8415	return s
8416}
8417
8418// A complex type that contains information about the VPC that you want to disassociate
8419// from a specified private hosted zone.
8420type DisassociateVPCFromHostedZoneInput struct {
8421	_ struct{} `locationName:"DisassociateVPCFromHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
8422
8423	// Optional: A comment about the disassociation request.
8424	Comment *string `type:"string"`
8425
8426	// The ID of the private hosted zone that you want to disassociate a VPC from.
8427	//
8428	// HostedZoneId is a required field
8429	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8430
8431	// A complex type that contains information about the VPC that you're disassociating
8432	// from the specified hosted zone.
8433	//
8434	// VPC is a required field
8435	VPC *VPC `type:"structure" required:"true"`
8436}
8437
8438// String returns the string representation
8439func (s DisassociateVPCFromHostedZoneInput) String() string {
8440	return awsutil.Prettify(s)
8441}
8442
8443// GoString returns the string representation
8444func (s DisassociateVPCFromHostedZoneInput) GoString() string {
8445	return s.String()
8446}
8447
8448// Validate inspects the fields of the type to determine if they are valid.
8449func (s *DisassociateVPCFromHostedZoneInput) Validate() error {
8450	invalidParams := request.ErrInvalidParams{Context: "DisassociateVPCFromHostedZoneInput"}
8451	if s.HostedZoneId == nil {
8452		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
8453	}
8454	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
8455		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
8456	}
8457	if s.VPC == nil {
8458		invalidParams.Add(request.NewErrParamRequired("VPC"))
8459	}
8460	if s.VPC != nil {
8461		if err := s.VPC.Validate(); err != nil {
8462			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
8463		}
8464	}
8465
8466	if invalidParams.Len() > 0 {
8467		return invalidParams
8468	}
8469	return nil
8470}
8471
8472// SetComment sets the Comment field's value.
8473func (s *DisassociateVPCFromHostedZoneInput) SetComment(v string) *DisassociateVPCFromHostedZoneInput {
8474	s.Comment = &v
8475	return s
8476}
8477
8478// SetHostedZoneId sets the HostedZoneId field's value.
8479func (s *DisassociateVPCFromHostedZoneInput) SetHostedZoneId(v string) *DisassociateVPCFromHostedZoneInput {
8480	s.HostedZoneId = &v
8481	return s
8482}
8483
8484// SetVPC sets the VPC field's value.
8485func (s *DisassociateVPCFromHostedZoneInput) SetVPC(v *VPC) *DisassociateVPCFromHostedZoneInput {
8486	s.VPC = v
8487	return s
8488}
8489
8490// A complex type that contains the response information for the disassociate
8491// request.
8492type DisassociateVPCFromHostedZoneOutput struct {
8493	_ struct{} `type:"structure"`
8494
8495	// A complex type that describes the changes made to the specified private hosted
8496	// zone.
8497	//
8498	// ChangeInfo is a required field
8499	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
8500}
8501
8502// String returns the string representation
8503func (s DisassociateVPCFromHostedZoneOutput) String() string {
8504	return awsutil.Prettify(s)
8505}
8506
8507// GoString returns the string representation
8508func (s DisassociateVPCFromHostedZoneOutput) GoString() string {
8509	return s.String()
8510}
8511
8512// SetChangeInfo sets the ChangeInfo field's value.
8513func (s *DisassociateVPCFromHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *DisassociateVPCFromHostedZoneOutput {
8514	s.ChangeInfo = v
8515	return s
8516}
8517
8518// A complex type that contains information about a geographic location.
8519type GeoLocation struct {
8520	_ struct{} `type:"structure"`
8521
8522	// The two-letter code for the continent.
8523	//
8524	// Valid values: AF | AN | AS | EU | OC | NA | SA
8525	//
8526	// Constraint: Specifying ContinentCode with either CountryCode or SubdivisionCode
8527	// returns an InvalidInput error.
8528	ContinentCode *string `min:"2" type:"string"`
8529
8530	// The two-letter code for the country.
8531	CountryCode *string `min:"1" type:"string"`
8532
8533	// The code for the subdivision. Route 53 currently supports only states in
8534	// the United States.
8535	SubdivisionCode *string `min:"1" type:"string"`
8536}
8537
8538// String returns the string representation
8539func (s GeoLocation) String() string {
8540	return awsutil.Prettify(s)
8541}
8542
8543// GoString returns the string representation
8544func (s GeoLocation) GoString() string {
8545	return s.String()
8546}
8547
8548// Validate inspects the fields of the type to determine if they are valid.
8549func (s *GeoLocation) Validate() error {
8550	invalidParams := request.ErrInvalidParams{Context: "GeoLocation"}
8551	if s.ContinentCode != nil && len(*s.ContinentCode) < 2 {
8552		invalidParams.Add(request.NewErrParamMinLen("ContinentCode", 2))
8553	}
8554	if s.CountryCode != nil && len(*s.CountryCode) < 1 {
8555		invalidParams.Add(request.NewErrParamMinLen("CountryCode", 1))
8556	}
8557	if s.SubdivisionCode != nil && len(*s.SubdivisionCode) < 1 {
8558		invalidParams.Add(request.NewErrParamMinLen("SubdivisionCode", 1))
8559	}
8560
8561	if invalidParams.Len() > 0 {
8562		return invalidParams
8563	}
8564	return nil
8565}
8566
8567// SetContinentCode sets the ContinentCode field's value.
8568func (s *GeoLocation) SetContinentCode(v string) *GeoLocation {
8569	s.ContinentCode = &v
8570	return s
8571}
8572
8573// SetCountryCode sets the CountryCode field's value.
8574func (s *GeoLocation) SetCountryCode(v string) *GeoLocation {
8575	s.CountryCode = &v
8576	return s
8577}
8578
8579// SetSubdivisionCode sets the SubdivisionCode field's value.
8580func (s *GeoLocation) SetSubdivisionCode(v string) *GeoLocation {
8581	s.SubdivisionCode = &v
8582	return s
8583}
8584
8585// A complex type that contains the codes and full continent, country, and subdivision
8586// names for the specified geolocation code.
8587type GeoLocationDetails struct {
8588	_ struct{} `type:"structure"`
8589
8590	// The two-letter code for the continent.
8591	ContinentCode *string `min:"2" type:"string"`
8592
8593	// The full name of the continent.
8594	ContinentName *string `min:"1" type:"string"`
8595
8596	// The two-letter code for the country.
8597	CountryCode *string `min:"1" type:"string"`
8598
8599	// The name of the country.
8600	CountryName *string `min:"1" type:"string"`
8601
8602	// The code for the subdivision. Route 53 currently supports only states in
8603	// the United States.
8604	SubdivisionCode *string `min:"1" type:"string"`
8605
8606	// The full name of the subdivision. Route 53 currently supports only states
8607	// in the United States.
8608	SubdivisionName *string `min:"1" type:"string"`
8609}
8610
8611// String returns the string representation
8612func (s GeoLocationDetails) String() string {
8613	return awsutil.Prettify(s)
8614}
8615
8616// GoString returns the string representation
8617func (s GeoLocationDetails) GoString() string {
8618	return s.String()
8619}
8620
8621// SetContinentCode sets the ContinentCode field's value.
8622func (s *GeoLocationDetails) SetContinentCode(v string) *GeoLocationDetails {
8623	s.ContinentCode = &v
8624	return s
8625}
8626
8627// SetContinentName sets the ContinentName field's value.
8628func (s *GeoLocationDetails) SetContinentName(v string) *GeoLocationDetails {
8629	s.ContinentName = &v
8630	return s
8631}
8632
8633// SetCountryCode sets the CountryCode field's value.
8634func (s *GeoLocationDetails) SetCountryCode(v string) *GeoLocationDetails {
8635	s.CountryCode = &v
8636	return s
8637}
8638
8639// SetCountryName sets the CountryName field's value.
8640func (s *GeoLocationDetails) SetCountryName(v string) *GeoLocationDetails {
8641	s.CountryName = &v
8642	return s
8643}
8644
8645// SetSubdivisionCode sets the SubdivisionCode field's value.
8646func (s *GeoLocationDetails) SetSubdivisionCode(v string) *GeoLocationDetails {
8647	s.SubdivisionCode = &v
8648	return s
8649}
8650
8651// SetSubdivisionName sets the SubdivisionName field's value.
8652func (s *GeoLocationDetails) SetSubdivisionName(v string) *GeoLocationDetails {
8653	s.SubdivisionName = &v
8654	return s
8655}
8656
8657// A complex type that contains information about the request to create a hosted
8658// zone.
8659type GetAccountLimitInput struct {
8660	_ struct{} `locationName:"GetAccountLimitRequest" type:"structure"`
8661
8662	// The limit that you want to get. Valid values include the following:
8663	//
8664	//    * MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that
8665	//    you can create using the current account.
8666	//
8667	//    * MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you
8668	//    can create using the current account.
8669	//
8670	//    * MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable
8671	//    delegation sets that you can create using the current account.
8672	//
8673	//    * MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies
8674	//    that you can create using the current account.
8675	//
8676	//    * MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic
8677	//    policy instances that you can create using the current account. (Traffic
8678	//    policy instances are referred to as traffic flow policy records in the
8679	//    Amazon Route 53 console.)
8680	//
8681	// Type is a required field
8682	Type *string `location:"uri" locationName:"Type" type:"string" required:"true" enum:"AccountLimitType"`
8683}
8684
8685// String returns the string representation
8686func (s GetAccountLimitInput) String() string {
8687	return awsutil.Prettify(s)
8688}
8689
8690// GoString returns the string representation
8691func (s GetAccountLimitInput) GoString() string {
8692	return s.String()
8693}
8694
8695// Validate inspects the fields of the type to determine if they are valid.
8696func (s *GetAccountLimitInput) Validate() error {
8697	invalidParams := request.ErrInvalidParams{Context: "GetAccountLimitInput"}
8698	if s.Type == nil {
8699		invalidParams.Add(request.NewErrParamRequired("Type"))
8700	}
8701	if s.Type != nil && len(*s.Type) < 1 {
8702		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
8703	}
8704
8705	if invalidParams.Len() > 0 {
8706		return invalidParams
8707	}
8708	return nil
8709}
8710
8711// SetType sets the Type field's value.
8712func (s *GetAccountLimitInput) SetType(v string) *GetAccountLimitInput {
8713	s.Type = &v
8714	return s
8715}
8716
8717// A complex type that contains the requested limit.
8718type GetAccountLimitOutput struct {
8719	_ struct{} `type:"structure"`
8720
8721	// The current number of entities that you have created of the specified type.
8722	// For example, if you specified MAX_HEALTH_CHECKS_BY_OWNER for the value of
8723	// Type in the request, the value of Count is the current number of health checks
8724	// that you have created using the current account.
8725	//
8726	// Count is a required field
8727	Count *int64 `type:"long" required:"true"`
8728
8729	// The current setting for the specified limit. For example, if you specified
8730	// MAX_HEALTH_CHECKS_BY_OWNER for the value of Type in the request, the value
8731	// of Limit is the maximum number of health checks that you can create using
8732	// the current account.
8733	//
8734	// Limit is a required field
8735	Limit *AccountLimit `type:"structure" required:"true"`
8736}
8737
8738// String returns the string representation
8739func (s GetAccountLimitOutput) String() string {
8740	return awsutil.Prettify(s)
8741}
8742
8743// GoString returns the string representation
8744func (s GetAccountLimitOutput) GoString() string {
8745	return s.String()
8746}
8747
8748// SetCount sets the Count field's value.
8749func (s *GetAccountLimitOutput) SetCount(v int64) *GetAccountLimitOutput {
8750	s.Count = &v
8751	return s
8752}
8753
8754// SetLimit sets the Limit field's value.
8755func (s *GetAccountLimitOutput) SetLimit(v *AccountLimit) *GetAccountLimitOutput {
8756	s.Limit = v
8757	return s
8758}
8759
8760// The input for a GetChange request.
8761type GetChangeInput struct {
8762	_ struct{} `locationName:"GetChangeRequest" type:"structure"`
8763
8764	// The ID of the change batch request. The value that you specify here is the
8765	// value that ChangeResourceRecordSets returned in the Id element when you submitted
8766	// the request.
8767	//
8768	// Id is a required field
8769	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8770}
8771
8772// String returns the string representation
8773func (s GetChangeInput) String() string {
8774	return awsutil.Prettify(s)
8775}
8776
8777// GoString returns the string representation
8778func (s GetChangeInput) GoString() string {
8779	return s.String()
8780}
8781
8782// Validate inspects the fields of the type to determine if they are valid.
8783func (s *GetChangeInput) Validate() error {
8784	invalidParams := request.ErrInvalidParams{Context: "GetChangeInput"}
8785	if s.Id == nil {
8786		invalidParams.Add(request.NewErrParamRequired("Id"))
8787	}
8788	if s.Id != nil && len(*s.Id) < 1 {
8789		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8790	}
8791
8792	if invalidParams.Len() > 0 {
8793		return invalidParams
8794	}
8795	return nil
8796}
8797
8798// SetId sets the Id field's value.
8799func (s *GetChangeInput) SetId(v string) *GetChangeInput {
8800	s.Id = &v
8801	return s
8802}
8803
8804// A complex type that contains the ChangeInfo element.
8805type GetChangeOutput struct {
8806	_ struct{} `type:"structure"`
8807
8808	// A complex type that contains information about the specified change batch.
8809	//
8810	// ChangeInfo is a required field
8811	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
8812}
8813
8814// String returns the string representation
8815func (s GetChangeOutput) String() string {
8816	return awsutil.Prettify(s)
8817}
8818
8819// GoString returns the string representation
8820func (s GetChangeOutput) GoString() string {
8821	return s.String()
8822}
8823
8824// SetChangeInfo sets the ChangeInfo field's value.
8825func (s *GetChangeOutput) SetChangeInfo(v *ChangeInfo) *GetChangeOutput {
8826	s.ChangeInfo = v
8827	return s
8828}
8829
8830// Empty request.
8831type GetCheckerIpRangesInput struct {
8832	_ struct{} `locationName:"GetCheckerIpRangesRequest" type:"structure"`
8833}
8834
8835// String returns the string representation
8836func (s GetCheckerIpRangesInput) String() string {
8837	return awsutil.Prettify(s)
8838}
8839
8840// GoString returns the string representation
8841func (s GetCheckerIpRangesInput) GoString() string {
8842	return s.String()
8843}
8844
8845// A complex type that contains the CheckerIpRanges element.
8846type GetCheckerIpRangesOutput struct {
8847	_ struct{} `type:"structure"`
8848
8849	// A complex type that contains sorted list of IP ranges in CIDR format for
8850	// Amazon Route 53 health checkers.
8851	//
8852	// CheckerIpRanges is a required field
8853	CheckerIpRanges []*string `type:"list" required:"true"`
8854}
8855
8856// String returns the string representation
8857func (s GetCheckerIpRangesOutput) String() string {
8858	return awsutil.Prettify(s)
8859}
8860
8861// GoString returns the string representation
8862func (s GetCheckerIpRangesOutput) GoString() string {
8863	return s.String()
8864}
8865
8866// SetCheckerIpRanges sets the CheckerIpRanges field's value.
8867func (s *GetCheckerIpRangesOutput) SetCheckerIpRanges(v []*string) *GetCheckerIpRangesOutput {
8868	s.CheckerIpRanges = v
8869	return s
8870}
8871
8872// A request for information about whether a specified geographic location is
8873// supported for Amazon Route 53 geolocation resource record sets.
8874type GetGeoLocationInput struct {
8875	_ struct{} `locationName:"GetGeoLocationRequest" type:"structure"`
8876
8877	// Amazon Route 53 supports the following continent codes:
8878	//
8879	//    * AF: Africa
8880	//
8881	//    * AN: Antarctica
8882	//
8883	//    * AS: Asia
8884	//
8885	//    * EU: Europe
8886	//
8887	//    * OC: Oceania
8888	//
8889	//    * NA: North America
8890	//
8891	//    * SA: South America
8892	ContinentCode *string `location:"querystring" locationName:"continentcode" min:"2" type:"string"`
8893
8894	// Amazon Route 53 uses the two-letter country codes that are specified in ISO
8895	// standard 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
8896	CountryCode *string `location:"querystring" locationName:"countrycode" min:"1" type:"string"`
8897
8898	// Amazon Route 53 uses the one- to three-letter subdivision codes that are
8899	// specified in ISO standard 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
8900	// Route 53 doesn't support subdivision codes for all countries. If you specify
8901	// subdivisioncode, you must also specify countrycode.
8902	SubdivisionCode *string `location:"querystring" locationName:"subdivisioncode" min:"1" type:"string"`
8903}
8904
8905// String returns the string representation
8906func (s GetGeoLocationInput) String() string {
8907	return awsutil.Prettify(s)
8908}
8909
8910// GoString returns the string representation
8911func (s GetGeoLocationInput) GoString() string {
8912	return s.String()
8913}
8914
8915// Validate inspects the fields of the type to determine if they are valid.
8916func (s *GetGeoLocationInput) Validate() error {
8917	invalidParams := request.ErrInvalidParams{Context: "GetGeoLocationInput"}
8918	if s.ContinentCode != nil && len(*s.ContinentCode) < 2 {
8919		invalidParams.Add(request.NewErrParamMinLen("ContinentCode", 2))
8920	}
8921	if s.CountryCode != nil && len(*s.CountryCode) < 1 {
8922		invalidParams.Add(request.NewErrParamMinLen("CountryCode", 1))
8923	}
8924	if s.SubdivisionCode != nil && len(*s.SubdivisionCode) < 1 {
8925		invalidParams.Add(request.NewErrParamMinLen("SubdivisionCode", 1))
8926	}
8927
8928	if invalidParams.Len() > 0 {
8929		return invalidParams
8930	}
8931	return nil
8932}
8933
8934// SetContinentCode sets the ContinentCode field's value.
8935func (s *GetGeoLocationInput) SetContinentCode(v string) *GetGeoLocationInput {
8936	s.ContinentCode = &v
8937	return s
8938}
8939
8940// SetCountryCode sets the CountryCode field's value.
8941func (s *GetGeoLocationInput) SetCountryCode(v string) *GetGeoLocationInput {
8942	s.CountryCode = &v
8943	return s
8944}
8945
8946// SetSubdivisionCode sets the SubdivisionCode field's value.
8947func (s *GetGeoLocationInput) SetSubdivisionCode(v string) *GetGeoLocationInput {
8948	s.SubdivisionCode = &v
8949	return s
8950}
8951
8952// A complex type that contains the response information for the specified geolocation
8953// code.
8954type GetGeoLocationOutput struct {
8955	_ struct{} `type:"structure"`
8956
8957	// A complex type that contains the codes and full continent, country, and subdivision
8958	// names for the specified geolocation code.
8959	//
8960	// GeoLocationDetails is a required field
8961	GeoLocationDetails *GeoLocationDetails `type:"structure" required:"true"`
8962}
8963
8964// String returns the string representation
8965func (s GetGeoLocationOutput) String() string {
8966	return awsutil.Prettify(s)
8967}
8968
8969// GoString returns the string representation
8970func (s GetGeoLocationOutput) GoString() string {
8971	return s.String()
8972}
8973
8974// SetGeoLocationDetails sets the GeoLocationDetails field's value.
8975func (s *GetGeoLocationOutput) SetGeoLocationDetails(v *GeoLocationDetails) *GetGeoLocationOutput {
8976	s.GeoLocationDetails = v
8977	return s
8978}
8979
8980// A request for the number of health checks that are associated with the current
8981// AWS account.
8982type GetHealthCheckCountInput struct {
8983	_ struct{} `locationName:"GetHealthCheckCountRequest" type:"structure"`
8984}
8985
8986// String returns the string representation
8987func (s GetHealthCheckCountInput) String() string {
8988	return awsutil.Prettify(s)
8989}
8990
8991// GoString returns the string representation
8992func (s GetHealthCheckCountInput) GoString() string {
8993	return s.String()
8994}
8995
8996// A complex type that contains the response to a GetHealthCheckCount request.
8997type GetHealthCheckCountOutput struct {
8998	_ struct{} `type:"structure"`
8999
9000	// The number of health checks associated with the current AWS account.
9001	//
9002	// HealthCheckCount is a required field
9003	HealthCheckCount *int64 `type:"long" required:"true"`
9004}
9005
9006// String returns the string representation
9007func (s GetHealthCheckCountOutput) String() string {
9008	return awsutil.Prettify(s)
9009}
9010
9011// GoString returns the string representation
9012func (s GetHealthCheckCountOutput) GoString() string {
9013	return s.String()
9014}
9015
9016// SetHealthCheckCount sets the HealthCheckCount field's value.
9017func (s *GetHealthCheckCountOutput) SetHealthCheckCount(v int64) *GetHealthCheckCountOutput {
9018	s.HealthCheckCount = &v
9019	return s
9020}
9021
9022// A request to get information about a specified health check.
9023type GetHealthCheckInput struct {
9024	_ struct{} `locationName:"GetHealthCheckRequest" type:"structure"`
9025
9026	// The identifier that Amazon Route 53 assigned to the health check when you
9027	// created it. When you add or update a resource record set, you use this value
9028	// to specify which health check to use. The value can be up to 64 characters
9029	// long.
9030	//
9031	// HealthCheckId is a required field
9032	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
9033}
9034
9035// String returns the string representation
9036func (s GetHealthCheckInput) String() string {
9037	return awsutil.Prettify(s)
9038}
9039
9040// GoString returns the string representation
9041func (s GetHealthCheckInput) GoString() string {
9042	return s.String()
9043}
9044
9045// Validate inspects the fields of the type to determine if they are valid.
9046func (s *GetHealthCheckInput) Validate() error {
9047	invalidParams := request.ErrInvalidParams{Context: "GetHealthCheckInput"}
9048	if s.HealthCheckId == nil {
9049		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
9050	}
9051	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
9052		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
9053	}
9054
9055	if invalidParams.Len() > 0 {
9056		return invalidParams
9057	}
9058	return nil
9059}
9060
9061// SetHealthCheckId sets the HealthCheckId field's value.
9062func (s *GetHealthCheckInput) SetHealthCheckId(v string) *GetHealthCheckInput {
9063	s.HealthCheckId = &v
9064	return s
9065}
9066
9067// A request for the reason that a health check failed most recently.
9068type GetHealthCheckLastFailureReasonInput struct {
9069	_ struct{} `locationName:"GetHealthCheckLastFailureReasonRequest" type:"structure"`
9070
9071	// The ID for the health check for which you want the last failure reason. When
9072	// you created the health check, CreateHealthCheck returned the ID in the response,
9073	// in the HealthCheckId element.
9074	//
9075	// If you want to get the last failure reason for a calculated health check,
9076	// you must use the Amazon Route 53 console or the CloudWatch console. You can't
9077	// use GetHealthCheckLastFailureReason for a calculated health check.
9078	//
9079	// HealthCheckId is a required field
9080	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
9081}
9082
9083// String returns the string representation
9084func (s GetHealthCheckLastFailureReasonInput) String() string {
9085	return awsutil.Prettify(s)
9086}
9087
9088// GoString returns the string representation
9089func (s GetHealthCheckLastFailureReasonInput) GoString() string {
9090	return s.String()
9091}
9092
9093// Validate inspects the fields of the type to determine if they are valid.
9094func (s *GetHealthCheckLastFailureReasonInput) Validate() error {
9095	invalidParams := request.ErrInvalidParams{Context: "GetHealthCheckLastFailureReasonInput"}
9096	if s.HealthCheckId == nil {
9097		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
9098	}
9099	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
9100		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
9101	}
9102
9103	if invalidParams.Len() > 0 {
9104		return invalidParams
9105	}
9106	return nil
9107}
9108
9109// SetHealthCheckId sets the HealthCheckId field's value.
9110func (s *GetHealthCheckLastFailureReasonInput) SetHealthCheckId(v string) *GetHealthCheckLastFailureReasonInput {
9111	s.HealthCheckId = &v
9112	return s
9113}
9114
9115// A complex type that contains the response to a GetHealthCheckLastFailureReason
9116// request.
9117type GetHealthCheckLastFailureReasonOutput struct {
9118	_ struct{} `type:"structure"`
9119
9120	// A list that contains one Observation element for each Amazon Route 53 health
9121	// checker that is reporting a last failure reason.
9122	//
9123	// HealthCheckObservations is a required field
9124	HealthCheckObservations []*HealthCheckObservation `locationNameList:"HealthCheckObservation" type:"list" required:"true"`
9125}
9126
9127// String returns the string representation
9128func (s GetHealthCheckLastFailureReasonOutput) String() string {
9129	return awsutil.Prettify(s)
9130}
9131
9132// GoString returns the string representation
9133func (s GetHealthCheckLastFailureReasonOutput) GoString() string {
9134	return s.String()
9135}
9136
9137// SetHealthCheckObservations sets the HealthCheckObservations field's value.
9138func (s *GetHealthCheckLastFailureReasonOutput) SetHealthCheckObservations(v []*HealthCheckObservation) *GetHealthCheckLastFailureReasonOutput {
9139	s.HealthCheckObservations = v
9140	return s
9141}
9142
9143// A complex type that contains the response to a GetHealthCheck request.
9144type GetHealthCheckOutput struct {
9145	_ struct{} `type:"structure"`
9146
9147	// A complex type that contains information about one health check that is associated
9148	// with the current AWS account.
9149	//
9150	// HealthCheck is a required field
9151	HealthCheck *HealthCheck `type:"structure" required:"true"`
9152}
9153
9154// String returns the string representation
9155func (s GetHealthCheckOutput) String() string {
9156	return awsutil.Prettify(s)
9157}
9158
9159// GoString returns the string representation
9160func (s GetHealthCheckOutput) GoString() string {
9161	return s.String()
9162}
9163
9164// SetHealthCheck sets the HealthCheck field's value.
9165func (s *GetHealthCheckOutput) SetHealthCheck(v *HealthCheck) *GetHealthCheckOutput {
9166	s.HealthCheck = v
9167	return s
9168}
9169
9170// A request to get the status for a health check.
9171type GetHealthCheckStatusInput struct {
9172	_ struct{} `locationName:"GetHealthCheckStatusRequest" type:"structure"`
9173
9174	// The ID for the health check that you want the current status for. When you
9175	// created the health check, CreateHealthCheck returned the ID in the response,
9176	// in the HealthCheckId element.
9177	//
9178	// If you want to check the status of a calculated health check, you must use
9179	// the Amazon Route 53 console or the CloudWatch console. You can't use GetHealthCheckStatus
9180	// to get the status of a calculated health check.
9181	//
9182	// HealthCheckId is a required field
9183	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
9184}
9185
9186// String returns the string representation
9187func (s GetHealthCheckStatusInput) String() string {
9188	return awsutil.Prettify(s)
9189}
9190
9191// GoString returns the string representation
9192func (s GetHealthCheckStatusInput) GoString() string {
9193	return s.String()
9194}
9195
9196// Validate inspects the fields of the type to determine if they are valid.
9197func (s *GetHealthCheckStatusInput) Validate() error {
9198	invalidParams := request.ErrInvalidParams{Context: "GetHealthCheckStatusInput"}
9199	if s.HealthCheckId == nil {
9200		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
9201	}
9202	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
9203		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
9204	}
9205
9206	if invalidParams.Len() > 0 {
9207		return invalidParams
9208	}
9209	return nil
9210}
9211
9212// SetHealthCheckId sets the HealthCheckId field's value.
9213func (s *GetHealthCheckStatusInput) SetHealthCheckId(v string) *GetHealthCheckStatusInput {
9214	s.HealthCheckId = &v
9215	return s
9216}
9217
9218// A complex type that contains the response to a GetHealthCheck request.
9219type GetHealthCheckStatusOutput struct {
9220	_ struct{} `type:"structure"`
9221
9222	// A list that contains one HealthCheckObservation element for each Amazon Route
9223	// 53 health checker that is reporting a status about the health check endpoint.
9224	//
9225	// HealthCheckObservations is a required field
9226	HealthCheckObservations []*HealthCheckObservation `locationNameList:"HealthCheckObservation" type:"list" required:"true"`
9227}
9228
9229// String returns the string representation
9230func (s GetHealthCheckStatusOutput) String() string {
9231	return awsutil.Prettify(s)
9232}
9233
9234// GoString returns the string representation
9235func (s GetHealthCheckStatusOutput) GoString() string {
9236	return s.String()
9237}
9238
9239// SetHealthCheckObservations sets the HealthCheckObservations field's value.
9240func (s *GetHealthCheckStatusOutput) SetHealthCheckObservations(v []*HealthCheckObservation) *GetHealthCheckStatusOutput {
9241	s.HealthCheckObservations = v
9242	return s
9243}
9244
9245// A request to retrieve a count of all the hosted zones that are associated
9246// with the current AWS account.
9247type GetHostedZoneCountInput struct {
9248	_ struct{} `locationName:"GetHostedZoneCountRequest" type:"structure"`
9249}
9250
9251// String returns the string representation
9252func (s GetHostedZoneCountInput) String() string {
9253	return awsutil.Prettify(s)
9254}
9255
9256// GoString returns the string representation
9257func (s GetHostedZoneCountInput) GoString() string {
9258	return s.String()
9259}
9260
9261// A complex type that contains the response to a GetHostedZoneCount request.
9262type GetHostedZoneCountOutput struct {
9263	_ struct{} `type:"structure"`
9264
9265	// The total number of public and private hosted zones that are associated with
9266	// the current AWS account.
9267	//
9268	// HostedZoneCount is a required field
9269	HostedZoneCount *int64 `type:"long" required:"true"`
9270}
9271
9272// String returns the string representation
9273func (s GetHostedZoneCountOutput) String() string {
9274	return awsutil.Prettify(s)
9275}
9276
9277// GoString returns the string representation
9278func (s GetHostedZoneCountOutput) GoString() string {
9279	return s.String()
9280}
9281
9282// SetHostedZoneCount sets the HostedZoneCount field's value.
9283func (s *GetHostedZoneCountOutput) SetHostedZoneCount(v int64) *GetHostedZoneCountOutput {
9284	s.HostedZoneCount = &v
9285	return s
9286}
9287
9288// A request to get information about a specified hosted zone.
9289type GetHostedZoneInput struct {
9290	_ struct{} `locationName:"GetHostedZoneRequest" type:"structure"`
9291
9292	// The ID of the hosted zone that you want to get information about.
9293	//
9294	// Id is a required field
9295	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9296}
9297
9298// String returns the string representation
9299func (s GetHostedZoneInput) String() string {
9300	return awsutil.Prettify(s)
9301}
9302
9303// GoString returns the string representation
9304func (s GetHostedZoneInput) GoString() string {
9305	return s.String()
9306}
9307
9308// Validate inspects the fields of the type to determine if they are valid.
9309func (s *GetHostedZoneInput) Validate() error {
9310	invalidParams := request.ErrInvalidParams{Context: "GetHostedZoneInput"}
9311	if s.Id == nil {
9312		invalidParams.Add(request.NewErrParamRequired("Id"))
9313	}
9314	if s.Id != nil && len(*s.Id) < 1 {
9315		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9316	}
9317
9318	if invalidParams.Len() > 0 {
9319		return invalidParams
9320	}
9321	return nil
9322}
9323
9324// SetId sets the Id field's value.
9325func (s *GetHostedZoneInput) SetId(v string) *GetHostedZoneInput {
9326	s.Id = &v
9327	return s
9328}
9329
9330// A complex type that contains information about the request to create a hosted
9331// zone.
9332type GetHostedZoneLimitInput struct {
9333	_ struct{} `locationName:"GetHostedZoneLimitRequest" type:"structure"`
9334
9335	// The ID of the hosted zone that you want to get a limit for.
9336	//
9337	// HostedZoneId is a required field
9338	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9339
9340	// The limit that you want to get. Valid values include the following:
9341	//
9342	//    * MAX_RRSETS_BY_ZONE: The maximum number of records that you can create
9343	//    in the specified hosted zone.
9344	//
9345	//    * MAX_VPCS_ASSOCIATED_BY_ZONE: The maximum number of Amazon VPCs that
9346	//    you can associate with the specified private hosted zone.
9347	//
9348	// Type is a required field
9349	Type *string `location:"uri" locationName:"Type" type:"string" required:"true" enum:"HostedZoneLimitType"`
9350}
9351
9352// String returns the string representation
9353func (s GetHostedZoneLimitInput) String() string {
9354	return awsutil.Prettify(s)
9355}
9356
9357// GoString returns the string representation
9358func (s GetHostedZoneLimitInput) GoString() string {
9359	return s.String()
9360}
9361
9362// Validate inspects the fields of the type to determine if they are valid.
9363func (s *GetHostedZoneLimitInput) Validate() error {
9364	invalidParams := request.ErrInvalidParams{Context: "GetHostedZoneLimitInput"}
9365	if s.HostedZoneId == nil {
9366		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
9367	}
9368	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
9369		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
9370	}
9371	if s.Type == nil {
9372		invalidParams.Add(request.NewErrParamRequired("Type"))
9373	}
9374	if s.Type != nil && len(*s.Type) < 1 {
9375		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
9376	}
9377
9378	if invalidParams.Len() > 0 {
9379		return invalidParams
9380	}
9381	return nil
9382}
9383
9384// SetHostedZoneId sets the HostedZoneId field's value.
9385func (s *GetHostedZoneLimitInput) SetHostedZoneId(v string) *GetHostedZoneLimitInput {
9386	s.HostedZoneId = &v
9387	return s
9388}
9389
9390// SetType sets the Type field's value.
9391func (s *GetHostedZoneLimitInput) SetType(v string) *GetHostedZoneLimitInput {
9392	s.Type = &v
9393	return s
9394}
9395
9396// A complex type that contains the requested limit.
9397type GetHostedZoneLimitOutput struct {
9398	_ struct{} `type:"structure"`
9399
9400	// The current number of entities that you have created of the specified type.
9401	// For example, if you specified MAX_RRSETS_BY_ZONE for the value of Type in
9402	// the request, the value of Count is the current number of records that you
9403	// have created in the specified hosted zone.
9404	//
9405	// Count is a required field
9406	Count *int64 `type:"long" required:"true"`
9407
9408	// The current setting for the specified limit. For example, if you specified
9409	// MAX_RRSETS_BY_ZONE for the value of Type in the request, the value of Limit
9410	// is the maximum number of records that you can create in the specified hosted
9411	// zone.
9412	//
9413	// Limit is a required field
9414	Limit *HostedZoneLimit `type:"structure" required:"true"`
9415}
9416
9417// String returns the string representation
9418func (s GetHostedZoneLimitOutput) String() string {
9419	return awsutil.Prettify(s)
9420}
9421
9422// GoString returns the string representation
9423func (s GetHostedZoneLimitOutput) GoString() string {
9424	return s.String()
9425}
9426
9427// SetCount sets the Count field's value.
9428func (s *GetHostedZoneLimitOutput) SetCount(v int64) *GetHostedZoneLimitOutput {
9429	s.Count = &v
9430	return s
9431}
9432
9433// SetLimit sets the Limit field's value.
9434func (s *GetHostedZoneLimitOutput) SetLimit(v *HostedZoneLimit) *GetHostedZoneLimitOutput {
9435	s.Limit = v
9436	return s
9437}
9438
9439// A complex type that contain the response to a GetHostedZone request.
9440type GetHostedZoneOutput struct {
9441	_ struct{} `type:"structure"`
9442
9443	// A complex type that lists the Amazon Route 53 name servers for the specified
9444	// hosted zone.
9445	DelegationSet *DelegationSet `type:"structure"`
9446
9447	// A complex type that contains general information about the specified hosted
9448	// zone.
9449	//
9450	// HostedZone is a required field
9451	HostedZone *HostedZone `type:"structure" required:"true"`
9452
9453	// A complex type that contains information about the VPCs that are associated
9454	// with the specified hosted zone.
9455	VPCs []*VPC `locationNameList:"VPC" min:"1" type:"list"`
9456}
9457
9458// String returns the string representation
9459func (s GetHostedZoneOutput) String() string {
9460	return awsutil.Prettify(s)
9461}
9462
9463// GoString returns the string representation
9464func (s GetHostedZoneOutput) GoString() string {
9465	return s.String()
9466}
9467
9468// SetDelegationSet sets the DelegationSet field's value.
9469func (s *GetHostedZoneOutput) SetDelegationSet(v *DelegationSet) *GetHostedZoneOutput {
9470	s.DelegationSet = v
9471	return s
9472}
9473
9474// SetHostedZone sets the HostedZone field's value.
9475func (s *GetHostedZoneOutput) SetHostedZone(v *HostedZone) *GetHostedZoneOutput {
9476	s.HostedZone = v
9477	return s
9478}
9479
9480// SetVPCs sets the VPCs field's value.
9481func (s *GetHostedZoneOutput) SetVPCs(v []*VPC) *GetHostedZoneOutput {
9482	s.VPCs = v
9483	return s
9484}
9485
9486type GetQueryLoggingConfigInput struct {
9487	_ struct{} `locationName:"GetQueryLoggingConfigRequest" type:"structure"`
9488
9489	// The ID of the configuration for DNS query logging that you want to get information
9490	// about.
9491	//
9492	// Id is a required field
9493	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
9494}
9495
9496// String returns the string representation
9497func (s GetQueryLoggingConfigInput) String() string {
9498	return awsutil.Prettify(s)
9499}
9500
9501// GoString returns the string representation
9502func (s GetQueryLoggingConfigInput) GoString() string {
9503	return s.String()
9504}
9505
9506// Validate inspects the fields of the type to determine if they are valid.
9507func (s *GetQueryLoggingConfigInput) Validate() error {
9508	invalidParams := request.ErrInvalidParams{Context: "GetQueryLoggingConfigInput"}
9509	if s.Id == nil {
9510		invalidParams.Add(request.NewErrParamRequired("Id"))
9511	}
9512	if s.Id != nil && len(*s.Id) < 1 {
9513		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9514	}
9515
9516	if invalidParams.Len() > 0 {
9517		return invalidParams
9518	}
9519	return nil
9520}
9521
9522// SetId sets the Id field's value.
9523func (s *GetQueryLoggingConfigInput) SetId(v string) *GetQueryLoggingConfigInput {
9524	s.Id = &v
9525	return s
9526}
9527
9528type GetQueryLoggingConfigOutput struct {
9529	_ struct{} `type:"structure"`
9530
9531	// A complex type that contains information about the query logging configuration
9532	// that you specified in a GetQueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetQueryLoggingConfig.html)
9533	// request.
9534	//
9535	// QueryLoggingConfig is a required field
9536	QueryLoggingConfig *QueryLoggingConfig `type:"structure" required:"true"`
9537}
9538
9539// String returns the string representation
9540func (s GetQueryLoggingConfigOutput) String() string {
9541	return awsutil.Prettify(s)
9542}
9543
9544// GoString returns the string representation
9545func (s GetQueryLoggingConfigOutput) GoString() string {
9546	return s.String()
9547}
9548
9549// SetQueryLoggingConfig sets the QueryLoggingConfig field's value.
9550func (s *GetQueryLoggingConfigOutput) SetQueryLoggingConfig(v *QueryLoggingConfig) *GetQueryLoggingConfigOutput {
9551	s.QueryLoggingConfig = v
9552	return s
9553}
9554
9555// A request to get information about a specified reusable delegation set.
9556type GetReusableDelegationSetInput struct {
9557	_ struct{} `locationName:"GetReusableDelegationSetRequest" type:"structure"`
9558
9559	// The ID of the reusable delegation set that you want to get a list of name
9560	// servers for.
9561	//
9562	// Id is a required field
9563	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9564}
9565
9566// String returns the string representation
9567func (s GetReusableDelegationSetInput) String() string {
9568	return awsutil.Prettify(s)
9569}
9570
9571// GoString returns the string representation
9572func (s GetReusableDelegationSetInput) GoString() string {
9573	return s.String()
9574}
9575
9576// Validate inspects the fields of the type to determine if they are valid.
9577func (s *GetReusableDelegationSetInput) Validate() error {
9578	invalidParams := request.ErrInvalidParams{Context: "GetReusableDelegationSetInput"}
9579	if s.Id == nil {
9580		invalidParams.Add(request.NewErrParamRequired("Id"))
9581	}
9582	if s.Id != nil && len(*s.Id) < 1 {
9583		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9584	}
9585
9586	if invalidParams.Len() > 0 {
9587		return invalidParams
9588	}
9589	return nil
9590}
9591
9592// SetId sets the Id field's value.
9593func (s *GetReusableDelegationSetInput) SetId(v string) *GetReusableDelegationSetInput {
9594	s.Id = &v
9595	return s
9596}
9597
9598// A complex type that contains information about the request to create a hosted
9599// zone.
9600type GetReusableDelegationSetLimitInput struct {
9601	_ struct{} `locationName:"GetReusableDelegationSetLimitRequest" type:"structure"`
9602
9603	// The ID of the delegation set that you want to get the limit for.
9604	//
9605	// DelegationSetId is a required field
9606	DelegationSetId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9607
9608	// Specify MAX_ZONES_BY_REUSABLE_DELEGATION_SET to get the maximum number of
9609	// hosted zones that you can associate with the specified reusable delegation
9610	// set.
9611	//
9612	// Type is a required field
9613	Type *string `location:"uri" locationName:"Type" type:"string" required:"true" enum:"ReusableDelegationSetLimitType"`
9614}
9615
9616// String returns the string representation
9617func (s GetReusableDelegationSetLimitInput) String() string {
9618	return awsutil.Prettify(s)
9619}
9620
9621// GoString returns the string representation
9622func (s GetReusableDelegationSetLimitInput) GoString() string {
9623	return s.String()
9624}
9625
9626// Validate inspects the fields of the type to determine if they are valid.
9627func (s *GetReusableDelegationSetLimitInput) Validate() error {
9628	invalidParams := request.ErrInvalidParams{Context: "GetReusableDelegationSetLimitInput"}
9629	if s.DelegationSetId == nil {
9630		invalidParams.Add(request.NewErrParamRequired("DelegationSetId"))
9631	}
9632	if s.DelegationSetId != nil && len(*s.DelegationSetId) < 1 {
9633		invalidParams.Add(request.NewErrParamMinLen("DelegationSetId", 1))
9634	}
9635	if s.Type == nil {
9636		invalidParams.Add(request.NewErrParamRequired("Type"))
9637	}
9638	if s.Type != nil && len(*s.Type) < 1 {
9639		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
9640	}
9641
9642	if invalidParams.Len() > 0 {
9643		return invalidParams
9644	}
9645	return nil
9646}
9647
9648// SetDelegationSetId sets the DelegationSetId field's value.
9649func (s *GetReusableDelegationSetLimitInput) SetDelegationSetId(v string) *GetReusableDelegationSetLimitInput {
9650	s.DelegationSetId = &v
9651	return s
9652}
9653
9654// SetType sets the Type field's value.
9655func (s *GetReusableDelegationSetLimitInput) SetType(v string) *GetReusableDelegationSetLimitInput {
9656	s.Type = &v
9657	return s
9658}
9659
9660// A complex type that contains the requested limit.
9661type GetReusableDelegationSetLimitOutput struct {
9662	_ struct{} `type:"structure"`
9663
9664	// The current number of hosted zones that you can associate with the specified
9665	// reusable delegation set.
9666	//
9667	// Count is a required field
9668	Count *int64 `type:"long" required:"true"`
9669
9670	// The current setting for the limit on hosted zones that you can associate
9671	// with the specified reusable delegation set.
9672	//
9673	// Limit is a required field
9674	Limit *ReusableDelegationSetLimit `type:"structure" required:"true"`
9675}
9676
9677// String returns the string representation
9678func (s GetReusableDelegationSetLimitOutput) String() string {
9679	return awsutil.Prettify(s)
9680}
9681
9682// GoString returns the string representation
9683func (s GetReusableDelegationSetLimitOutput) GoString() string {
9684	return s.String()
9685}
9686
9687// SetCount sets the Count field's value.
9688func (s *GetReusableDelegationSetLimitOutput) SetCount(v int64) *GetReusableDelegationSetLimitOutput {
9689	s.Count = &v
9690	return s
9691}
9692
9693// SetLimit sets the Limit field's value.
9694func (s *GetReusableDelegationSetLimitOutput) SetLimit(v *ReusableDelegationSetLimit) *GetReusableDelegationSetLimitOutput {
9695	s.Limit = v
9696	return s
9697}
9698
9699// A complex type that contains the response to the GetReusableDelegationSet
9700// request.
9701type GetReusableDelegationSetOutput struct {
9702	_ struct{} `type:"structure"`
9703
9704	// A complex type that contains information about the reusable delegation set.
9705	//
9706	// DelegationSet is a required field
9707	DelegationSet *DelegationSet `type:"structure" required:"true"`
9708}
9709
9710// String returns the string representation
9711func (s GetReusableDelegationSetOutput) String() string {
9712	return awsutil.Prettify(s)
9713}
9714
9715// GoString returns the string representation
9716func (s GetReusableDelegationSetOutput) GoString() string {
9717	return s.String()
9718}
9719
9720// SetDelegationSet sets the DelegationSet field's value.
9721func (s *GetReusableDelegationSetOutput) SetDelegationSet(v *DelegationSet) *GetReusableDelegationSetOutput {
9722	s.DelegationSet = v
9723	return s
9724}
9725
9726// Gets information about a specific traffic policy version.
9727type GetTrafficPolicyInput struct {
9728	_ struct{} `locationName:"GetTrafficPolicyRequest" type:"structure"`
9729
9730	// The ID of the traffic policy that you want to get information about.
9731	//
9732	// Id is a required field
9733	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
9734
9735	// The version number of the traffic policy that you want to get information
9736	// about.
9737	//
9738	// Version is a required field
9739	Version *int64 `location:"uri" locationName:"Version" min:"1" type:"integer" required:"true"`
9740}
9741
9742// String returns the string representation
9743func (s GetTrafficPolicyInput) String() string {
9744	return awsutil.Prettify(s)
9745}
9746
9747// GoString returns the string representation
9748func (s GetTrafficPolicyInput) GoString() string {
9749	return s.String()
9750}
9751
9752// Validate inspects the fields of the type to determine if they are valid.
9753func (s *GetTrafficPolicyInput) Validate() error {
9754	invalidParams := request.ErrInvalidParams{Context: "GetTrafficPolicyInput"}
9755	if s.Id == nil {
9756		invalidParams.Add(request.NewErrParamRequired("Id"))
9757	}
9758	if s.Id != nil && len(*s.Id) < 1 {
9759		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9760	}
9761	if s.Version == nil {
9762		invalidParams.Add(request.NewErrParamRequired("Version"))
9763	}
9764	if s.Version != nil && *s.Version < 1 {
9765		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
9766	}
9767
9768	if invalidParams.Len() > 0 {
9769		return invalidParams
9770	}
9771	return nil
9772}
9773
9774// SetId sets the Id field's value.
9775func (s *GetTrafficPolicyInput) SetId(v string) *GetTrafficPolicyInput {
9776	s.Id = &v
9777	return s
9778}
9779
9780// SetVersion sets the Version field's value.
9781func (s *GetTrafficPolicyInput) SetVersion(v int64) *GetTrafficPolicyInput {
9782	s.Version = &v
9783	return s
9784}
9785
9786// Request to get the number of traffic policy instances that are associated
9787// with the current AWS account.
9788type GetTrafficPolicyInstanceCountInput struct {
9789	_ struct{} `locationName:"GetTrafficPolicyInstanceCountRequest" type:"structure"`
9790}
9791
9792// String returns the string representation
9793func (s GetTrafficPolicyInstanceCountInput) String() string {
9794	return awsutil.Prettify(s)
9795}
9796
9797// GoString returns the string representation
9798func (s GetTrafficPolicyInstanceCountInput) GoString() string {
9799	return s.String()
9800}
9801
9802// A complex type that contains information about the resource record sets that
9803// Amazon Route 53 created based on a specified traffic policy.
9804type GetTrafficPolicyInstanceCountOutput struct {
9805	_ struct{} `type:"structure"`
9806
9807	// The number of traffic policy instances that are associated with the current
9808	// AWS account.
9809	//
9810	// TrafficPolicyInstanceCount is a required field
9811	TrafficPolicyInstanceCount *int64 `type:"integer" required:"true"`
9812}
9813
9814// String returns the string representation
9815func (s GetTrafficPolicyInstanceCountOutput) String() string {
9816	return awsutil.Prettify(s)
9817}
9818
9819// GoString returns the string representation
9820func (s GetTrafficPolicyInstanceCountOutput) GoString() string {
9821	return s.String()
9822}
9823
9824// SetTrafficPolicyInstanceCount sets the TrafficPolicyInstanceCount field's value.
9825func (s *GetTrafficPolicyInstanceCountOutput) SetTrafficPolicyInstanceCount(v int64) *GetTrafficPolicyInstanceCountOutput {
9826	s.TrafficPolicyInstanceCount = &v
9827	return s
9828}
9829
9830// Gets information about a specified traffic policy instance.
9831type GetTrafficPolicyInstanceInput struct {
9832	_ struct{} `locationName:"GetTrafficPolicyInstanceRequest" type:"structure"`
9833
9834	// The ID of the traffic policy instance that you want to get information about.
9835	//
9836	// Id is a required field
9837	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
9838}
9839
9840// String returns the string representation
9841func (s GetTrafficPolicyInstanceInput) String() string {
9842	return awsutil.Prettify(s)
9843}
9844
9845// GoString returns the string representation
9846func (s GetTrafficPolicyInstanceInput) GoString() string {
9847	return s.String()
9848}
9849
9850// Validate inspects the fields of the type to determine if they are valid.
9851func (s *GetTrafficPolicyInstanceInput) Validate() error {
9852	invalidParams := request.ErrInvalidParams{Context: "GetTrafficPolicyInstanceInput"}
9853	if s.Id == nil {
9854		invalidParams.Add(request.NewErrParamRequired("Id"))
9855	}
9856	if s.Id != nil && len(*s.Id) < 1 {
9857		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9858	}
9859
9860	if invalidParams.Len() > 0 {
9861		return invalidParams
9862	}
9863	return nil
9864}
9865
9866// SetId sets the Id field's value.
9867func (s *GetTrafficPolicyInstanceInput) SetId(v string) *GetTrafficPolicyInstanceInput {
9868	s.Id = &v
9869	return s
9870}
9871
9872// A complex type that contains information about the resource record sets that
9873// Amazon Route 53 created based on a specified traffic policy.
9874type GetTrafficPolicyInstanceOutput struct {
9875	_ struct{} `type:"structure"`
9876
9877	// A complex type that contains settings for the traffic policy instance.
9878	//
9879	// TrafficPolicyInstance is a required field
9880	TrafficPolicyInstance *TrafficPolicyInstance `type:"structure" required:"true"`
9881}
9882
9883// String returns the string representation
9884func (s GetTrafficPolicyInstanceOutput) String() string {
9885	return awsutil.Prettify(s)
9886}
9887
9888// GoString returns the string representation
9889func (s GetTrafficPolicyInstanceOutput) GoString() string {
9890	return s.String()
9891}
9892
9893// SetTrafficPolicyInstance sets the TrafficPolicyInstance field's value.
9894func (s *GetTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPolicyInstance) *GetTrafficPolicyInstanceOutput {
9895	s.TrafficPolicyInstance = v
9896	return s
9897}
9898
9899// A complex type that contains the response information for the request.
9900type GetTrafficPolicyOutput struct {
9901	_ struct{} `type:"structure"`
9902
9903	// A complex type that contains settings for the specified traffic policy.
9904	//
9905	// TrafficPolicy is a required field
9906	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
9907}
9908
9909// String returns the string representation
9910func (s GetTrafficPolicyOutput) String() string {
9911	return awsutil.Prettify(s)
9912}
9913
9914// GoString returns the string representation
9915func (s GetTrafficPolicyOutput) GoString() string {
9916	return s.String()
9917}
9918
9919// SetTrafficPolicy sets the TrafficPolicy field's value.
9920func (s *GetTrafficPolicyOutput) SetTrafficPolicy(v *TrafficPolicy) *GetTrafficPolicyOutput {
9921	s.TrafficPolicy = v
9922	return s
9923}
9924
9925// A complex type that contains information about one health check that is associated
9926// with the current AWS account.
9927type HealthCheck struct {
9928	_ struct{} `type:"structure"`
9929
9930	// A unique string that you specified when you created the health check.
9931	//
9932	// CallerReference is a required field
9933	CallerReference *string `min:"1" type:"string" required:"true"`
9934
9935	// A complex type that contains information about the CloudWatch alarm that
9936	// Amazon Route 53 is monitoring for this health check.
9937	CloudWatchAlarmConfiguration *CloudWatchAlarmConfiguration `type:"structure"`
9938
9939	// A complex type that contains detailed information about one health check.
9940	//
9941	// HealthCheckConfig is a required field
9942	HealthCheckConfig *HealthCheckConfig `type:"structure" required:"true"`
9943
9944	// The version of the health check. You can optionally pass this value in a
9945	// call to UpdateHealthCheck to prevent overwriting another change to the health
9946	// check.
9947	//
9948	// HealthCheckVersion is a required field
9949	HealthCheckVersion *int64 `min:"1" type:"long" required:"true"`
9950
9951	// The identifier that Amazon Route 53assigned to the health check when you
9952	// created it. When you add or update a resource record set, you use this value
9953	// to specify which health check to use. The value can be up to 64 characters
9954	// long.
9955	//
9956	// Id is a required field
9957	Id *string `type:"string" required:"true"`
9958
9959	// If the health check was created by another service, the service that created
9960	// the health check. When a health check is created by another service, you
9961	// can't edit or delete it using Amazon Route 53.
9962	LinkedService *LinkedService `type:"structure"`
9963}
9964
9965// String returns the string representation
9966func (s HealthCheck) String() string {
9967	return awsutil.Prettify(s)
9968}
9969
9970// GoString returns the string representation
9971func (s HealthCheck) GoString() string {
9972	return s.String()
9973}
9974
9975// SetCallerReference sets the CallerReference field's value.
9976func (s *HealthCheck) SetCallerReference(v string) *HealthCheck {
9977	s.CallerReference = &v
9978	return s
9979}
9980
9981// SetCloudWatchAlarmConfiguration sets the CloudWatchAlarmConfiguration field's value.
9982func (s *HealthCheck) SetCloudWatchAlarmConfiguration(v *CloudWatchAlarmConfiguration) *HealthCheck {
9983	s.CloudWatchAlarmConfiguration = v
9984	return s
9985}
9986
9987// SetHealthCheckConfig sets the HealthCheckConfig field's value.
9988func (s *HealthCheck) SetHealthCheckConfig(v *HealthCheckConfig) *HealthCheck {
9989	s.HealthCheckConfig = v
9990	return s
9991}
9992
9993// SetHealthCheckVersion sets the HealthCheckVersion field's value.
9994func (s *HealthCheck) SetHealthCheckVersion(v int64) *HealthCheck {
9995	s.HealthCheckVersion = &v
9996	return s
9997}
9998
9999// SetId sets the Id field's value.
10000func (s *HealthCheck) SetId(v string) *HealthCheck {
10001	s.Id = &v
10002	return s
10003}
10004
10005// SetLinkedService sets the LinkedService field's value.
10006func (s *HealthCheck) SetLinkedService(v *LinkedService) *HealthCheck {
10007	s.LinkedService = v
10008	return s
10009}
10010
10011// A complex type that contains information about the health check.
10012type HealthCheckConfig struct {
10013	_ struct{} `type:"structure"`
10014
10015	// A complex type that identifies the CloudWatch alarm that you want Amazon
10016	// Route 53 health checkers to use to determine whether the specified health
10017	// check is healthy.
10018	AlarmIdentifier *AlarmIdentifier `type:"structure"`
10019
10020	// (CALCULATED Health Checks Only) A complex type that contains one ChildHealthCheck
10021	// element for each health check that you want to associate with a CALCULATED
10022	// health check.
10023	ChildHealthChecks []*string `locationNameList:"ChildHealthCheck" type:"list"`
10024
10025	// Stops Route 53 from performing health checks. When you disable a health check,
10026	// here's what happens:
10027	//
10028	//    * Health checks that check the health of endpoints: Route 53 stops submitting
10029	//    requests to your application, server, or other resource.
10030	//
10031	//    * Calculated health checks: Route 53 stops aggregating the status of the
10032	//    referenced health checks.
10033	//
10034	//    * Health checks that monitor CloudWatch alarms: Route 53 stops monitoring
10035	//    the corresponding CloudWatch metrics.
10036	//
10037	// After you disable a health check, Route 53 considers the status of the health
10038	// check to always be healthy. If you configured DNS failover, Route 53 continues
10039	// to route traffic to the corresponding resources. If you want to stop routing
10040	// traffic to a resource, change the value of Inverted (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted).
10041	//
10042	// Charges for a health check still apply when the health check is disabled.
10043	// For more information, see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
10044	Disabled *bool `type:"boolean"`
10045
10046	// Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName
10047	// to the endpoint in the client_hello message during TLS negotiation. This
10048	// allows the endpoint to respond to HTTPS health check requests with the applicable
10049	// SSL/TLS certificate.
10050	//
10051	// Some endpoints require that HTTPS requests include the host name in the client_hello
10052	// message. If you don't enable SNI, the status of the health check will be
10053	// SSL alert handshake_failure. A health check can also have that status for
10054	// other reasons. If SNI is enabled and you're still getting the error, check
10055	// the SSL/TLS configuration on your endpoint and confirm that your certificate
10056	// is valid.
10057	//
10058	// The SSL/TLS certificate on your endpoint includes a domain name in the Common
10059	// Name field and possibly several more in the Subject Alternative Names field.
10060	// One of the domain names in the certificate should match the value that you
10061	// specify for FullyQualifiedDomainName. If the endpoint responds to the client_hello
10062	// message with a certificate that does not include the domain name that you
10063	// specified in FullyQualifiedDomainName, a health checker will retry the handshake.
10064	// In the second attempt, the health checker will omit FullyQualifiedDomainName
10065	// from the client_hello message.
10066	EnableSNI *bool `type:"boolean"`
10067
10068	// The number of consecutive health checks that an endpoint must pass or fail
10069	// for Amazon Route 53 to change the current status of the endpoint from unhealthy
10070	// to healthy or vice versa. For more information, see How Amazon Route 53 Determines
10071	// Whether an Endpoint Is Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
10072	// in the Amazon Route 53 Developer Guide.
10073	//
10074	// If you don't specify a value for FailureThreshold, the default value is three
10075	// health checks.
10076	FailureThreshold *int64 `min:"1" type:"integer"`
10077
10078	// Amazon Route 53 behavior depends on whether you specify a value for IPAddress.
10079	//
10080	// If you specify a value for IPAddress:
10081	//
10082	// Amazon Route 53 sends health check requests to the specified IPv4 or IPv6
10083	// address and passes the value of FullyQualifiedDomainName in the Host header
10084	// for all health checks except TCP health checks. This is typically the fully
10085	// qualified DNS name of the endpoint on which you want Route 53 to perform
10086	// health checks.
10087	//
10088	// When Route 53 checks the health of an endpoint, here is how it constructs
10089	// the Host header:
10090	//
10091	//    * If you specify a value of 80 for Port and HTTP or HTTP_STR_MATCH for
10092	//    Type, Route 53 passes the value of FullyQualifiedDomainName to the endpoint
10093	//    in the Host header.
10094	//
10095	//    * If you specify a value of 443 for Port and HTTPS or HTTPS_STR_MATCH
10096	//    for Type, Route 53 passes the value of FullyQualifiedDomainName to the
10097	//    endpoint in the Host header.
10098	//
10099	//    * If you specify another value for Port and any value except TCP for Type,
10100	//    Route 53 passes FullyQualifiedDomainName:Port to the endpoint in the Host
10101	//    header.
10102	//
10103	// If you don't specify a value for FullyQualifiedDomainName, Route 53 substitutes
10104	// the value of IPAddress in the Host header in each of the preceding cases.
10105	//
10106	// If you don't specify a value for IPAddress :
10107	//
10108	// Route 53 sends a DNS request to the domain that you specify for FullyQualifiedDomainName
10109	// at the interval that you specify for RequestInterval. Using an IPv4 address
10110	// that DNS returns, Route 53 then checks the health of the endpoint.
10111	//
10112	// If you don't specify a value for IPAddress, Route 53 uses only IPv4 to send
10113	// health checks to the endpoint. If there's no resource record set with a type
10114	// of A for the name that you specify for FullyQualifiedDomainName, the health
10115	// check fails with a "DNS resolution failed" error.
10116	//
10117	// If you want to check the health of weighted, latency, or failover resource
10118	// record sets and you choose to specify the endpoint only by FullyQualifiedDomainName,
10119	// we recommend that you create a separate health check for each endpoint. For
10120	// example, create a health check for each HTTP server that is serving content
10121	// for www.example.com. For the value of FullyQualifiedDomainName, specify the
10122	// domain name of the server (such as us-east-2-www.example.com), not the name
10123	// of the resource record sets (www.example.com).
10124	//
10125	// In this configuration, if you create a health check for which the value of
10126	// FullyQualifiedDomainName matches the name of the resource record sets and
10127	// you then associate the health check with those resource record sets, health
10128	// check results will be unpredictable.
10129	//
10130	// In addition, if the value that you specify for Type is HTTP, HTTPS, HTTP_STR_MATCH,
10131	// or HTTPS_STR_MATCH, Route 53 passes the value of FullyQualifiedDomainName
10132	// in the Host header, as it does when you specify a value for IPAddress. If
10133	// the value of Type is TCP, Route 53 doesn't pass a Host header.
10134	FullyQualifiedDomainName *string `type:"string"`
10135
10136	// The number of child health checks that are associated with a CALCULATED health
10137	// check that Amazon Route 53 must consider healthy for the CALCULATED health
10138	// check to be considered healthy. To specify the child health checks that you
10139	// want to associate with a CALCULATED health check, use the ChildHealthChecks
10140	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks)
10141	// element.
10142	//
10143	// Note the following:
10144	//
10145	//    * If you specify a number greater than the number of child health checks,
10146	//    Route 53 always considers this health check to be unhealthy.
10147	//
10148	//    * If you specify 0, Route 53 always considers this health check to be
10149	//    healthy.
10150	HealthThreshold *int64 `type:"integer"`
10151
10152	// The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53
10153	// to perform health checks on. If you don't specify a value for IPAddress,
10154	// Route 53 sends a DNS request to resolve the domain name that you specify
10155	// in FullyQualifiedDomainName at the interval that you specify in RequestInterval.
10156	// Using an IP address returned by DNS, Route 53 then checks the health of the
10157	// endpoint.
10158	//
10159	// Use one of the following formats for the value of IPAddress:
10160	//
10161	//    * IPv4 address: four values between 0 and 255, separated by periods (.),
10162	//    for example, 192.0.2.44.
10163	//
10164	//    * IPv6 address: eight groups of four hexadecimal values, separated by
10165	//    colons (:), for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. You
10166	//    can also shorten IPv6 addresses as described in RFC 5952, for example,
10167	//    2001:db8:85a3::abcd:1:2345.
10168	//
10169	// If the endpoint is an EC2 instance, we recommend that you create an Elastic
10170	// IP address, associate it with your EC2 instance, and specify the Elastic
10171	// IP address for IPAddress. This ensures that the IP address of your instance
10172	// will never change.
10173	//
10174	// For more information, see FullyQualifiedDomainName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName).
10175	//
10176	// Constraints: Route 53 can't check the health of endpoints for which the IP
10177	// address is in local, private, non-routable, or multicast ranges. For more
10178	// information about IP addresses for which you can't create health checks,
10179	// see the following documents:
10180	//
10181	//    * RFC 5735, Special Use IPv4 Addresses (https://tools.ietf.org/html/rfc5735)
10182	//
10183	//    * RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space (https://tools.ietf.org/html/rfc6598)
10184	//
10185	//    * RFC 5156, Special-Use IPv6 Addresses (https://tools.ietf.org/html/rfc5156)
10186	//
10187	// When the value of Type is CALCULATED or CLOUDWATCH_METRIC, omit IPAddress.
10188	IPAddress *string `type:"string"`
10189
10190	// When CloudWatch has insufficient data about the metric to determine the alarm
10191	// state, the status that you want Amazon Route 53 to assign to the health check:
10192	//
10193	//    * Healthy: Route 53 considers the health check to be healthy.
10194	//
10195	//    * Unhealthy: Route 53 considers the health check to be unhealthy.
10196	//
10197	//    * LastKnownStatus: Route 53 uses the status of the health check from the
10198	//    last time that CloudWatch had sufficient data to determine the alarm state.
10199	//    For new health checks that have no last known status, the default status
10200	//    for the health check is healthy.
10201	InsufficientDataHealthStatus *string `type:"string" enum:"InsufficientDataHealthStatus"`
10202
10203	// Specify whether you want Amazon Route 53 to invert the status of a health
10204	// check, for example, to consider a health check unhealthy when it otherwise
10205	// would be considered healthy.
10206	Inverted *bool `type:"boolean"`
10207
10208	// Specify whether you want Amazon Route 53 to measure the latency between health
10209	// checkers in multiple AWS regions and your endpoint, and to display CloudWatch
10210	// latency graphs on the Health Checks page in the Route 53 console.
10211	//
10212	// You can't change the value of MeasureLatency after you create a health check.
10213	MeasureLatency *bool `type:"boolean"`
10214
10215	// The port on the endpoint on which you want Amazon Route 53 to perform health
10216	// checks. Specify a value for Port only when you specify a value for IPAddress.
10217	Port *int64 `min:"1" type:"integer"`
10218
10219	// A complex type that contains one Region element for each region from which
10220	// you want Amazon Route 53 health checkers to check the specified endpoint.
10221	//
10222	// If you don't specify any regions, Route 53 health checkers automatically
10223	// performs checks from all of the regions that are listed under Valid Values.
10224	//
10225	// If you update a health check to remove a region that has been performing
10226	// health checks, Route 53 will briefly continue to perform checks from that
10227	// region to ensure that some health checkers are always checking the endpoint
10228	// (for example, if you replace three regions with four different regions).
10229	Regions []*string `locationNameList:"Region" min:"3" type:"list"`
10230
10231	// The number of seconds between the time that Amazon Route 53 gets a response
10232	// from your endpoint and the time that it sends the next health check request.
10233	// Each Route 53 health checker makes requests at this interval.
10234	//
10235	// You can't change the value of RequestInterval after you create a health check.
10236	//
10237	// If you don't specify a value for RequestInterval, the default value is 30
10238	// seconds.
10239	RequestInterval *int64 `min:"10" type:"integer"`
10240
10241	// The path, if any, that you want Amazon Route 53 to request when performing
10242	// health checks. The path can be any value for which your endpoint will return
10243	// an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example,
10244	// the file /docs/route53-health-check.html. You can also include query string
10245	// parameters, for example, /welcome.html?language=jp&login=y.
10246	ResourcePath *string `type:"string"`
10247
10248	// If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that
10249	// you want Amazon Route 53 to search for in the response body from the specified
10250	// resource. If the string appears in the response body, Route 53 considers
10251	// the resource healthy.
10252	//
10253	// Route 53 considers case when searching for SearchString in the response body.
10254	SearchString *string `type:"string"`
10255
10256	// The type of health check that you want to create, which indicates how Amazon
10257	// Route 53 determines whether an endpoint is healthy.
10258	//
10259	// You can't change the value of Type after you create a health check.
10260	//
10261	// You can create the following types of health checks:
10262	//
10263	//    * HTTP: Route 53 tries to establish a TCP connection. If successful, Route
10264	//    53 submits an HTTP request and waits for an HTTP status code of 200 or
10265	//    greater and less than 400.
10266	//
10267	//    * HTTPS: Route 53 tries to establish a TCP connection. If successful,
10268	//    Route 53 submits an HTTPS request and waits for an HTTP status code of
10269	//    200 or greater and less than 400. If you specify HTTPS for the value of
10270	//    Type, the endpoint must support TLS v1.0 or later.
10271	//
10272	//    * HTTP_STR_MATCH: Route 53 tries to establish a TCP connection. If successful,
10273	//    Route 53 submits an HTTP request and searches the first 5,120 bytes of
10274	//    the response body for the string that you specify in SearchString.
10275	//
10276	//    * HTTPS_STR_MATCH: Route 53 tries to establish a TCP connection. If successful,
10277	//    Route 53 submits an HTTPS request and searches the first 5,120 bytes of
10278	//    the response body for the string that you specify in SearchString.
10279	//
10280	//    * TCP: Route 53 tries to establish a TCP connection.
10281	//
10282	//    * CLOUDWATCH_METRIC: The health check is associated with a CloudWatch
10283	//    alarm. If the state of the alarm is OK, the health check is considered
10284	//    healthy. If the state is ALARM, the health check is considered unhealthy.
10285	//    If CloudWatch doesn't have sufficient data to determine whether the state
10286	//    is OK or ALARM, the health check status depends on the setting for InsufficientDataHealthStatus:
10287	//    Healthy, Unhealthy, or LastKnownStatus.
10288	//
10289	//    * CALCULATED: For health checks that monitor the status of other health
10290	//    checks, Route 53 adds up the number of health checks that Route 53 health
10291	//    checkers consider to be healthy and compares that number with the value
10292	//    of HealthThreshold.
10293	//
10294	// For more information, see How Route 53 Determines Whether an Endpoint Is
10295	// Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
10296	// in the Amazon Route 53 Developer Guide.
10297	//
10298	// Type is a required field
10299	Type *string `type:"string" required:"true" enum:"HealthCheckType"`
10300}
10301
10302// String returns the string representation
10303func (s HealthCheckConfig) String() string {
10304	return awsutil.Prettify(s)
10305}
10306
10307// GoString returns the string representation
10308func (s HealthCheckConfig) GoString() string {
10309	return s.String()
10310}
10311
10312// Validate inspects the fields of the type to determine if they are valid.
10313func (s *HealthCheckConfig) Validate() error {
10314	invalidParams := request.ErrInvalidParams{Context: "HealthCheckConfig"}
10315	if s.FailureThreshold != nil && *s.FailureThreshold < 1 {
10316		invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1))
10317	}
10318	if s.Port != nil && *s.Port < 1 {
10319		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
10320	}
10321	if s.Regions != nil && len(s.Regions) < 3 {
10322		invalidParams.Add(request.NewErrParamMinLen("Regions", 3))
10323	}
10324	if s.RequestInterval != nil && *s.RequestInterval < 10 {
10325		invalidParams.Add(request.NewErrParamMinValue("RequestInterval", 10))
10326	}
10327	if s.Type == nil {
10328		invalidParams.Add(request.NewErrParamRequired("Type"))
10329	}
10330	if s.AlarmIdentifier != nil {
10331		if err := s.AlarmIdentifier.Validate(); err != nil {
10332			invalidParams.AddNested("AlarmIdentifier", err.(request.ErrInvalidParams))
10333		}
10334	}
10335
10336	if invalidParams.Len() > 0 {
10337		return invalidParams
10338	}
10339	return nil
10340}
10341
10342// SetAlarmIdentifier sets the AlarmIdentifier field's value.
10343func (s *HealthCheckConfig) SetAlarmIdentifier(v *AlarmIdentifier) *HealthCheckConfig {
10344	s.AlarmIdentifier = v
10345	return s
10346}
10347
10348// SetChildHealthChecks sets the ChildHealthChecks field's value.
10349func (s *HealthCheckConfig) SetChildHealthChecks(v []*string) *HealthCheckConfig {
10350	s.ChildHealthChecks = v
10351	return s
10352}
10353
10354// SetDisabled sets the Disabled field's value.
10355func (s *HealthCheckConfig) SetDisabled(v bool) *HealthCheckConfig {
10356	s.Disabled = &v
10357	return s
10358}
10359
10360// SetEnableSNI sets the EnableSNI field's value.
10361func (s *HealthCheckConfig) SetEnableSNI(v bool) *HealthCheckConfig {
10362	s.EnableSNI = &v
10363	return s
10364}
10365
10366// SetFailureThreshold sets the FailureThreshold field's value.
10367func (s *HealthCheckConfig) SetFailureThreshold(v int64) *HealthCheckConfig {
10368	s.FailureThreshold = &v
10369	return s
10370}
10371
10372// SetFullyQualifiedDomainName sets the FullyQualifiedDomainName field's value.
10373func (s *HealthCheckConfig) SetFullyQualifiedDomainName(v string) *HealthCheckConfig {
10374	s.FullyQualifiedDomainName = &v
10375	return s
10376}
10377
10378// SetHealthThreshold sets the HealthThreshold field's value.
10379func (s *HealthCheckConfig) SetHealthThreshold(v int64) *HealthCheckConfig {
10380	s.HealthThreshold = &v
10381	return s
10382}
10383
10384// SetIPAddress sets the IPAddress field's value.
10385func (s *HealthCheckConfig) SetIPAddress(v string) *HealthCheckConfig {
10386	s.IPAddress = &v
10387	return s
10388}
10389
10390// SetInsufficientDataHealthStatus sets the InsufficientDataHealthStatus field's value.
10391func (s *HealthCheckConfig) SetInsufficientDataHealthStatus(v string) *HealthCheckConfig {
10392	s.InsufficientDataHealthStatus = &v
10393	return s
10394}
10395
10396// SetInverted sets the Inverted field's value.
10397func (s *HealthCheckConfig) SetInverted(v bool) *HealthCheckConfig {
10398	s.Inverted = &v
10399	return s
10400}
10401
10402// SetMeasureLatency sets the MeasureLatency field's value.
10403func (s *HealthCheckConfig) SetMeasureLatency(v bool) *HealthCheckConfig {
10404	s.MeasureLatency = &v
10405	return s
10406}
10407
10408// SetPort sets the Port field's value.
10409func (s *HealthCheckConfig) SetPort(v int64) *HealthCheckConfig {
10410	s.Port = &v
10411	return s
10412}
10413
10414// SetRegions sets the Regions field's value.
10415func (s *HealthCheckConfig) SetRegions(v []*string) *HealthCheckConfig {
10416	s.Regions = v
10417	return s
10418}
10419
10420// SetRequestInterval sets the RequestInterval field's value.
10421func (s *HealthCheckConfig) SetRequestInterval(v int64) *HealthCheckConfig {
10422	s.RequestInterval = &v
10423	return s
10424}
10425
10426// SetResourcePath sets the ResourcePath field's value.
10427func (s *HealthCheckConfig) SetResourcePath(v string) *HealthCheckConfig {
10428	s.ResourcePath = &v
10429	return s
10430}
10431
10432// SetSearchString sets the SearchString field's value.
10433func (s *HealthCheckConfig) SetSearchString(v string) *HealthCheckConfig {
10434	s.SearchString = &v
10435	return s
10436}
10437
10438// SetType sets the Type field's value.
10439func (s *HealthCheckConfig) SetType(v string) *HealthCheckConfig {
10440	s.Type = &v
10441	return s
10442}
10443
10444// A complex type that contains the last failure reason as reported by one Amazon
10445// Route 53 health checker.
10446type HealthCheckObservation struct {
10447	_ struct{} `type:"structure"`
10448
10449	// The IP address of the Amazon Route 53 health checker that provided the failure
10450	// reason in StatusReport.
10451	IPAddress *string `type:"string"`
10452
10453	// The region of the Amazon Route 53 health checker that provided the status
10454	// in StatusReport.
10455	Region *string `min:"1" type:"string" enum:"HealthCheckRegion"`
10456
10457	// A complex type that contains the last failure reason as reported by one Amazon
10458	// Route 53 health checker and the time of the failed health check.
10459	StatusReport *StatusReport `type:"structure"`
10460}
10461
10462// String returns the string representation
10463func (s HealthCheckObservation) String() string {
10464	return awsutil.Prettify(s)
10465}
10466
10467// GoString returns the string representation
10468func (s HealthCheckObservation) GoString() string {
10469	return s.String()
10470}
10471
10472// SetIPAddress sets the IPAddress field's value.
10473func (s *HealthCheckObservation) SetIPAddress(v string) *HealthCheckObservation {
10474	s.IPAddress = &v
10475	return s
10476}
10477
10478// SetRegion sets the Region field's value.
10479func (s *HealthCheckObservation) SetRegion(v string) *HealthCheckObservation {
10480	s.Region = &v
10481	return s
10482}
10483
10484// SetStatusReport sets the StatusReport field's value.
10485func (s *HealthCheckObservation) SetStatusReport(v *StatusReport) *HealthCheckObservation {
10486	s.StatusReport = v
10487	return s
10488}
10489
10490// A complex type that contains general information about the hosted zone.
10491type HostedZone struct {
10492	_ struct{} `type:"structure"`
10493
10494	// The value that you specified for CallerReference when you created the hosted
10495	// zone.
10496	//
10497	// CallerReference is a required field
10498	CallerReference *string `min:"1" type:"string" required:"true"`
10499
10500	// A complex type that includes the Comment and PrivateZone elements. If you
10501	// omitted the HostedZoneConfig and Comment elements from the request, the Config
10502	// and Comment elements don't appear in the response.
10503	Config *HostedZoneConfig `type:"structure"`
10504
10505	// The ID that Amazon Route 53 assigned to the hosted zone when you created
10506	// it.
10507	//
10508	// Id is a required field
10509	Id *string `type:"string" required:"true"`
10510
10511	// If the hosted zone was created by another service, the service that created
10512	// the hosted zone. When a hosted zone is created by another service, you can't
10513	// edit or delete it using Route 53.
10514	LinkedService *LinkedService `type:"structure"`
10515
10516	// The name of the domain. For public hosted zones, this is the name that you
10517	// have registered with your DNS registrar.
10518	//
10519	// For information about how to specify characters other than a-z, 0-9, and
10520	// - (hyphen) and how to specify internationalized domain names, see CreateHostedZone
10521	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html).
10522	//
10523	// Name is a required field
10524	Name *string `type:"string" required:"true"`
10525
10526	// The number of resource record sets in the hosted zone.
10527	ResourceRecordSetCount *int64 `type:"long"`
10528}
10529
10530// String returns the string representation
10531func (s HostedZone) String() string {
10532	return awsutil.Prettify(s)
10533}
10534
10535// GoString returns the string representation
10536func (s HostedZone) GoString() string {
10537	return s.String()
10538}
10539
10540// SetCallerReference sets the CallerReference field's value.
10541func (s *HostedZone) SetCallerReference(v string) *HostedZone {
10542	s.CallerReference = &v
10543	return s
10544}
10545
10546// SetConfig sets the Config field's value.
10547func (s *HostedZone) SetConfig(v *HostedZoneConfig) *HostedZone {
10548	s.Config = v
10549	return s
10550}
10551
10552// SetId sets the Id field's value.
10553func (s *HostedZone) SetId(v string) *HostedZone {
10554	s.Id = &v
10555	return s
10556}
10557
10558// SetLinkedService sets the LinkedService field's value.
10559func (s *HostedZone) SetLinkedService(v *LinkedService) *HostedZone {
10560	s.LinkedService = v
10561	return s
10562}
10563
10564// SetName sets the Name field's value.
10565func (s *HostedZone) SetName(v string) *HostedZone {
10566	s.Name = &v
10567	return s
10568}
10569
10570// SetResourceRecordSetCount sets the ResourceRecordSetCount field's value.
10571func (s *HostedZone) SetResourceRecordSetCount(v int64) *HostedZone {
10572	s.ResourceRecordSetCount = &v
10573	return s
10574}
10575
10576// A complex type that contains an optional comment about your hosted zone.
10577// If you don't want to specify a comment, omit both the HostedZoneConfig and
10578// Comment elements.
10579type HostedZoneConfig struct {
10580	_ struct{} `type:"structure"`
10581
10582	// Any comments that you want to include about the hosted zone.
10583	Comment *string `type:"string"`
10584
10585	// A value that indicates whether this is a private hosted zone.
10586	PrivateZone *bool `type:"boolean"`
10587}
10588
10589// String returns the string representation
10590func (s HostedZoneConfig) String() string {
10591	return awsutil.Prettify(s)
10592}
10593
10594// GoString returns the string representation
10595func (s HostedZoneConfig) GoString() string {
10596	return s.String()
10597}
10598
10599// SetComment sets the Comment field's value.
10600func (s *HostedZoneConfig) SetComment(v string) *HostedZoneConfig {
10601	s.Comment = &v
10602	return s
10603}
10604
10605// SetPrivateZone sets the PrivateZone field's value.
10606func (s *HostedZoneConfig) SetPrivateZone(v bool) *HostedZoneConfig {
10607	s.PrivateZone = &v
10608	return s
10609}
10610
10611// A complex type that contains the type of limit that you specified in the
10612// request and the current value for that limit.
10613type HostedZoneLimit struct {
10614	_ struct{} `type:"structure"`
10615
10616	// The limit that you requested. Valid values include the following:
10617	//
10618	//    * MAX_RRSETS_BY_ZONE: The maximum number of records that you can create
10619	//    in the specified hosted zone.
10620	//
10621	//    * MAX_VPCS_ASSOCIATED_BY_ZONE: The maximum number of Amazon VPCs that
10622	//    you can associate with the specified private hosted zone.
10623	//
10624	// Type is a required field
10625	Type *string `type:"string" required:"true" enum:"HostedZoneLimitType"`
10626
10627	// The current value for the limit that is specified by Type.
10628	//
10629	// Value is a required field
10630	Value *int64 `min:"1" type:"long" required:"true"`
10631}
10632
10633// String returns the string representation
10634func (s HostedZoneLimit) String() string {
10635	return awsutil.Prettify(s)
10636}
10637
10638// GoString returns the string representation
10639func (s HostedZoneLimit) GoString() string {
10640	return s.String()
10641}
10642
10643// SetType sets the Type field's value.
10644func (s *HostedZoneLimit) SetType(v string) *HostedZoneLimit {
10645	s.Type = &v
10646	return s
10647}
10648
10649// SetValue sets the Value field's value.
10650func (s *HostedZoneLimit) SetValue(v int64) *HostedZoneLimit {
10651	s.Value = &v
10652	return s
10653}
10654
10655// If a health check or hosted zone was created by another service, LinkedService
10656// is a complex type that describes the service that created the resource. When
10657// a resource is created by another service, you can't edit or delete it using
10658// Amazon Route 53.
10659type LinkedService struct {
10660	_ struct{} `type:"structure"`
10661
10662	// If the health check or hosted zone was created by another service, an optional
10663	// description that can be provided by the other service. When a resource is
10664	// created by another service, you can't edit or delete it using Amazon Route
10665	// 53.
10666	Description *string `type:"string"`
10667
10668	// If the health check or hosted zone was created by another service, the service
10669	// that created the resource. When a resource is created by another service,
10670	// you can't edit or delete it using Amazon Route 53.
10671	ServicePrincipal *string `type:"string"`
10672}
10673
10674// String returns the string representation
10675func (s LinkedService) String() string {
10676	return awsutil.Prettify(s)
10677}
10678
10679// GoString returns the string representation
10680func (s LinkedService) GoString() string {
10681	return s.String()
10682}
10683
10684// SetDescription sets the Description field's value.
10685func (s *LinkedService) SetDescription(v string) *LinkedService {
10686	s.Description = &v
10687	return s
10688}
10689
10690// SetServicePrincipal sets the ServicePrincipal field's value.
10691func (s *LinkedService) SetServicePrincipal(v string) *LinkedService {
10692	s.ServicePrincipal = &v
10693	return s
10694}
10695
10696// A request to get a list of geographic locations that Amazon Route 53 supports
10697// for geolocation resource record sets.
10698type ListGeoLocationsInput struct {
10699	_ struct{} `locationName:"ListGeoLocationsRequest" type:"structure"`
10700
10701	// (Optional) The maximum number of geolocations to be included in the response
10702	// body for this request. If more than maxitems geolocations remain to be listed,
10703	// then the value of the IsTruncated element in the response is true.
10704	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
10705
10706	// The code for the continent with which you want to start listing locations
10707	// that Amazon Route 53 supports for geolocation. If Route 53 has already returned
10708	// a page or more of results, if IsTruncated is true, and if NextContinentCode
10709	// from the previous response has a value, enter that value in startcontinentcode
10710	// to return the next page of results.
10711	//
10712	// Include startcontinentcode only if you want to list continents. Don't include
10713	// startcontinentcode when you're listing countries or countries with their
10714	// subdivisions.
10715	StartContinentCode *string `location:"querystring" locationName:"startcontinentcode" min:"2" type:"string"`
10716
10717	// The code for the country with which you want to start listing locations that
10718	// Amazon Route 53 supports for geolocation. If Route 53 has already returned
10719	// a page or more of results, if IsTruncated is true, and if NextCountryCode
10720	// from the previous response has a value, enter that value in startcountrycode
10721	// to return the next page of results.
10722	//
10723	// Route 53 uses the two-letter country codes that are specified in ISO standard
10724	// 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
10725	StartCountryCode *string `location:"querystring" locationName:"startcountrycode" min:"1" type:"string"`
10726
10727	// The code for the subdivision (for example, state or province) with which
10728	// you want to start listing locations that Amazon Route 53 supports for geolocation.
10729	// If Route 53 has already returned a page or more of results, if IsTruncated
10730	// is true, and if NextSubdivisionCode from the previous response has a value,
10731	// enter that value in startsubdivisioncode to return the next page of results.
10732	//
10733	// To list subdivisions of a country, you must include both startcountrycode
10734	// and startsubdivisioncode.
10735	StartSubdivisionCode *string `location:"querystring" locationName:"startsubdivisioncode" min:"1" type:"string"`
10736}
10737
10738// String returns the string representation
10739func (s ListGeoLocationsInput) String() string {
10740	return awsutil.Prettify(s)
10741}
10742
10743// GoString returns the string representation
10744func (s ListGeoLocationsInput) GoString() string {
10745	return s.String()
10746}
10747
10748// Validate inspects the fields of the type to determine if they are valid.
10749func (s *ListGeoLocationsInput) Validate() error {
10750	invalidParams := request.ErrInvalidParams{Context: "ListGeoLocationsInput"}
10751	if s.StartContinentCode != nil && len(*s.StartContinentCode) < 2 {
10752		invalidParams.Add(request.NewErrParamMinLen("StartContinentCode", 2))
10753	}
10754	if s.StartCountryCode != nil && len(*s.StartCountryCode) < 1 {
10755		invalidParams.Add(request.NewErrParamMinLen("StartCountryCode", 1))
10756	}
10757	if s.StartSubdivisionCode != nil && len(*s.StartSubdivisionCode) < 1 {
10758		invalidParams.Add(request.NewErrParamMinLen("StartSubdivisionCode", 1))
10759	}
10760
10761	if invalidParams.Len() > 0 {
10762		return invalidParams
10763	}
10764	return nil
10765}
10766
10767// SetMaxItems sets the MaxItems field's value.
10768func (s *ListGeoLocationsInput) SetMaxItems(v string) *ListGeoLocationsInput {
10769	s.MaxItems = &v
10770	return s
10771}
10772
10773// SetStartContinentCode sets the StartContinentCode field's value.
10774func (s *ListGeoLocationsInput) SetStartContinentCode(v string) *ListGeoLocationsInput {
10775	s.StartContinentCode = &v
10776	return s
10777}
10778
10779// SetStartCountryCode sets the StartCountryCode field's value.
10780func (s *ListGeoLocationsInput) SetStartCountryCode(v string) *ListGeoLocationsInput {
10781	s.StartCountryCode = &v
10782	return s
10783}
10784
10785// SetStartSubdivisionCode sets the StartSubdivisionCode field's value.
10786func (s *ListGeoLocationsInput) SetStartSubdivisionCode(v string) *ListGeoLocationsInput {
10787	s.StartSubdivisionCode = &v
10788	return s
10789}
10790
10791// A complex type containing the response information for the request.
10792type ListGeoLocationsOutput struct {
10793	_ struct{} `type:"structure"`
10794
10795	// A complex type that contains one GeoLocationDetails element for each location
10796	// that Amazon Route 53 supports for geolocation.
10797	//
10798	// GeoLocationDetailsList is a required field
10799	GeoLocationDetailsList []*GeoLocationDetails `locationNameList:"GeoLocationDetails" type:"list" required:"true"`
10800
10801	// A value that indicates whether more locations remain to be listed after the
10802	// last location in this response. If so, the value of IsTruncated is true.
10803	// To get more values, submit another request and include the values of NextContinentCode,
10804	// NextCountryCode, and NextSubdivisionCode in the startcontinentcode, startcountrycode,
10805	// and startsubdivisioncode, as applicable.
10806	//
10807	// IsTruncated is a required field
10808	IsTruncated *bool `type:"boolean" required:"true"`
10809
10810	// The value that you specified for MaxItems in the request.
10811	//
10812	// MaxItems is a required field
10813	MaxItems *string `type:"string" required:"true"`
10814
10815	// If IsTruncated is true, you can make a follow-up request to display more
10816	// locations. Enter the value of NextContinentCode in the startcontinentcode
10817	// parameter in another ListGeoLocations request.
10818	NextContinentCode *string `min:"2" type:"string"`
10819
10820	// If IsTruncated is true, you can make a follow-up request to display more
10821	// locations. Enter the value of NextCountryCode in the startcountrycode parameter
10822	// in another ListGeoLocations request.
10823	NextCountryCode *string `min:"1" type:"string"`
10824
10825	// If IsTruncated is true, you can make a follow-up request to display more
10826	// locations. Enter the value of NextSubdivisionCode in the startsubdivisioncode
10827	// parameter in another ListGeoLocations request.
10828	NextSubdivisionCode *string `min:"1" type:"string"`
10829}
10830
10831// String returns the string representation
10832func (s ListGeoLocationsOutput) String() string {
10833	return awsutil.Prettify(s)
10834}
10835
10836// GoString returns the string representation
10837func (s ListGeoLocationsOutput) GoString() string {
10838	return s.String()
10839}
10840
10841// SetGeoLocationDetailsList sets the GeoLocationDetailsList field's value.
10842func (s *ListGeoLocationsOutput) SetGeoLocationDetailsList(v []*GeoLocationDetails) *ListGeoLocationsOutput {
10843	s.GeoLocationDetailsList = v
10844	return s
10845}
10846
10847// SetIsTruncated sets the IsTruncated field's value.
10848func (s *ListGeoLocationsOutput) SetIsTruncated(v bool) *ListGeoLocationsOutput {
10849	s.IsTruncated = &v
10850	return s
10851}
10852
10853// SetMaxItems sets the MaxItems field's value.
10854func (s *ListGeoLocationsOutput) SetMaxItems(v string) *ListGeoLocationsOutput {
10855	s.MaxItems = &v
10856	return s
10857}
10858
10859// SetNextContinentCode sets the NextContinentCode field's value.
10860func (s *ListGeoLocationsOutput) SetNextContinentCode(v string) *ListGeoLocationsOutput {
10861	s.NextContinentCode = &v
10862	return s
10863}
10864
10865// SetNextCountryCode sets the NextCountryCode field's value.
10866func (s *ListGeoLocationsOutput) SetNextCountryCode(v string) *ListGeoLocationsOutput {
10867	s.NextCountryCode = &v
10868	return s
10869}
10870
10871// SetNextSubdivisionCode sets the NextSubdivisionCode field's value.
10872func (s *ListGeoLocationsOutput) SetNextSubdivisionCode(v string) *ListGeoLocationsOutput {
10873	s.NextSubdivisionCode = &v
10874	return s
10875}
10876
10877// A request to retrieve a list of the health checks that are associated with
10878// the current AWS account.
10879type ListHealthChecksInput struct {
10880	_ struct{} `locationName:"ListHealthChecksRequest" type:"structure"`
10881
10882	// If the value of IsTruncated in the previous response was true, you have more
10883	// health checks. To get another group, submit another ListHealthChecks request.
10884	//
10885	// For the value of marker, specify the value of NextMarker from the previous
10886	// response, which is the ID of the first health check that Amazon Route 53
10887	// will return if you submit another request.
10888	//
10889	// If the value of IsTruncated in the previous response was false, there are
10890	// no more health checks to get.
10891	Marker *string `location:"querystring" locationName:"marker" type:"string"`
10892
10893	// The maximum number of health checks that you want ListHealthChecks to return
10894	// in response to the current request. Amazon Route 53 returns a maximum of
10895	// 100 items. If you set MaxItems to a value greater than 100, Route 53 returns
10896	// only the first 100 health checks.
10897	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
10898}
10899
10900// String returns the string representation
10901func (s ListHealthChecksInput) String() string {
10902	return awsutil.Prettify(s)
10903}
10904
10905// GoString returns the string representation
10906func (s ListHealthChecksInput) GoString() string {
10907	return s.String()
10908}
10909
10910// SetMarker sets the Marker field's value.
10911func (s *ListHealthChecksInput) SetMarker(v string) *ListHealthChecksInput {
10912	s.Marker = &v
10913	return s
10914}
10915
10916// SetMaxItems sets the MaxItems field's value.
10917func (s *ListHealthChecksInput) SetMaxItems(v string) *ListHealthChecksInput {
10918	s.MaxItems = &v
10919	return s
10920}
10921
10922// A complex type that contains the response to a ListHealthChecks request.
10923type ListHealthChecksOutput struct {
10924	_ struct{} `type:"structure"`
10925
10926	// A complex type that contains one HealthCheck element for each health check
10927	// that is associated with the current AWS account.
10928	//
10929	// HealthChecks is a required field
10930	HealthChecks []*HealthCheck `locationNameList:"HealthCheck" type:"list" required:"true"`
10931
10932	// A flag that indicates whether there are more health checks to be listed.
10933	// If the response was truncated, you can get the next group of health checks
10934	// by submitting another ListHealthChecks request and specifying the value of
10935	// NextMarker in the marker parameter.
10936	//
10937	// IsTruncated is a required field
10938	IsTruncated *bool `type:"boolean" required:"true"`
10939
10940	// For the second and subsequent calls to ListHealthChecks, Marker is the value
10941	// that you specified for the marker parameter in the previous request.
10942	//
10943	// Marker is a required field
10944	Marker *string `type:"string" required:"true"`
10945
10946	// The value that you specified for the maxitems parameter in the call to ListHealthChecks
10947	// that produced the current response.
10948	//
10949	// MaxItems is a required field
10950	MaxItems *string `type:"string" required:"true"`
10951
10952	// If IsTruncated is true, the value of NextMarker identifies the first health
10953	// check that Amazon Route 53 returns if you submit another ListHealthChecks
10954	// request and specify the value of NextMarker in the marker parameter.
10955	NextMarker *string `type:"string"`
10956}
10957
10958// String returns the string representation
10959func (s ListHealthChecksOutput) String() string {
10960	return awsutil.Prettify(s)
10961}
10962
10963// GoString returns the string representation
10964func (s ListHealthChecksOutput) GoString() string {
10965	return s.String()
10966}
10967
10968// SetHealthChecks sets the HealthChecks field's value.
10969func (s *ListHealthChecksOutput) SetHealthChecks(v []*HealthCheck) *ListHealthChecksOutput {
10970	s.HealthChecks = v
10971	return s
10972}
10973
10974// SetIsTruncated sets the IsTruncated field's value.
10975func (s *ListHealthChecksOutput) SetIsTruncated(v bool) *ListHealthChecksOutput {
10976	s.IsTruncated = &v
10977	return s
10978}
10979
10980// SetMarker sets the Marker field's value.
10981func (s *ListHealthChecksOutput) SetMarker(v string) *ListHealthChecksOutput {
10982	s.Marker = &v
10983	return s
10984}
10985
10986// SetMaxItems sets the MaxItems field's value.
10987func (s *ListHealthChecksOutput) SetMaxItems(v string) *ListHealthChecksOutput {
10988	s.MaxItems = &v
10989	return s
10990}
10991
10992// SetNextMarker sets the NextMarker field's value.
10993func (s *ListHealthChecksOutput) SetNextMarker(v string) *ListHealthChecksOutput {
10994	s.NextMarker = &v
10995	return s
10996}
10997
10998// Retrieves a list of the public and private hosted zones that are associated
10999// with the current AWS account in ASCII order by domain name.
11000type ListHostedZonesByNameInput struct {
11001	_ struct{} `locationName:"ListHostedZonesByNameRequest" type:"structure"`
11002
11003	// (Optional) For your first request to ListHostedZonesByName, include the dnsname
11004	// parameter only if you want to specify the name of the first hosted zone in
11005	// the response. If you don't include the dnsname parameter, Amazon Route 53
11006	// returns all of the hosted zones that were created by the current AWS account,
11007	// in ASCII order. For subsequent requests, include both dnsname and hostedzoneid
11008	// parameters. For dnsname, specify the value of NextDNSName from the previous
11009	// response.
11010	DNSName *string `location:"querystring" locationName:"dnsname" type:"string"`
11011
11012	// (Optional) For your first request to ListHostedZonesByName, do not include
11013	// the hostedzoneid parameter.
11014	//
11015	// If you have more hosted zones than the value of maxitems, ListHostedZonesByName
11016	// returns only the first maxitems hosted zones. To get the next group of maxitems
11017	// hosted zones, submit another request to ListHostedZonesByName and include
11018	// both dnsname and hostedzoneid parameters. For the value of hostedzoneid,
11019	// specify the value of the NextHostedZoneId element from the previous response.
11020	HostedZoneId *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
11021
11022	// The maximum number of hosted zones to be included in the response body for
11023	// this request. If you have more than maxitems hosted zones, then the value
11024	// of the IsTruncated element in the response is true, and the values of NextDNSName
11025	// and NextHostedZoneId specify the first hosted zone in the next group of maxitems
11026	// hosted zones.
11027	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11028}
11029
11030// String returns the string representation
11031func (s ListHostedZonesByNameInput) String() string {
11032	return awsutil.Prettify(s)
11033}
11034
11035// GoString returns the string representation
11036func (s ListHostedZonesByNameInput) GoString() string {
11037	return s.String()
11038}
11039
11040// SetDNSName sets the DNSName field's value.
11041func (s *ListHostedZonesByNameInput) SetDNSName(v string) *ListHostedZonesByNameInput {
11042	s.DNSName = &v
11043	return s
11044}
11045
11046// SetHostedZoneId sets the HostedZoneId field's value.
11047func (s *ListHostedZonesByNameInput) SetHostedZoneId(v string) *ListHostedZonesByNameInput {
11048	s.HostedZoneId = &v
11049	return s
11050}
11051
11052// SetMaxItems sets the MaxItems field's value.
11053func (s *ListHostedZonesByNameInput) SetMaxItems(v string) *ListHostedZonesByNameInput {
11054	s.MaxItems = &v
11055	return s
11056}
11057
11058// A complex type that contains the response information for the request.
11059type ListHostedZonesByNameOutput struct {
11060	_ struct{} `type:"structure"`
11061
11062	// For the second and subsequent calls to ListHostedZonesByName, DNSName is
11063	// the value that you specified for the dnsname parameter in the request that
11064	// produced the current response.
11065	DNSName *string `type:"string"`
11066
11067	// The ID that Amazon Route 53 assigned to the hosted zone when you created
11068	// it.
11069	HostedZoneId *string `type:"string"`
11070
11071	// A complex type that contains general information about the hosted zone.
11072	//
11073	// HostedZones is a required field
11074	HostedZones []*HostedZone `locationNameList:"HostedZone" type:"list" required:"true"`
11075
11076	// A flag that indicates whether there are more hosted zones to be listed. If
11077	// the response was truncated, you can get the next group of maxitems hosted
11078	// zones by calling ListHostedZonesByName again and specifying the values of
11079	// NextDNSName and NextHostedZoneId elements in the dnsname and hostedzoneid
11080	// parameters.
11081	//
11082	// IsTruncated is a required field
11083	IsTruncated *bool `type:"boolean" required:"true"`
11084
11085	// The value that you specified for the maxitems parameter in the call to ListHostedZonesByName
11086	// that produced the current response.
11087	//
11088	// MaxItems is a required field
11089	MaxItems *string `type:"string" required:"true"`
11090
11091	// If IsTruncated is true, the value of NextDNSName is the name of the first
11092	// hosted zone in the next group of maxitems hosted zones. Call ListHostedZonesByName
11093	// again and specify the value of NextDNSName and NextHostedZoneId in the dnsname
11094	// and hostedzoneid parameters, respectively.
11095	//
11096	// This element is present only if IsTruncated is true.
11097	NextDNSName *string `type:"string"`
11098
11099	// If IsTruncated is true, the value of NextHostedZoneId identifies the first
11100	// hosted zone in the next group of maxitems hosted zones. Call ListHostedZonesByName
11101	// again and specify the value of NextDNSName and NextHostedZoneId in the dnsname
11102	// and hostedzoneid parameters, respectively.
11103	//
11104	// This element is present only if IsTruncated is true.
11105	NextHostedZoneId *string `type:"string"`
11106}
11107
11108// String returns the string representation
11109func (s ListHostedZonesByNameOutput) String() string {
11110	return awsutil.Prettify(s)
11111}
11112
11113// GoString returns the string representation
11114func (s ListHostedZonesByNameOutput) GoString() string {
11115	return s.String()
11116}
11117
11118// SetDNSName sets the DNSName field's value.
11119func (s *ListHostedZonesByNameOutput) SetDNSName(v string) *ListHostedZonesByNameOutput {
11120	s.DNSName = &v
11121	return s
11122}
11123
11124// SetHostedZoneId sets the HostedZoneId field's value.
11125func (s *ListHostedZonesByNameOutput) SetHostedZoneId(v string) *ListHostedZonesByNameOutput {
11126	s.HostedZoneId = &v
11127	return s
11128}
11129
11130// SetHostedZones sets the HostedZones field's value.
11131func (s *ListHostedZonesByNameOutput) SetHostedZones(v []*HostedZone) *ListHostedZonesByNameOutput {
11132	s.HostedZones = v
11133	return s
11134}
11135
11136// SetIsTruncated sets the IsTruncated field's value.
11137func (s *ListHostedZonesByNameOutput) SetIsTruncated(v bool) *ListHostedZonesByNameOutput {
11138	s.IsTruncated = &v
11139	return s
11140}
11141
11142// SetMaxItems sets the MaxItems field's value.
11143func (s *ListHostedZonesByNameOutput) SetMaxItems(v string) *ListHostedZonesByNameOutput {
11144	s.MaxItems = &v
11145	return s
11146}
11147
11148// SetNextDNSName sets the NextDNSName field's value.
11149func (s *ListHostedZonesByNameOutput) SetNextDNSName(v string) *ListHostedZonesByNameOutput {
11150	s.NextDNSName = &v
11151	return s
11152}
11153
11154// SetNextHostedZoneId sets the NextHostedZoneId field's value.
11155func (s *ListHostedZonesByNameOutput) SetNextHostedZoneId(v string) *ListHostedZonesByNameOutput {
11156	s.NextHostedZoneId = &v
11157	return s
11158}
11159
11160// A request to retrieve a list of the public and private hosted zones that
11161// are associated with the current AWS account.
11162type ListHostedZonesInput struct {
11163	_ struct{} `locationName:"ListHostedZonesRequest" type:"structure"`
11164
11165	// If you're using reusable delegation sets and you want to list all of the
11166	// hosted zones that are associated with a reusable delegation set, specify
11167	// the ID of that reusable delegation set.
11168	DelegationSetId *string `location:"querystring" locationName:"delegationsetid" type:"string"`
11169
11170	// If the value of IsTruncated in the previous response was true, you have more
11171	// hosted zones. To get more hosted zones, submit another ListHostedZones request.
11172	//
11173	// For the value of marker, specify the value of NextMarker from the previous
11174	// response, which is the ID of the first hosted zone that Amazon Route 53 will
11175	// return if you submit another request.
11176	//
11177	// If the value of IsTruncated in the previous response was false, there are
11178	// no more hosted zones to get.
11179	Marker *string `location:"querystring" locationName:"marker" type:"string"`
11180
11181	// (Optional) The maximum number of hosted zones that you want Amazon Route
11182	// 53 to return. If you have more than maxitems hosted zones, the value of IsTruncated
11183	// in the response is true, and the value of NextMarker is the hosted zone ID
11184	// of the first hosted zone that Route 53 will return if you submit another
11185	// request.
11186	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11187}
11188
11189// String returns the string representation
11190func (s ListHostedZonesInput) String() string {
11191	return awsutil.Prettify(s)
11192}
11193
11194// GoString returns the string representation
11195func (s ListHostedZonesInput) GoString() string {
11196	return s.String()
11197}
11198
11199// SetDelegationSetId sets the DelegationSetId field's value.
11200func (s *ListHostedZonesInput) SetDelegationSetId(v string) *ListHostedZonesInput {
11201	s.DelegationSetId = &v
11202	return s
11203}
11204
11205// SetMarker sets the Marker field's value.
11206func (s *ListHostedZonesInput) SetMarker(v string) *ListHostedZonesInput {
11207	s.Marker = &v
11208	return s
11209}
11210
11211// SetMaxItems sets the MaxItems field's value.
11212func (s *ListHostedZonesInput) SetMaxItems(v string) *ListHostedZonesInput {
11213	s.MaxItems = &v
11214	return s
11215}
11216
11217type ListHostedZonesOutput struct {
11218	_ struct{} `type:"structure"`
11219
11220	// A complex type that contains general information about the hosted zone.
11221	//
11222	// HostedZones is a required field
11223	HostedZones []*HostedZone `locationNameList:"HostedZone" type:"list" required:"true"`
11224
11225	// A flag indicating whether there are more hosted zones to be listed. If the
11226	// response was truncated, you can get more hosted zones by submitting another
11227	// ListHostedZones request and specifying the value of NextMarker in the marker
11228	// parameter.
11229	//
11230	// IsTruncated is a required field
11231	IsTruncated *bool `type:"boolean" required:"true"`
11232
11233	// For the second and subsequent calls to ListHostedZones, Marker is the value
11234	// that you specified for the marker parameter in the request that produced
11235	// the current response.
11236	//
11237	// Marker is a required field
11238	Marker *string `type:"string" required:"true"`
11239
11240	// The value that you specified for the maxitems parameter in the call to ListHostedZones
11241	// that produced the current response.
11242	//
11243	// MaxItems is a required field
11244	MaxItems *string `type:"string" required:"true"`
11245
11246	// If IsTruncated is true, the value of NextMarker identifies the first hosted
11247	// zone in the next group of hosted zones. Submit another ListHostedZones request,
11248	// and specify the value of NextMarker from the response in the marker parameter.
11249	//
11250	// This element is present only if IsTruncated is true.
11251	NextMarker *string `type:"string"`
11252}
11253
11254// String returns the string representation
11255func (s ListHostedZonesOutput) String() string {
11256	return awsutil.Prettify(s)
11257}
11258
11259// GoString returns the string representation
11260func (s ListHostedZonesOutput) GoString() string {
11261	return s.String()
11262}
11263
11264// SetHostedZones sets the HostedZones field's value.
11265func (s *ListHostedZonesOutput) SetHostedZones(v []*HostedZone) *ListHostedZonesOutput {
11266	s.HostedZones = v
11267	return s
11268}
11269
11270// SetIsTruncated sets the IsTruncated field's value.
11271func (s *ListHostedZonesOutput) SetIsTruncated(v bool) *ListHostedZonesOutput {
11272	s.IsTruncated = &v
11273	return s
11274}
11275
11276// SetMarker sets the Marker field's value.
11277func (s *ListHostedZonesOutput) SetMarker(v string) *ListHostedZonesOutput {
11278	s.Marker = &v
11279	return s
11280}
11281
11282// SetMaxItems sets the MaxItems field's value.
11283func (s *ListHostedZonesOutput) SetMaxItems(v string) *ListHostedZonesOutput {
11284	s.MaxItems = &v
11285	return s
11286}
11287
11288// SetNextMarker sets the NextMarker field's value.
11289func (s *ListHostedZonesOutput) SetNextMarker(v string) *ListHostedZonesOutput {
11290	s.NextMarker = &v
11291	return s
11292}
11293
11294type ListQueryLoggingConfigsInput struct {
11295	_ struct{} `locationName:"ListQueryLoggingConfigsRequest" type:"structure"`
11296
11297	// (Optional) If you want to list the query logging configuration that is associated
11298	// with a hosted zone, specify the ID in HostedZoneId.
11299	//
11300	// If you don't specify a hosted zone ID, ListQueryLoggingConfigs returns all
11301	// of the configurations that are associated with the current AWS account.
11302	HostedZoneId *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
11303
11304	// (Optional) The maximum number of query logging configurations that you want
11305	// Amazon Route 53 to return in response to the current request. If the current
11306	// AWS account has more than MaxResults configurations, use the value of NextToken
11307	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html#API_ListQueryLoggingConfigs_RequestSyntax)
11308	// in the response to get the next page of results.
11309	//
11310	// If you don't specify a value for MaxResults, Route 53 returns up to 100 configurations.
11311	MaxResults *string `location:"querystring" locationName:"maxresults" type:"string"`
11312
11313	// (Optional) If the current AWS account has more than MaxResults query logging
11314	// configurations, use NextToken to get the second and subsequent pages of results.
11315	//
11316	// For the first ListQueryLoggingConfigs request, omit this value.
11317	//
11318	// For the second and subsequent requests, get the value of NextToken from the
11319	// previous response and specify that value for NextToken in the request.
11320	NextToken *string `location:"querystring" locationName:"nexttoken" type:"string"`
11321}
11322
11323// String returns the string representation
11324func (s ListQueryLoggingConfigsInput) String() string {
11325	return awsutil.Prettify(s)
11326}
11327
11328// GoString returns the string representation
11329func (s ListQueryLoggingConfigsInput) GoString() string {
11330	return s.String()
11331}
11332
11333// SetHostedZoneId sets the HostedZoneId field's value.
11334func (s *ListQueryLoggingConfigsInput) SetHostedZoneId(v string) *ListQueryLoggingConfigsInput {
11335	s.HostedZoneId = &v
11336	return s
11337}
11338
11339// SetMaxResults sets the MaxResults field's value.
11340func (s *ListQueryLoggingConfigsInput) SetMaxResults(v string) *ListQueryLoggingConfigsInput {
11341	s.MaxResults = &v
11342	return s
11343}
11344
11345// SetNextToken sets the NextToken field's value.
11346func (s *ListQueryLoggingConfigsInput) SetNextToken(v string) *ListQueryLoggingConfigsInput {
11347	s.NextToken = &v
11348	return s
11349}
11350
11351type ListQueryLoggingConfigsOutput struct {
11352	_ struct{} `type:"structure"`
11353
11354	// If a response includes the last of the query logging configurations that
11355	// are associated with the current AWS account, NextToken doesn't appear in
11356	// the response.
11357	//
11358	// If a response doesn't include the last of the configurations, you can get
11359	// more configurations by submitting another ListQueryLoggingConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html)
11360	// request. Get the value of NextToken that Amazon Route 53 returned in the
11361	// previous response and include it in NextToken in the next request.
11362	NextToken *string `type:"string"`
11363
11364	// An array that contains one QueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_QueryLoggingConfig.html)
11365	// element for each configuration for DNS query logging that is associated with
11366	// the current AWS account.
11367	//
11368	// QueryLoggingConfigs is a required field
11369	QueryLoggingConfigs []*QueryLoggingConfig `locationNameList:"QueryLoggingConfig" type:"list" required:"true"`
11370}
11371
11372// String returns the string representation
11373func (s ListQueryLoggingConfigsOutput) String() string {
11374	return awsutil.Prettify(s)
11375}
11376
11377// GoString returns the string representation
11378func (s ListQueryLoggingConfigsOutput) GoString() string {
11379	return s.String()
11380}
11381
11382// SetNextToken sets the NextToken field's value.
11383func (s *ListQueryLoggingConfigsOutput) SetNextToken(v string) *ListQueryLoggingConfigsOutput {
11384	s.NextToken = &v
11385	return s
11386}
11387
11388// SetQueryLoggingConfigs sets the QueryLoggingConfigs field's value.
11389func (s *ListQueryLoggingConfigsOutput) SetQueryLoggingConfigs(v []*QueryLoggingConfig) *ListQueryLoggingConfigsOutput {
11390	s.QueryLoggingConfigs = v
11391	return s
11392}
11393
11394// A request for the resource record sets that are associated with a specified
11395// hosted zone.
11396type ListResourceRecordSetsInput struct {
11397	_ struct{} `locationName:"ListResourceRecordSetsRequest" type:"structure"`
11398
11399	// The ID of the hosted zone that contains the resource record sets that you
11400	// want to list.
11401	//
11402	// HostedZoneId is a required field
11403	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
11404
11405	// (Optional) The maximum number of resource records sets to include in the
11406	// response body for this request. If the response includes more than maxitems
11407	// resource record sets, the value of the IsTruncated element in the response
11408	// is true, and the values of the NextRecordName and NextRecordType elements
11409	// in the response identify the first resource record set in the next group
11410	// of maxitems resource record sets.
11411	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11412
11413	// Resource record sets that have a routing policy other than simple: If results
11414	// were truncated for a given DNS name and type, specify the value of NextRecordIdentifier
11415	// from the previous response to get the next resource record set that has the
11416	// current DNS name and type.
11417	StartRecordIdentifier *string `location:"querystring" locationName:"identifier" min:"1" type:"string"`
11418
11419	// The first name in the lexicographic ordering of resource record sets that
11420	// you want to list.
11421	StartRecordName *string `location:"querystring" locationName:"name" type:"string"`
11422
11423	// The type of resource record set to begin the record listing from.
11424	//
11425	// Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX
11426	// | NAPTR | NS | PTR | SOA | SPF | SRV | TXT
11427	//
11428	// Values for weighted, latency, geolocation, and failover resource record sets:
11429	// A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT
11430	//
11431	// Values for alias resource record sets:
11432	//
11433	//    * API Gateway custom regional API or edge-optimized API: A
11434	//
11435	//    * CloudFront distribution: A or AAAA
11436	//
11437	//    * Elastic Beanstalk environment that has a regionalized subdomain: A
11438	//
11439	//    * Elastic Load Balancing load balancer: A | AAAA
11440	//
11441	//    * Amazon S3 bucket: A
11442	//
11443	//    * Amazon VPC interface VPC endpoint: A
11444	//
11445	//    * Another resource record set in this hosted zone: The type of the resource
11446	//    record set that the alias references.
11447	//
11448	// Constraint: Specifying type without specifying name returns an InvalidInput
11449	// error.
11450	StartRecordType *string `location:"querystring" locationName:"type" type:"string" enum:"RRType"`
11451}
11452
11453// String returns the string representation
11454func (s ListResourceRecordSetsInput) String() string {
11455	return awsutil.Prettify(s)
11456}
11457
11458// GoString returns the string representation
11459func (s ListResourceRecordSetsInput) GoString() string {
11460	return s.String()
11461}
11462
11463// Validate inspects the fields of the type to determine if they are valid.
11464func (s *ListResourceRecordSetsInput) Validate() error {
11465	invalidParams := request.ErrInvalidParams{Context: "ListResourceRecordSetsInput"}
11466	if s.HostedZoneId == nil {
11467		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
11468	}
11469	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
11470		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
11471	}
11472	if s.StartRecordIdentifier != nil && len(*s.StartRecordIdentifier) < 1 {
11473		invalidParams.Add(request.NewErrParamMinLen("StartRecordIdentifier", 1))
11474	}
11475
11476	if invalidParams.Len() > 0 {
11477		return invalidParams
11478	}
11479	return nil
11480}
11481
11482// SetHostedZoneId sets the HostedZoneId field's value.
11483func (s *ListResourceRecordSetsInput) SetHostedZoneId(v string) *ListResourceRecordSetsInput {
11484	s.HostedZoneId = &v
11485	return s
11486}
11487
11488// SetMaxItems sets the MaxItems field's value.
11489func (s *ListResourceRecordSetsInput) SetMaxItems(v string) *ListResourceRecordSetsInput {
11490	s.MaxItems = &v
11491	return s
11492}
11493
11494// SetStartRecordIdentifier sets the StartRecordIdentifier field's value.
11495func (s *ListResourceRecordSetsInput) SetStartRecordIdentifier(v string) *ListResourceRecordSetsInput {
11496	s.StartRecordIdentifier = &v
11497	return s
11498}
11499
11500// SetStartRecordName sets the StartRecordName field's value.
11501func (s *ListResourceRecordSetsInput) SetStartRecordName(v string) *ListResourceRecordSetsInput {
11502	s.StartRecordName = &v
11503	return s
11504}
11505
11506// SetStartRecordType sets the StartRecordType field's value.
11507func (s *ListResourceRecordSetsInput) SetStartRecordType(v string) *ListResourceRecordSetsInput {
11508	s.StartRecordType = &v
11509	return s
11510}
11511
11512// A complex type that contains list information for the resource record set.
11513type ListResourceRecordSetsOutput struct {
11514	_ struct{} `type:"structure"`
11515
11516	// A flag that indicates whether more resource record sets remain to be listed.
11517	// If your results were truncated, you can make a follow-up pagination request
11518	// by using the NextRecordName element.
11519	//
11520	// IsTruncated is a required field
11521	IsTruncated *bool `type:"boolean" required:"true"`
11522
11523	// The maximum number of records you requested.
11524	//
11525	// MaxItems is a required field
11526	MaxItems *string `type:"string" required:"true"`
11527
11528	// Resource record sets that have a routing policy other than simple: If results
11529	// were truncated for a given DNS name and type, the value of SetIdentifier
11530	// for the next resource record set that has the current DNS name and type.
11531	//
11532	// For information about routing policies, see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)
11533	// in the Amazon Route 53 Developer Guide.
11534	NextRecordIdentifier *string `min:"1" type:"string"`
11535
11536	// If the results were truncated, the name of the next record in the list.
11537	//
11538	// This element is present only if IsTruncated is true.
11539	NextRecordName *string `type:"string"`
11540
11541	// If the results were truncated, the type of the next record in the list.
11542	//
11543	// This element is present only if IsTruncated is true.
11544	NextRecordType *string `type:"string" enum:"RRType"`
11545
11546	// Information about multiple resource record sets.
11547	//
11548	// ResourceRecordSets is a required field
11549	ResourceRecordSets []*ResourceRecordSet `locationNameList:"ResourceRecordSet" type:"list" required:"true"`
11550}
11551
11552// String returns the string representation
11553func (s ListResourceRecordSetsOutput) String() string {
11554	return awsutil.Prettify(s)
11555}
11556
11557// GoString returns the string representation
11558func (s ListResourceRecordSetsOutput) GoString() string {
11559	return s.String()
11560}
11561
11562// SetIsTruncated sets the IsTruncated field's value.
11563func (s *ListResourceRecordSetsOutput) SetIsTruncated(v bool) *ListResourceRecordSetsOutput {
11564	s.IsTruncated = &v
11565	return s
11566}
11567
11568// SetMaxItems sets the MaxItems field's value.
11569func (s *ListResourceRecordSetsOutput) SetMaxItems(v string) *ListResourceRecordSetsOutput {
11570	s.MaxItems = &v
11571	return s
11572}
11573
11574// SetNextRecordIdentifier sets the NextRecordIdentifier field's value.
11575func (s *ListResourceRecordSetsOutput) SetNextRecordIdentifier(v string) *ListResourceRecordSetsOutput {
11576	s.NextRecordIdentifier = &v
11577	return s
11578}
11579
11580// SetNextRecordName sets the NextRecordName field's value.
11581func (s *ListResourceRecordSetsOutput) SetNextRecordName(v string) *ListResourceRecordSetsOutput {
11582	s.NextRecordName = &v
11583	return s
11584}
11585
11586// SetNextRecordType sets the NextRecordType field's value.
11587func (s *ListResourceRecordSetsOutput) SetNextRecordType(v string) *ListResourceRecordSetsOutput {
11588	s.NextRecordType = &v
11589	return s
11590}
11591
11592// SetResourceRecordSets sets the ResourceRecordSets field's value.
11593func (s *ListResourceRecordSetsOutput) SetResourceRecordSets(v []*ResourceRecordSet) *ListResourceRecordSetsOutput {
11594	s.ResourceRecordSets = v
11595	return s
11596}
11597
11598// A request to get a list of the reusable delegation sets that are associated
11599// with the current AWS account.
11600type ListReusableDelegationSetsInput struct {
11601	_ struct{} `locationName:"ListReusableDelegationSetsRequest" type:"structure"`
11602
11603	// If the value of IsTruncated in the previous response was true, you have more
11604	// reusable delegation sets. To get another group, submit another ListReusableDelegationSets
11605	// request.
11606	//
11607	// For the value of marker, specify the value of NextMarker from the previous
11608	// response, which is the ID of the first reusable delegation set that Amazon
11609	// Route 53 will return if you submit another request.
11610	//
11611	// If the value of IsTruncated in the previous response was false, there are
11612	// no more reusable delegation sets to get.
11613	Marker *string `location:"querystring" locationName:"marker" type:"string"`
11614
11615	// The number of reusable delegation sets that you want Amazon Route 53 to return
11616	// in the response to this request. If you specify a value greater than 100,
11617	// Route 53 returns only the first 100 reusable delegation sets.
11618	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11619}
11620
11621// String returns the string representation
11622func (s ListReusableDelegationSetsInput) String() string {
11623	return awsutil.Prettify(s)
11624}
11625
11626// GoString returns the string representation
11627func (s ListReusableDelegationSetsInput) GoString() string {
11628	return s.String()
11629}
11630
11631// SetMarker sets the Marker field's value.
11632func (s *ListReusableDelegationSetsInput) SetMarker(v string) *ListReusableDelegationSetsInput {
11633	s.Marker = &v
11634	return s
11635}
11636
11637// SetMaxItems sets the MaxItems field's value.
11638func (s *ListReusableDelegationSetsInput) SetMaxItems(v string) *ListReusableDelegationSetsInput {
11639	s.MaxItems = &v
11640	return s
11641}
11642
11643// A complex type that contains information about the reusable delegation sets
11644// that are associated with the current AWS account.
11645type ListReusableDelegationSetsOutput struct {
11646	_ struct{} `type:"structure"`
11647
11648	// A complex type that contains one DelegationSet element for each reusable
11649	// delegation set that was created by the current AWS account.
11650	//
11651	// DelegationSets is a required field
11652	DelegationSets []*DelegationSet `locationNameList:"DelegationSet" type:"list" required:"true"`
11653
11654	// A flag that indicates whether there are more reusable delegation sets to
11655	// be listed.
11656	//
11657	// IsTruncated is a required field
11658	IsTruncated *bool `type:"boolean" required:"true"`
11659
11660	// For the second and subsequent calls to ListReusableDelegationSets, Marker
11661	// is the value that you specified for the marker parameter in the request that
11662	// produced the current response.
11663	//
11664	// Marker is a required field
11665	Marker *string `type:"string" required:"true"`
11666
11667	// The value that you specified for the maxitems parameter in the call to ListReusableDelegationSets
11668	// that produced the current response.
11669	//
11670	// MaxItems is a required field
11671	MaxItems *string `type:"string" required:"true"`
11672
11673	// If IsTruncated is true, the value of NextMarker identifies the next reusable
11674	// delegation set that Amazon Route 53 will return if you submit another ListReusableDelegationSets
11675	// request and specify the value of NextMarker in the marker parameter.
11676	NextMarker *string `type:"string"`
11677}
11678
11679// String returns the string representation
11680func (s ListReusableDelegationSetsOutput) String() string {
11681	return awsutil.Prettify(s)
11682}
11683
11684// GoString returns the string representation
11685func (s ListReusableDelegationSetsOutput) GoString() string {
11686	return s.String()
11687}
11688
11689// SetDelegationSets sets the DelegationSets field's value.
11690func (s *ListReusableDelegationSetsOutput) SetDelegationSets(v []*DelegationSet) *ListReusableDelegationSetsOutput {
11691	s.DelegationSets = v
11692	return s
11693}
11694
11695// SetIsTruncated sets the IsTruncated field's value.
11696func (s *ListReusableDelegationSetsOutput) SetIsTruncated(v bool) *ListReusableDelegationSetsOutput {
11697	s.IsTruncated = &v
11698	return s
11699}
11700
11701// SetMarker sets the Marker field's value.
11702func (s *ListReusableDelegationSetsOutput) SetMarker(v string) *ListReusableDelegationSetsOutput {
11703	s.Marker = &v
11704	return s
11705}
11706
11707// SetMaxItems sets the MaxItems field's value.
11708func (s *ListReusableDelegationSetsOutput) SetMaxItems(v string) *ListReusableDelegationSetsOutput {
11709	s.MaxItems = &v
11710	return s
11711}
11712
11713// SetNextMarker sets the NextMarker field's value.
11714func (s *ListReusableDelegationSetsOutput) SetNextMarker(v string) *ListReusableDelegationSetsOutput {
11715	s.NextMarker = &v
11716	return s
11717}
11718
11719// A complex type containing information about a request for a list of the tags
11720// that are associated with an individual resource.
11721type ListTagsForResourceInput struct {
11722	_ struct{} `locationName:"ListTagsForResourceRequest" type:"structure"`
11723
11724	// The ID of the resource for which you want to retrieve tags.
11725	//
11726	// ResourceId is a required field
11727	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
11728
11729	// The type of the resource.
11730	//
11731	//    * The resource type for health checks is healthcheck.
11732	//
11733	//    * The resource type for hosted zones is hostedzone.
11734	//
11735	// ResourceType is a required field
11736	ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"TagResourceType"`
11737}
11738
11739// String returns the string representation
11740func (s ListTagsForResourceInput) String() string {
11741	return awsutil.Prettify(s)
11742}
11743
11744// GoString returns the string representation
11745func (s ListTagsForResourceInput) GoString() string {
11746	return s.String()
11747}
11748
11749// Validate inspects the fields of the type to determine if they are valid.
11750func (s *ListTagsForResourceInput) Validate() error {
11751	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
11752	if s.ResourceId == nil {
11753		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
11754	}
11755	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
11756		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
11757	}
11758	if s.ResourceType == nil {
11759		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
11760	}
11761	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
11762		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
11763	}
11764
11765	if invalidParams.Len() > 0 {
11766		return invalidParams
11767	}
11768	return nil
11769}
11770
11771// SetResourceId sets the ResourceId field's value.
11772func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
11773	s.ResourceId = &v
11774	return s
11775}
11776
11777// SetResourceType sets the ResourceType field's value.
11778func (s *ListTagsForResourceInput) SetResourceType(v string) *ListTagsForResourceInput {
11779	s.ResourceType = &v
11780	return s
11781}
11782
11783// A complex type that contains information about the health checks or hosted
11784// zones for which you want to list tags.
11785type ListTagsForResourceOutput struct {
11786	_ struct{} `type:"structure"`
11787
11788	// A ResourceTagSet containing tags associated with the specified resource.
11789	//
11790	// ResourceTagSet is a required field
11791	ResourceTagSet *ResourceTagSet `type:"structure" required:"true"`
11792}
11793
11794// String returns the string representation
11795func (s ListTagsForResourceOutput) String() string {
11796	return awsutil.Prettify(s)
11797}
11798
11799// GoString returns the string representation
11800func (s ListTagsForResourceOutput) GoString() string {
11801	return s.String()
11802}
11803
11804// SetResourceTagSet sets the ResourceTagSet field's value.
11805func (s *ListTagsForResourceOutput) SetResourceTagSet(v *ResourceTagSet) *ListTagsForResourceOutput {
11806	s.ResourceTagSet = v
11807	return s
11808}
11809
11810// A complex type that contains information about the health checks or hosted
11811// zones for which you want to list tags.
11812type ListTagsForResourcesInput struct {
11813	_ struct{} `locationName:"ListTagsForResourcesRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
11814
11815	// A complex type that contains the ResourceId element for each resource for
11816	// which you want to get a list of tags.
11817	//
11818	// ResourceIds is a required field
11819	ResourceIds []*string `locationNameList:"ResourceId" min:"1" type:"list" required:"true"`
11820
11821	// The type of the resources.
11822	//
11823	//    * The resource type for health checks is healthcheck.
11824	//
11825	//    * The resource type for hosted zones is hostedzone.
11826	//
11827	// ResourceType is a required field
11828	ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"TagResourceType"`
11829}
11830
11831// String returns the string representation
11832func (s ListTagsForResourcesInput) String() string {
11833	return awsutil.Prettify(s)
11834}
11835
11836// GoString returns the string representation
11837func (s ListTagsForResourcesInput) GoString() string {
11838	return s.String()
11839}
11840
11841// Validate inspects the fields of the type to determine if they are valid.
11842func (s *ListTagsForResourcesInput) Validate() error {
11843	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourcesInput"}
11844	if s.ResourceIds == nil {
11845		invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
11846	}
11847	if s.ResourceIds != nil && len(s.ResourceIds) < 1 {
11848		invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1))
11849	}
11850	if s.ResourceType == nil {
11851		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
11852	}
11853	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
11854		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
11855	}
11856
11857	if invalidParams.Len() > 0 {
11858		return invalidParams
11859	}
11860	return nil
11861}
11862
11863// SetResourceIds sets the ResourceIds field's value.
11864func (s *ListTagsForResourcesInput) SetResourceIds(v []*string) *ListTagsForResourcesInput {
11865	s.ResourceIds = v
11866	return s
11867}
11868
11869// SetResourceType sets the ResourceType field's value.
11870func (s *ListTagsForResourcesInput) SetResourceType(v string) *ListTagsForResourcesInput {
11871	s.ResourceType = &v
11872	return s
11873}
11874
11875// A complex type containing tags for the specified resources.
11876type ListTagsForResourcesOutput struct {
11877	_ struct{} `type:"structure"`
11878
11879	// A list of ResourceTagSets containing tags associated with the specified resources.
11880	//
11881	// ResourceTagSets is a required field
11882	ResourceTagSets []*ResourceTagSet `locationNameList:"ResourceTagSet" type:"list" required:"true"`
11883}
11884
11885// String returns the string representation
11886func (s ListTagsForResourcesOutput) String() string {
11887	return awsutil.Prettify(s)
11888}
11889
11890// GoString returns the string representation
11891func (s ListTagsForResourcesOutput) GoString() string {
11892	return s.String()
11893}
11894
11895// SetResourceTagSets sets the ResourceTagSets field's value.
11896func (s *ListTagsForResourcesOutput) SetResourceTagSets(v []*ResourceTagSet) *ListTagsForResourcesOutput {
11897	s.ResourceTagSets = v
11898	return s
11899}
11900
11901// A complex type that contains the information about the request to list the
11902// traffic policies that are associated with the current AWS account.
11903type ListTrafficPoliciesInput struct {
11904	_ struct{} `locationName:"ListTrafficPoliciesRequest" type:"structure"`
11905
11906	// (Optional) The maximum number of traffic policies that you want Amazon Route
11907	// 53 to return in response to this request. If you have more than MaxItems
11908	// traffic policies, the value of IsTruncated in the response is true, and the
11909	// value of TrafficPolicyIdMarker is the ID of the first traffic policy that
11910	// Route 53 will return if you submit another request.
11911	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11912
11913	// (Conditional) For your first request to ListTrafficPolicies, don't include
11914	// the TrafficPolicyIdMarker parameter.
11915	//
11916	// If you have more traffic policies than the value of MaxItems, ListTrafficPolicies
11917	// returns only the first MaxItems traffic policies. To get the next group of
11918	// policies, submit another request to ListTrafficPolicies. For the value of
11919	// TrafficPolicyIdMarker, specify the value of TrafficPolicyIdMarker that was
11920	// returned in the previous response.
11921	TrafficPolicyIdMarker *string `location:"querystring" locationName:"trafficpolicyid" min:"1" type:"string"`
11922}
11923
11924// String returns the string representation
11925func (s ListTrafficPoliciesInput) String() string {
11926	return awsutil.Prettify(s)
11927}
11928
11929// GoString returns the string representation
11930func (s ListTrafficPoliciesInput) GoString() string {
11931	return s.String()
11932}
11933
11934// Validate inspects the fields of the type to determine if they are valid.
11935func (s *ListTrafficPoliciesInput) Validate() error {
11936	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPoliciesInput"}
11937	if s.TrafficPolicyIdMarker != nil && len(*s.TrafficPolicyIdMarker) < 1 {
11938		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyIdMarker", 1))
11939	}
11940
11941	if invalidParams.Len() > 0 {
11942		return invalidParams
11943	}
11944	return nil
11945}
11946
11947// SetMaxItems sets the MaxItems field's value.
11948func (s *ListTrafficPoliciesInput) SetMaxItems(v string) *ListTrafficPoliciesInput {
11949	s.MaxItems = &v
11950	return s
11951}
11952
11953// SetTrafficPolicyIdMarker sets the TrafficPolicyIdMarker field's value.
11954func (s *ListTrafficPoliciesInput) SetTrafficPolicyIdMarker(v string) *ListTrafficPoliciesInput {
11955	s.TrafficPolicyIdMarker = &v
11956	return s
11957}
11958
11959// A complex type that contains the response information for the request.
11960type ListTrafficPoliciesOutput struct {
11961	_ struct{} `type:"structure"`
11962
11963	// A flag that indicates whether there are more traffic policies to be listed.
11964	// If the response was truncated, you can get the next group of traffic policies
11965	// by submitting another ListTrafficPolicies request and specifying the value
11966	// of TrafficPolicyIdMarker in the TrafficPolicyIdMarker request parameter.
11967	//
11968	// IsTruncated is a required field
11969	IsTruncated *bool `type:"boolean" required:"true"`
11970
11971	// The value that you specified for the MaxItems parameter in the ListTrafficPolicies
11972	// request that produced the current response.
11973	//
11974	// MaxItems is a required field
11975	MaxItems *string `type:"string" required:"true"`
11976
11977	// If the value of IsTruncated is true, TrafficPolicyIdMarker is the ID of the
11978	// first traffic policy in the next group of MaxItems traffic policies.
11979	//
11980	// TrafficPolicyIdMarker is a required field
11981	TrafficPolicyIdMarker *string `min:"1" type:"string" required:"true"`
11982
11983	// A list that contains one TrafficPolicySummary element for each traffic policy
11984	// that was created by the current AWS account.
11985	//
11986	// TrafficPolicySummaries is a required field
11987	TrafficPolicySummaries []*TrafficPolicySummary `locationNameList:"TrafficPolicySummary" type:"list" required:"true"`
11988}
11989
11990// String returns the string representation
11991func (s ListTrafficPoliciesOutput) String() string {
11992	return awsutil.Prettify(s)
11993}
11994
11995// GoString returns the string representation
11996func (s ListTrafficPoliciesOutput) GoString() string {
11997	return s.String()
11998}
11999
12000// SetIsTruncated sets the IsTruncated field's value.
12001func (s *ListTrafficPoliciesOutput) SetIsTruncated(v bool) *ListTrafficPoliciesOutput {
12002	s.IsTruncated = &v
12003	return s
12004}
12005
12006// SetMaxItems sets the MaxItems field's value.
12007func (s *ListTrafficPoliciesOutput) SetMaxItems(v string) *ListTrafficPoliciesOutput {
12008	s.MaxItems = &v
12009	return s
12010}
12011
12012// SetTrafficPolicyIdMarker sets the TrafficPolicyIdMarker field's value.
12013func (s *ListTrafficPoliciesOutput) SetTrafficPolicyIdMarker(v string) *ListTrafficPoliciesOutput {
12014	s.TrafficPolicyIdMarker = &v
12015	return s
12016}
12017
12018// SetTrafficPolicySummaries sets the TrafficPolicySummaries field's value.
12019func (s *ListTrafficPoliciesOutput) SetTrafficPolicySummaries(v []*TrafficPolicySummary) *ListTrafficPoliciesOutput {
12020	s.TrafficPolicySummaries = v
12021	return s
12022}
12023
12024// A request for the traffic policy instances that you created in a specified
12025// hosted zone.
12026type ListTrafficPolicyInstancesByHostedZoneInput struct {
12027	_ struct{} `locationName:"ListTrafficPolicyInstancesByHostedZoneRequest" type:"structure"`
12028
12029	// The ID of the hosted zone that you want to list traffic policy instances
12030	// for.
12031	//
12032	// HostedZoneId is a required field
12033	HostedZoneId *string `location:"querystring" locationName:"id" type:"string" required:"true"`
12034
12035	// The maximum number of traffic policy instances to be included in the response
12036	// body for this request. If you have more than MaxItems traffic policy instances,
12037	// the value of the IsTruncated element in the response is true, and the values
12038	// of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker
12039	// represent the first traffic policy instance that Amazon Route 53 will return
12040	// if you submit another request.
12041	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12042
12043	// If the value of IsTruncated in the previous response is true, you have more
12044	// traffic policy instances. To get more traffic policy instances, submit another
12045	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancename,
12046	// specify the value of TrafficPolicyInstanceNameMarker from the previous response,
12047	// which is the name of the first traffic policy instance in the next group
12048	// of traffic policy instances.
12049	//
12050	// If the value of IsTruncated in the previous response was false, there are
12051	// no more traffic policy instances to get.
12052	TrafficPolicyInstanceNameMarker *string `location:"querystring" locationName:"trafficpolicyinstancename" type:"string"`
12053
12054	// If the value of IsTruncated in the previous response is true, you have more
12055	// traffic policy instances. To get more traffic policy instances, submit another
12056	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancetype,
12057	// specify the value of TrafficPolicyInstanceTypeMarker from the previous response,
12058	// which is the type of the first traffic policy instance in the next group
12059	// of traffic policy instances.
12060	//
12061	// If the value of IsTruncated in the previous response was false, there are
12062	// no more traffic policy instances to get.
12063	TrafficPolicyInstanceTypeMarker *string `location:"querystring" locationName:"trafficpolicyinstancetype" type:"string" enum:"RRType"`
12064}
12065
12066// String returns the string representation
12067func (s ListTrafficPolicyInstancesByHostedZoneInput) String() string {
12068	return awsutil.Prettify(s)
12069}
12070
12071// GoString returns the string representation
12072func (s ListTrafficPolicyInstancesByHostedZoneInput) GoString() string {
12073	return s.String()
12074}
12075
12076// Validate inspects the fields of the type to determine if they are valid.
12077func (s *ListTrafficPolicyInstancesByHostedZoneInput) Validate() error {
12078	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPolicyInstancesByHostedZoneInput"}
12079	if s.HostedZoneId == nil {
12080		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
12081	}
12082
12083	if invalidParams.Len() > 0 {
12084		return invalidParams
12085	}
12086	return nil
12087}
12088
12089// SetHostedZoneId sets the HostedZoneId field's value.
12090func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetHostedZoneId(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12091	s.HostedZoneId = &v
12092	return s
12093}
12094
12095// SetMaxItems sets the MaxItems field's value.
12096func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetMaxItems(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12097	s.MaxItems = &v
12098	return s
12099}
12100
12101// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12102func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12103	s.TrafficPolicyInstanceNameMarker = &v
12104	return s
12105}
12106
12107// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12108func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12109	s.TrafficPolicyInstanceTypeMarker = &v
12110	return s
12111}
12112
12113// A complex type that contains the response information for the request.
12114type ListTrafficPolicyInstancesByHostedZoneOutput struct {
12115	_ struct{} `type:"structure"`
12116
12117	// A flag that indicates whether there are more traffic policy instances to
12118	// be listed. If the response was truncated, you can get the next group of traffic
12119	// policy instances by submitting another ListTrafficPolicyInstancesByHostedZone
12120	// request and specifying the values of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker,
12121	// and TrafficPolicyInstanceTypeMarker in the corresponding request parameters.
12122	//
12123	// IsTruncated is a required field
12124	IsTruncated *bool `type:"boolean" required:"true"`
12125
12126	// The value that you specified for the MaxItems parameter in the ListTrafficPolicyInstancesByHostedZone
12127	// request that produced the current response.
12128	//
12129	// MaxItems is a required field
12130	MaxItems *string `type:"string" required:"true"`
12131
12132	// If IsTruncated is true, TrafficPolicyInstanceNameMarker is the name of the
12133	// first traffic policy instance in the next group of traffic policy instances.
12134	TrafficPolicyInstanceNameMarker *string `type:"string"`
12135
12136	// If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of
12137	// the resource record sets that are associated with the first traffic policy
12138	// instance in the next group of traffic policy instances.
12139	TrafficPolicyInstanceTypeMarker *string `type:"string" enum:"RRType"`
12140
12141	// A list that contains one TrafficPolicyInstance element for each traffic policy
12142	// instance that matches the elements in the request.
12143	//
12144	// TrafficPolicyInstances is a required field
12145	TrafficPolicyInstances []*TrafficPolicyInstance `locationNameList:"TrafficPolicyInstance" type:"list" required:"true"`
12146}
12147
12148// String returns the string representation
12149func (s ListTrafficPolicyInstancesByHostedZoneOutput) String() string {
12150	return awsutil.Prettify(s)
12151}
12152
12153// GoString returns the string representation
12154func (s ListTrafficPolicyInstancesByHostedZoneOutput) GoString() string {
12155	return s.String()
12156}
12157
12158// SetIsTruncated sets the IsTruncated field's value.
12159func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetIsTruncated(v bool) *ListTrafficPolicyInstancesByHostedZoneOutput {
12160	s.IsTruncated = &v
12161	return s
12162}
12163
12164// SetMaxItems sets the MaxItems field's value.
12165func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetMaxItems(v string) *ListTrafficPolicyInstancesByHostedZoneOutput {
12166	s.MaxItems = &v
12167	return s
12168}
12169
12170// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12171func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByHostedZoneOutput {
12172	s.TrafficPolicyInstanceNameMarker = &v
12173	return s
12174}
12175
12176// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12177func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByHostedZoneOutput {
12178	s.TrafficPolicyInstanceTypeMarker = &v
12179	return s
12180}
12181
12182// SetTrafficPolicyInstances sets the TrafficPolicyInstances field's value.
12183func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstances(v []*TrafficPolicyInstance) *ListTrafficPolicyInstancesByHostedZoneOutput {
12184	s.TrafficPolicyInstances = v
12185	return s
12186}
12187
12188// A complex type that contains the information about the request to list your
12189// traffic policy instances.
12190type ListTrafficPolicyInstancesByPolicyInput struct {
12191	_ struct{} `locationName:"ListTrafficPolicyInstancesByPolicyRequest" type:"structure"`
12192
12193	// If the value of IsTruncated in the previous response was true, you have more
12194	// traffic policy instances. To get more traffic policy instances, submit another
12195	// ListTrafficPolicyInstancesByPolicy request.
12196	//
12197	// For the value of hostedzoneid, specify the value of HostedZoneIdMarker from
12198	// the previous response, which is the hosted zone ID of the first traffic policy
12199	// instance that Amazon Route 53 will return if you submit another request.
12200	//
12201	// If the value of IsTruncated in the previous response was false, there are
12202	// no more traffic policy instances to get.
12203	HostedZoneIdMarker *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
12204
12205	// The maximum number of traffic policy instances to be included in the response
12206	// body for this request. If you have more than MaxItems traffic policy instances,
12207	// the value of the IsTruncated element in the response is true, and the values
12208	// of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker
12209	// represent the first traffic policy instance that Amazon Route 53 will return
12210	// if you submit another request.
12211	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12212
12213	// The ID of the traffic policy for which you want to list traffic policy instances.
12214	//
12215	// TrafficPolicyId is a required field
12216	TrafficPolicyId *string `location:"querystring" locationName:"id" min:"1" type:"string" required:"true"`
12217
12218	// If the value of IsTruncated in the previous response was true, you have more
12219	// traffic policy instances. To get more traffic policy instances, submit another
12220	// ListTrafficPolicyInstancesByPolicy request.
12221	//
12222	// For the value of trafficpolicyinstancename, specify the value of TrafficPolicyInstanceNameMarker
12223	// from the previous response, which is the name of the first traffic policy
12224	// instance that Amazon Route 53 will return if you submit another request.
12225	//
12226	// If the value of IsTruncated in the previous response was false, there are
12227	// no more traffic policy instances to get.
12228	TrafficPolicyInstanceNameMarker *string `location:"querystring" locationName:"trafficpolicyinstancename" type:"string"`
12229
12230	// If the value of IsTruncated in the previous response was true, you have more
12231	// traffic policy instances. To get more traffic policy instances, submit another
12232	// ListTrafficPolicyInstancesByPolicy request.
12233	//
12234	// For the value of trafficpolicyinstancetype, specify the value of TrafficPolicyInstanceTypeMarker
12235	// from the previous response, which is the name of the first traffic policy
12236	// instance that Amazon Route 53 will return if you submit another request.
12237	//
12238	// If the value of IsTruncated in the previous response was false, there are
12239	// no more traffic policy instances to get.
12240	TrafficPolicyInstanceTypeMarker *string `location:"querystring" locationName:"trafficpolicyinstancetype" type:"string" enum:"RRType"`
12241
12242	// The version of the traffic policy for which you want to list traffic policy
12243	// instances. The version must be associated with the traffic policy that is
12244	// specified by TrafficPolicyId.
12245	//
12246	// TrafficPolicyVersion is a required field
12247	TrafficPolicyVersion *int64 `location:"querystring" locationName:"version" min:"1" type:"integer" required:"true"`
12248}
12249
12250// String returns the string representation
12251func (s ListTrafficPolicyInstancesByPolicyInput) String() string {
12252	return awsutil.Prettify(s)
12253}
12254
12255// GoString returns the string representation
12256func (s ListTrafficPolicyInstancesByPolicyInput) GoString() string {
12257	return s.String()
12258}
12259
12260// Validate inspects the fields of the type to determine if they are valid.
12261func (s *ListTrafficPolicyInstancesByPolicyInput) Validate() error {
12262	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPolicyInstancesByPolicyInput"}
12263	if s.TrafficPolicyId == nil {
12264		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyId"))
12265	}
12266	if s.TrafficPolicyId != nil && len(*s.TrafficPolicyId) < 1 {
12267		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyId", 1))
12268	}
12269	if s.TrafficPolicyVersion == nil {
12270		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyVersion"))
12271	}
12272	if s.TrafficPolicyVersion != nil && *s.TrafficPolicyVersion < 1 {
12273		invalidParams.Add(request.NewErrParamMinValue("TrafficPolicyVersion", 1))
12274	}
12275
12276	if invalidParams.Len() > 0 {
12277		return invalidParams
12278	}
12279	return nil
12280}
12281
12282// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12283func (s *ListTrafficPolicyInstancesByPolicyInput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesByPolicyInput {
12284	s.HostedZoneIdMarker = &v
12285	return s
12286}
12287
12288// SetMaxItems sets the MaxItems field's value.
12289func (s *ListTrafficPolicyInstancesByPolicyInput) SetMaxItems(v string) *ListTrafficPolicyInstancesByPolicyInput {
12290	s.MaxItems = &v
12291	return s
12292}
12293
12294// SetTrafficPolicyId sets the TrafficPolicyId field's value.
12295func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyId(v string) *ListTrafficPolicyInstancesByPolicyInput {
12296	s.TrafficPolicyId = &v
12297	return s
12298}
12299
12300// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12301func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByPolicyInput {
12302	s.TrafficPolicyInstanceNameMarker = &v
12303	return s
12304}
12305
12306// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12307func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByPolicyInput {
12308	s.TrafficPolicyInstanceTypeMarker = &v
12309	return s
12310}
12311
12312// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
12313func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyVersion(v int64) *ListTrafficPolicyInstancesByPolicyInput {
12314	s.TrafficPolicyVersion = &v
12315	return s
12316}
12317
12318// A complex type that contains the response information for the request.
12319type ListTrafficPolicyInstancesByPolicyOutput struct {
12320	_ struct{} `type:"structure"`
12321
12322	// If IsTruncated is true, HostedZoneIdMarker is the ID of the hosted zone of
12323	// the first traffic policy instance in the next group of traffic policy instances.
12324	HostedZoneIdMarker *string `type:"string"`
12325
12326	// A flag that indicates whether there are more traffic policy instances to
12327	// be listed. If the response was truncated, you can get the next group of traffic
12328	// policy instances by calling ListTrafficPolicyInstancesByPolicy again and
12329	// specifying the values of the HostedZoneIdMarker, TrafficPolicyInstanceNameMarker,
12330	// and TrafficPolicyInstanceTypeMarker elements in the corresponding request
12331	// parameters.
12332	//
12333	// IsTruncated is a required field
12334	IsTruncated *bool `type:"boolean" required:"true"`
12335
12336	// The value that you specified for the MaxItems parameter in the call to ListTrafficPolicyInstancesByPolicy
12337	// that produced the current response.
12338	//
12339	// MaxItems is a required field
12340	MaxItems *string `type:"string" required:"true"`
12341
12342	// If IsTruncated is true, TrafficPolicyInstanceNameMarker is the name of the
12343	// first traffic policy instance in the next group of MaxItems traffic policy
12344	// instances.
12345	TrafficPolicyInstanceNameMarker *string `type:"string"`
12346
12347	// If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of
12348	// the resource record sets that are associated with the first traffic policy
12349	// instance in the next group of MaxItems traffic policy instances.
12350	TrafficPolicyInstanceTypeMarker *string `type:"string" enum:"RRType"`
12351
12352	// A list that contains one TrafficPolicyInstance element for each traffic policy
12353	// instance that matches the elements in the request.
12354	//
12355	// TrafficPolicyInstances is a required field
12356	TrafficPolicyInstances []*TrafficPolicyInstance `locationNameList:"TrafficPolicyInstance" type:"list" required:"true"`
12357}
12358
12359// String returns the string representation
12360func (s ListTrafficPolicyInstancesByPolicyOutput) String() string {
12361	return awsutil.Prettify(s)
12362}
12363
12364// GoString returns the string representation
12365func (s ListTrafficPolicyInstancesByPolicyOutput) GoString() string {
12366	return s.String()
12367}
12368
12369// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12370func (s *ListTrafficPolicyInstancesByPolicyOutput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12371	s.HostedZoneIdMarker = &v
12372	return s
12373}
12374
12375// SetIsTruncated sets the IsTruncated field's value.
12376func (s *ListTrafficPolicyInstancesByPolicyOutput) SetIsTruncated(v bool) *ListTrafficPolicyInstancesByPolicyOutput {
12377	s.IsTruncated = &v
12378	return s
12379}
12380
12381// SetMaxItems sets the MaxItems field's value.
12382func (s *ListTrafficPolicyInstancesByPolicyOutput) SetMaxItems(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12383	s.MaxItems = &v
12384	return s
12385}
12386
12387// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12388func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12389	s.TrafficPolicyInstanceNameMarker = &v
12390	return s
12391}
12392
12393// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12394func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12395	s.TrafficPolicyInstanceTypeMarker = &v
12396	return s
12397}
12398
12399// SetTrafficPolicyInstances sets the TrafficPolicyInstances field's value.
12400func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstances(v []*TrafficPolicyInstance) *ListTrafficPolicyInstancesByPolicyOutput {
12401	s.TrafficPolicyInstances = v
12402	return s
12403}
12404
12405// A request to get information about the traffic policy instances that you
12406// created by using the current AWS account.
12407type ListTrafficPolicyInstancesInput struct {
12408	_ struct{} `locationName:"ListTrafficPolicyInstancesRequest" type:"structure"`
12409
12410	// If the value of IsTruncated in the previous response was true, you have more
12411	// traffic policy instances. To get more traffic policy instances, submit another
12412	// ListTrafficPolicyInstances request. For the value of HostedZoneId, specify
12413	// the value of HostedZoneIdMarker from the previous response, which is the
12414	// hosted zone ID of the first traffic policy instance in the next group of
12415	// traffic policy instances.
12416	//
12417	// If the value of IsTruncated in the previous response was false, there are
12418	// no more traffic policy instances to get.
12419	HostedZoneIdMarker *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
12420
12421	// The maximum number of traffic policy instances that you want Amazon Route
12422	// 53 to return in response to a ListTrafficPolicyInstances request. If you
12423	// have more than MaxItems traffic policy instances, the value of the IsTruncated
12424	// element in the response is true, and the values of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker,
12425	// and TrafficPolicyInstanceTypeMarker represent the first traffic policy instance
12426	// in the next group of MaxItems traffic policy instances.
12427	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12428
12429	// If the value of IsTruncated in the previous response was true, you have more
12430	// traffic policy instances. To get more traffic policy instances, submit another
12431	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancename,
12432	// specify the value of TrafficPolicyInstanceNameMarker from the previous response,
12433	// which is the name of the first traffic policy instance in the next group
12434	// of traffic policy instances.
12435	//
12436	// If the value of IsTruncated in the previous response was false, there are
12437	// no more traffic policy instances to get.
12438	TrafficPolicyInstanceNameMarker *string `location:"querystring" locationName:"trafficpolicyinstancename" type:"string"`
12439
12440	// If the value of IsTruncated in the previous response was true, you have more
12441	// traffic policy instances. To get more traffic policy instances, submit another
12442	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancetype,
12443	// specify the value of TrafficPolicyInstanceTypeMarker from the previous response,
12444	// which is the type of the first traffic policy instance in the next group
12445	// of traffic policy instances.
12446	//
12447	// If the value of IsTruncated in the previous response was false, there are
12448	// no more traffic policy instances to get.
12449	TrafficPolicyInstanceTypeMarker *string `location:"querystring" locationName:"trafficpolicyinstancetype" type:"string" enum:"RRType"`
12450}
12451
12452// String returns the string representation
12453func (s ListTrafficPolicyInstancesInput) String() string {
12454	return awsutil.Prettify(s)
12455}
12456
12457// GoString returns the string representation
12458func (s ListTrafficPolicyInstancesInput) GoString() string {
12459	return s.String()
12460}
12461
12462// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12463func (s *ListTrafficPolicyInstancesInput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesInput {
12464	s.HostedZoneIdMarker = &v
12465	return s
12466}
12467
12468// SetMaxItems sets the MaxItems field's value.
12469func (s *ListTrafficPolicyInstancesInput) SetMaxItems(v string) *ListTrafficPolicyInstancesInput {
12470	s.MaxItems = &v
12471	return s
12472}
12473
12474// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12475func (s *ListTrafficPolicyInstancesInput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesInput {
12476	s.TrafficPolicyInstanceNameMarker = &v
12477	return s
12478}
12479
12480// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12481func (s *ListTrafficPolicyInstancesInput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesInput {
12482	s.TrafficPolicyInstanceTypeMarker = &v
12483	return s
12484}
12485
12486// A complex type that contains the response information for the request.
12487type ListTrafficPolicyInstancesOutput struct {
12488	_ struct{} `type:"structure"`
12489
12490	// If IsTruncated is true, HostedZoneIdMarker is the ID of the hosted zone of
12491	// the first traffic policy instance that Route 53 will return if you submit
12492	// another ListTrafficPolicyInstances request.
12493	HostedZoneIdMarker *string `type:"string"`
12494
12495	// A flag that indicates whether there are more traffic policy instances to
12496	// be listed. If the response was truncated, you can get more traffic policy
12497	// instances by calling ListTrafficPolicyInstances again and specifying the
12498	// values of the HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker
12499	// in the corresponding request parameters.
12500	//
12501	// IsTruncated is a required field
12502	IsTruncated *bool `type:"boolean" required:"true"`
12503
12504	// The value that you specified for the MaxItems parameter in the call to ListTrafficPolicyInstances
12505	// that produced the current response.
12506	//
12507	// MaxItems is a required field
12508	MaxItems *string `type:"string" required:"true"`
12509
12510	// If IsTruncated is true, TrafficPolicyInstanceNameMarker is the name of the
12511	// first traffic policy instance that Route 53 will return if you submit another
12512	// ListTrafficPolicyInstances request.
12513	TrafficPolicyInstanceNameMarker *string `type:"string"`
12514
12515	// If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of
12516	// the resource record sets that are associated with the first traffic policy
12517	// instance that Amazon Route 53 will return if you submit another ListTrafficPolicyInstances
12518	// request.
12519	TrafficPolicyInstanceTypeMarker *string `type:"string" enum:"RRType"`
12520
12521	// A list that contains one TrafficPolicyInstance element for each traffic policy
12522	// instance that matches the elements in the request.
12523	//
12524	// TrafficPolicyInstances is a required field
12525	TrafficPolicyInstances []*TrafficPolicyInstance `locationNameList:"TrafficPolicyInstance" type:"list" required:"true"`
12526}
12527
12528// String returns the string representation
12529func (s ListTrafficPolicyInstancesOutput) String() string {
12530	return awsutil.Prettify(s)
12531}
12532
12533// GoString returns the string representation
12534func (s ListTrafficPolicyInstancesOutput) GoString() string {
12535	return s.String()
12536}
12537
12538// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12539func (s *ListTrafficPolicyInstancesOutput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesOutput {
12540	s.HostedZoneIdMarker = &v
12541	return s
12542}
12543
12544// SetIsTruncated sets the IsTruncated field's value.
12545func (s *ListTrafficPolicyInstancesOutput) SetIsTruncated(v bool) *ListTrafficPolicyInstancesOutput {
12546	s.IsTruncated = &v
12547	return s
12548}
12549
12550// SetMaxItems sets the MaxItems field's value.
12551func (s *ListTrafficPolicyInstancesOutput) SetMaxItems(v string) *ListTrafficPolicyInstancesOutput {
12552	s.MaxItems = &v
12553	return s
12554}
12555
12556// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12557func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesOutput {
12558	s.TrafficPolicyInstanceNameMarker = &v
12559	return s
12560}
12561
12562// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12563func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesOutput {
12564	s.TrafficPolicyInstanceTypeMarker = &v
12565	return s
12566}
12567
12568// SetTrafficPolicyInstances sets the TrafficPolicyInstances field's value.
12569func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstances(v []*TrafficPolicyInstance) *ListTrafficPolicyInstancesOutput {
12570	s.TrafficPolicyInstances = v
12571	return s
12572}
12573
12574// A complex type that contains the information about the request to list your
12575// traffic policies.
12576type ListTrafficPolicyVersionsInput struct {
12577	_ struct{} `locationName:"ListTrafficPolicyVersionsRequest" type:"structure"`
12578
12579	// Specify the value of Id of the traffic policy for which you want to list
12580	// all versions.
12581	//
12582	// Id is a required field
12583	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
12584
12585	// The maximum number of traffic policy versions that you want Amazon Route
12586	// 53 to include in the response body for this request. If the specified traffic
12587	// policy has more than MaxItems versions, the value of IsTruncated in the response
12588	// is true, and the value of the TrafficPolicyVersionMarker element is the ID
12589	// of the first version that Route 53 will return if you submit another request.
12590	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12591
12592	// For your first request to ListTrafficPolicyVersions, don't include the TrafficPolicyVersionMarker
12593	// parameter.
12594	//
12595	// If you have more traffic policy versions than the value of MaxItems, ListTrafficPolicyVersions
12596	// returns only the first group of MaxItems versions. To get more traffic policy
12597	// versions, submit another ListTrafficPolicyVersions request. For the value
12598	// of TrafficPolicyVersionMarker, specify the value of TrafficPolicyVersionMarker
12599	// in the previous response.
12600	TrafficPolicyVersionMarker *string `location:"querystring" locationName:"trafficpolicyversion" type:"string"`
12601}
12602
12603// String returns the string representation
12604func (s ListTrafficPolicyVersionsInput) String() string {
12605	return awsutil.Prettify(s)
12606}
12607
12608// GoString returns the string representation
12609func (s ListTrafficPolicyVersionsInput) GoString() string {
12610	return s.String()
12611}
12612
12613// Validate inspects the fields of the type to determine if they are valid.
12614func (s *ListTrafficPolicyVersionsInput) Validate() error {
12615	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPolicyVersionsInput"}
12616	if s.Id == nil {
12617		invalidParams.Add(request.NewErrParamRequired("Id"))
12618	}
12619	if s.Id != nil && len(*s.Id) < 1 {
12620		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
12621	}
12622
12623	if invalidParams.Len() > 0 {
12624		return invalidParams
12625	}
12626	return nil
12627}
12628
12629// SetId sets the Id field's value.
12630func (s *ListTrafficPolicyVersionsInput) SetId(v string) *ListTrafficPolicyVersionsInput {
12631	s.Id = &v
12632	return s
12633}
12634
12635// SetMaxItems sets the MaxItems field's value.
12636func (s *ListTrafficPolicyVersionsInput) SetMaxItems(v string) *ListTrafficPolicyVersionsInput {
12637	s.MaxItems = &v
12638	return s
12639}
12640
12641// SetTrafficPolicyVersionMarker sets the TrafficPolicyVersionMarker field's value.
12642func (s *ListTrafficPolicyVersionsInput) SetTrafficPolicyVersionMarker(v string) *ListTrafficPolicyVersionsInput {
12643	s.TrafficPolicyVersionMarker = &v
12644	return s
12645}
12646
12647// A complex type that contains the response information for the request.
12648type ListTrafficPolicyVersionsOutput struct {
12649	_ struct{} `type:"structure"`
12650
12651	// A flag that indicates whether there are more traffic policies to be listed.
12652	// If the response was truncated, you can get the next group of traffic policies
12653	// by submitting another ListTrafficPolicyVersions request and specifying the
12654	// value of NextMarker in the marker parameter.
12655	//
12656	// IsTruncated is a required field
12657	IsTruncated *bool `type:"boolean" required:"true"`
12658
12659	// The value that you specified for the maxitems parameter in the ListTrafficPolicyVersions
12660	// request that produced the current response.
12661	//
12662	// MaxItems is a required field
12663	MaxItems *string `type:"string" required:"true"`
12664
12665	// A list that contains one TrafficPolicy element for each traffic policy version
12666	// that is associated with the specified traffic policy.
12667	//
12668	// TrafficPolicies is a required field
12669	TrafficPolicies []*TrafficPolicy `locationNameList:"TrafficPolicy" type:"list" required:"true"`
12670
12671	// If IsTruncated is true, the value of TrafficPolicyVersionMarker identifies
12672	// the first traffic policy that Amazon Route 53 will return if you submit another
12673	// request. Call ListTrafficPolicyVersions again and specify the value of TrafficPolicyVersionMarker
12674	// in the TrafficPolicyVersionMarker request parameter.
12675	//
12676	// This element is present only if IsTruncated is true.
12677	//
12678	// TrafficPolicyVersionMarker is a required field
12679	TrafficPolicyVersionMarker *string `type:"string" required:"true"`
12680}
12681
12682// String returns the string representation
12683func (s ListTrafficPolicyVersionsOutput) String() string {
12684	return awsutil.Prettify(s)
12685}
12686
12687// GoString returns the string representation
12688func (s ListTrafficPolicyVersionsOutput) GoString() string {
12689	return s.String()
12690}
12691
12692// SetIsTruncated sets the IsTruncated field's value.
12693func (s *ListTrafficPolicyVersionsOutput) SetIsTruncated(v bool) *ListTrafficPolicyVersionsOutput {
12694	s.IsTruncated = &v
12695	return s
12696}
12697
12698// SetMaxItems sets the MaxItems field's value.
12699func (s *ListTrafficPolicyVersionsOutput) SetMaxItems(v string) *ListTrafficPolicyVersionsOutput {
12700	s.MaxItems = &v
12701	return s
12702}
12703
12704// SetTrafficPolicies sets the TrafficPolicies field's value.
12705func (s *ListTrafficPolicyVersionsOutput) SetTrafficPolicies(v []*TrafficPolicy) *ListTrafficPolicyVersionsOutput {
12706	s.TrafficPolicies = v
12707	return s
12708}
12709
12710// SetTrafficPolicyVersionMarker sets the TrafficPolicyVersionMarker field's value.
12711func (s *ListTrafficPolicyVersionsOutput) SetTrafficPolicyVersionMarker(v string) *ListTrafficPolicyVersionsOutput {
12712	s.TrafficPolicyVersionMarker = &v
12713	return s
12714}
12715
12716// A complex type that contains information about that can be associated with
12717// your hosted zone.
12718type ListVPCAssociationAuthorizationsInput struct {
12719	_ struct{} `locationName:"ListVPCAssociationAuthorizationsRequest" type:"structure"`
12720
12721	// The ID of the hosted zone for which you want a list of VPCs that can be associated
12722	// with the hosted zone.
12723	//
12724	// HostedZoneId is a required field
12725	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
12726
12727	// Optional: An integer that specifies the maximum number of VPCs that you want
12728	// Amazon Route 53 to return. If you don't specify a value for MaxResults, Route
12729	// 53 returns up to 50 VPCs per page.
12730	MaxResults *string `location:"querystring" locationName:"maxresults" type:"string"`
12731
12732	// Optional: If a response includes a NextToken element, there are more VPCs
12733	// that can be associated with the specified hosted zone. To get the next page
12734	// of results, submit another request, and include the value of NextToken from
12735	// the response in the nexttoken parameter in another ListVPCAssociationAuthorizations
12736	// request.
12737	NextToken *string `location:"querystring" locationName:"nexttoken" type:"string"`
12738}
12739
12740// String returns the string representation
12741func (s ListVPCAssociationAuthorizationsInput) String() string {
12742	return awsutil.Prettify(s)
12743}
12744
12745// GoString returns the string representation
12746func (s ListVPCAssociationAuthorizationsInput) GoString() string {
12747	return s.String()
12748}
12749
12750// Validate inspects the fields of the type to determine if they are valid.
12751func (s *ListVPCAssociationAuthorizationsInput) Validate() error {
12752	invalidParams := request.ErrInvalidParams{Context: "ListVPCAssociationAuthorizationsInput"}
12753	if s.HostedZoneId == nil {
12754		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
12755	}
12756	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
12757		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
12758	}
12759
12760	if invalidParams.Len() > 0 {
12761		return invalidParams
12762	}
12763	return nil
12764}
12765
12766// SetHostedZoneId sets the HostedZoneId field's value.
12767func (s *ListVPCAssociationAuthorizationsInput) SetHostedZoneId(v string) *ListVPCAssociationAuthorizationsInput {
12768	s.HostedZoneId = &v
12769	return s
12770}
12771
12772// SetMaxResults sets the MaxResults field's value.
12773func (s *ListVPCAssociationAuthorizationsInput) SetMaxResults(v string) *ListVPCAssociationAuthorizationsInput {
12774	s.MaxResults = &v
12775	return s
12776}
12777
12778// SetNextToken sets the NextToken field's value.
12779func (s *ListVPCAssociationAuthorizationsInput) SetNextToken(v string) *ListVPCAssociationAuthorizationsInput {
12780	s.NextToken = &v
12781	return s
12782}
12783
12784// A complex type that contains the response information for the request.
12785type ListVPCAssociationAuthorizationsOutput struct {
12786	_ struct{} `type:"structure"`
12787
12788	// The ID of the hosted zone that you can associate the listed VPCs with.
12789	//
12790	// HostedZoneId is a required field
12791	HostedZoneId *string `type:"string" required:"true"`
12792
12793	// When the response includes a NextToken element, there are more VPCs that
12794	// can be associated with the specified hosted zone. To get the next page of
12795	// VPCs, submit another ListVPCAssociationAuthorizations request, and include
12796	// the value of the NextToken element from the response in the nexttoken request
12797	// parameter.
12798	NextToken *string `type:"string"`
12799
12800	// The list of VPCs that are authorized to be associated with the specified
12801	// hosted zone.
12802	//
12803	// VPCs is a required field
12804	VPCs []*VPC `locationNameList:"VPC" min:"1" type:"list" required:"true"`
12805}
12806
12807// String returns the string representation
12808func (s ListVPCAssociationAuthorizationsOutput) String() string {
12809	return awsutil.Prettify(s)
12810}
12811
12812// GoString returns the string representation
12813func (s ListVPCAssociationAuthorizationsOutput) GoString() string {
12814	return s.String()
12815}
12816
12817// SetHostedZoneId sets the HostedZoneId field's value.
12818func (s *ListVPCAssociationAuthorizationsOutput) SetHostedZoneId(v string) *ListVPCAssociationAuthorizationsOutput {
12819	s.HostedZoneId = &v
12820	return s
12821}
12822
12823// SetNextToken sets the NextToken field's value.
12824func (s *ListVPCAssociationAuthorizationsOutput) SetNextToken(v string) *ListVPCAssociationAuthorizationsOutput {
12825	s.NextToken = &v
12826	return s
12827}
12828
12829// SetVPCs sets the VPCs field's value.
12830func (s *ListVPCAssociationAuthorizationsOutput) SetVPCs(v []*VPC) *ListVPCAssociationAuthorizationsOutput {
12831	s.VPCs = v
12832	return s
12833}
12834
12835// A complex type that contains information about a configuration for DNS query
12836// logging.
12837type QueryLoggingConfig struct {
12838	_ struct{} `type:"structure"`
12839
12840	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon
12841	// Route 53 is publishing logs to.
12842	//
12843	// CloudWatchLogsLogGroupArn is a required field
12844	CloudWatchLogsLogGroupArn *string `type:"string" required:"true"`
12845
12846	// The ID of the hosted zone that CloudWatch Logs is logging queries for.
12847	//
12848	// HostedZoneId is a required field
12849	HostedZoneId *string `type:"string" required:"true"`
12850
12851	// The ID for a configuration for DNS query logging.
12852	//
12853	// Id is a required field
12854	Id *string `min:"1" type:"string" required:"true"`
12855}
12856
12857// String returns the string representation
12858func (s QueryLoggingConfig) String() string {
12859	return awsutil.Prettify(s)
12860}
12861
12862// GoString returns the string representation
12863func (s QueryLoggingConfig) GoString() string {
12864	return s.String()
12865}
12866
12867// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value.
12868func (s *QueryLoggingConfig) SetCloudWatchLogsLogGroupArn(v string) *QueryLoggingConfig {
12869	s.CloudWatchLogsLogGroupArn = &v
12870	return s
12871}
12872
12873// SetHostedZoneId sets the HostedZoneId field's value.
12874func (s *QueryLoggingConfig) SetHostedZoneId(v string) *QueryLoggingConfig {
12875	s.HostedZoneId = &v
12876	return s
12877}
12878
12879// SetId sets the Id field's value.
12880func (s *QueryLoggingConfig) SetId(v string) *QueryLoggingConfig {
12881	s.Id = &v
12882	return s
12883}
12884
12885// Information specific to the resource record.
12886//
12887// If you're creating an alias resource record set, omit ResourceRecord.
12888type ResourceRecord struct {
12889	_ struct{} `type:"structure"`
12890
12891	// The current or new DNS record value, not to exceed 4,000 characters. In the
12892	// case of a DELETE action, if the current value does not match the actual value,
12893	// an error is returned. For descriptions about how to format Value for different
12894	// record types, see Supported DNS Resource Record Types (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html)
12895	// in the Amazon Route 53 Developer Guide.
12896	//
12897	// You can specify more than one value for all record types except CNAME and
12898	// SOA.
12899	//
12900	// If you're creating an alias resource record set, omit Value.
12901	//
12902	// Value is a required field
12903	Value *string `type:"string" required:"true"`
12904}
12905
12906// String returns the string representation
12907func (s ResourceRecord) String() string {
12908	return awsutil.Prettify(s)
12909}
12910
12911// GoString returns the string representation
12912func (s ResourceRecord) GoString() string {
12913	return s.String()
12914}
12915
12916// Validate inspects the fields of the type to determine if they are valid.
12917func (s *ResourceRecord) Validate() error {
12918	invalidParams := request.ErrInvalidParams{Context: "ResourceRecord"}
12919	if s.Value == nil {
12920		invalidParams.Add(request.NewErrParamRequired("Value"))
12921	}
12922
12923	if invalidParams.Len() > 0 {
12924		return invalidParams
12925	}
12926	return nil
12927}
12928
12929// SetValue sets the Value field's value.
12930func (s *ResourceRecord) SetValue(v string) *ResourceRecord {
12931	s.Value = &v
12932	return s
12933}
12934
12935// Information about the resource record set to create or delete.
12936type ResourceRecordSet struct {
12937	_ struct{} `type:"structure"`
12938
12939	// Alias resource record sets only: Information about the AWS resource, such
12940	// as a CloudFront distribution or an Amazon S3 bucket, that you want to route
12941	// traffic to.
12942	//
12943	// If you're creating resource records sets for a private hosted zone, note
12944	// the following:
12945	//
12946	//    * You can't create an alias resource record set in a private hosted zone
12947	//    to route traffic to a CloudFront distribution.
12948	//
12949	//    * Creating geolocation alias resource record sets or latency alias resource
12950	//    record sets in a private hosted zone is unsupported.
12951	//
12952	//    * For information about creating failover resource record sets in a private
12953	//    hosted zone, see Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)
12954	//    in the Amazon Route 53 Developer Guide.
12955	AliasTarget *AliasTarget `type:"structure"`
12956
12957	// Failover resource record sets only: To configure failover, you add the Failover
12958	// element to two resource record sets. For one resource record set, you specify
12959	// PRIMARY as the value for Failover; for the other resource record set, you
12960	// specify SECONDARY. In addition, you include the HealthCheckId element and
12961	// specify the health check that you want Amazon Route 53 to perform for each
12962	// resource record set.
12963	//
12964	// Except where noted, the following failover behaviors assume that you have
12965	// included the HealthCheckId element in both resource record sets:
12966	//
12967	//    * When the primary resource record set is healthy, Route 53 responds to
12968	//    DNS queries with the applicable value from the primary resource record
12969	//    set regardless of the health of the secondary resource record set.
12970	//
12971	//    * When the primary resource record set is unhealthy and the secondary
12972	//    resource record set is healthy, Route 53 responds to DNS queries with
12973	//    the applicable value from the secondary resource record set.
12974	//
12975	//    * When the secondary resource record set is unhealthy, Route 53 responds
12976	//    to DNS queries with the applicable value from the primary resource record
12977	//    set regardless of the health of the primary resource record set.
12978	//
12979	//    * If you omit the HealthCheckId element for the secondary resource record
12980	//    set, and if the primary resource record set is unhealthy, Route 53 always
12981	//    responds to DNS queries with the applicable value from the secondary resource
12982	//    record set. This is true regardless of the health of the associated endpoint.
12983	//
12984	// You can't create non-failover resource record sets that have the same values
12985	// for the Name and Type elements as failover resource record sets.
12986	//
12987	// For failover alias resource record sets, you must also include the EvaluateTargetHealth
12988	// element and set the value to true.
12989	//
12990	// For more information about configuring failover for Route 53, see the following
12991	// topics in the Amazon Route 53 Developer Guide:
12992	//
12993	//    * Route 53 Health Checks and DNS Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)
12994	//
12995	//    * Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)
12996	Failover *string `type:"string" enum:"ResourceRecordSetFailover"`
12997
12998	// Geolocation resource record sets only: A complex type that lets you control
12999	// how Amazon Route 53 responds to DNS queries based on the geographic origin
13000	// of the query. For example, if you want all queries from Africa to be routed
13001	// to a web server with an IP address of 192.0.2.111, create a resource record
13002	// set with a Type of A and a ContinentCode of AF.
13003	//
13004	// Creating geolocation and geolocation alias resource record sets in private
13005	// hosted zones is not supported.
13006	//
13007	// If you create separate resource record sets for overlapping geographic regions
13008	// (for example, one resource record set for a continent and one for a country
13009	// on the same continent), priority goes to the smallest geographic region.
13010	// This allows you to route most queries for a continent to one resource and
13011	// to route queries for a country on that continent to a different resource.
13012	//
13013	// You can't create two geolocation resource record sets that specify the same
13014	// geographic location.
13015	//
13016	// The value * in the CountryCode element matches all geographic locations that
13017	// aren't specified in other geolocation resource record sets that have the
13018	// same values for the Name and Type elements.
13019	//
13020	// Geolocation works by mapping IP addresses to locations. However, some IP
13021	// addresses aren't mapped to geographic locations, so even if you create geolocation
13022	// resource record sets that cover all seven continents, Route 53 will receive
13023	// some DNS queries from locations that it can't identify. We recommend that
13024	// you create a resource record set for which the value of CountryCode is *,
13025	// which handles both queries that come from locations for which you haven't
13026	// created geolocation resource record sets and queries from IP addresses that
13027	// aren't mapped to a location. If you don't create a * resource record set,
13028	// Route 53 returns a "no answer" response for queries from those locations.
13029	//
13030	// You can't create non-geolocation resource record sets that have the same
13031	// values for the Name and Type elements as geolocation resource record sets.
13032	GeoLocation *GeoLocation `type:"structure"`
13033
13034	// If you want Amazon Route 53 to return this resource record set in response
13035	// to a DNS query only when the status of a health check is healthy, include
13036	// the HealthCheckId element and specify the ID of the applicable health check.
13037	//
13038	// Route 53 determines whether a resource record set is healthy based on one
13039	// of the following:
13040	//
13041	//    * By periodically sending a request to the endpoint that is specified
13042	//    in the health check
13043	//
13044	//    * By aggregating the status of a specified group of health checks (calculated
13045	//    health checks)
13046	//
13047	//    * By determining the current state of a CloudWatch alarm (CloudWatch metric
13048	//    health checks)
13049	//
13050	// Route 53 doesn't check the health of the endpoint that is specified in the
13051	// resource record set, for example, the endpoint specified by the IP address
13052	// in the Value element. When you add a HealthCheckId element to a resource
13053	// record set, Route 53 checks the health of the endpoint that you specified
13054	// in the health check.
13055	//
13056	// For more information, see the following topics in the Amazon Route 53 Developer
13057	// Guide:
13058	//
13059	//    * How Amazon Route 53 Determines Whether an Endpoint Is Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
13060	//
13061	//    * Route 53 Health Checks and DNS Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)
13062	//
13063	//    * Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)
13064	//
13065	// When to Specify HealthCheckId
13066	//
13067	// Specifying a value for HealthCheckId is useful only when Route 53 is choosing
13068	// between two or more resource record sets to respond to a DNS query, and you
13069	// want Route 53 to base the choice in part on the status of a health check.
13070	// Configuring health checks makes sense only in the following configurations:
13071	//
13072	//    * Non-alias resource record sets: You're checking the health of a group
13073	//    of non-alias resource record sets that have the same routing policy, name,
13074	//    and type (such as multiple weighted records named www.example.com with
13075	//    a type of A) and you specify health check IDs for all the resource record
13076	//    sets. If the health check status for a resource record set is healthy,
13077	//    Route 53 includes the record among the records that it responds to DNS
13078	//    queries with. If the health check status for a resource record set is
13079	//    unhealthy, Route 53 stops responding to DNS queries using the value for
13080	//    that resource record set. If the health check status for all resource
13081	//    record sets in the group is unhealthy, Route 53 considers all resource
13082	//    record sets in the group healthy and responds to DNS queries accordingly.
13083	//
13084	//    * Alias resource record sets: You specify the following settings: You
13085	//    set EvaluateTargetHealth to true for an alias resource record set in a
13086	//    group of resource record sets that have the same routing policy, name,
13087	//    and type (such as multiple weighted records named www.example.com with
13088	//    a type of A). You configure the alias resource record set to route traffic
13089	//    to a non-alias resource record set in the same hosted zone. You specify
13090	//    a health check ID for the non-alias resource record set. If the health
13091	//    check status is healthy, Route 53 considers the alias resource record
13092	//    set to be healthy and includes the alias record among the records that
13093	//    it responds to DNS queries with. If the health check status is unhealthy,
13094	//    Route 53 stops responding to DNS queries using the alias resource record
13095	//    set. The alias resource record set can also route traffic to a group of
13096	//    non-alias resource record sets that have the same routing policy, name,
13097	//    and type. In that configuration, associate health checks with all of the
13098	//    resource record sets in the group of non-alias resource record sets.
13099	//
13100	// Geolocation Routing
13101	//
13102	// For geolocation resource record sets, if an endpoint is unhealthy, Route
13103	// 53 looks for a resource record set for the larger, associated geographic
13104	// region. For example, suppose you have resource record sets for a state in
13105	// the United States, for the entire United States, for North America, and a
13106	// resource record set that has * for CountryCode is *, which applies to all
13107	// locations. If the endpoint for the state resource record set is unhealthy,
13108	// Route 53 checks for healthy resource record sets in the following order until
13109	// it finds a resource record set for which the endpoint is healthy:
13110	//
13111	//    * The United States
13112	//
13113	//    * North America
13114	//
13115	//    * The default resource record set
13116	//
13117	// Specifying the Health Check Endpoint by Domain Name
13118	//
13119	// If your health checks specify the endpoint only by domain name, we recommend
13120	// that you create a separate health check for each endpoint. For example, create
13121	// a health check for each HTTP server that is serving content for www.example.com.
13122	// For the value of FullyQualifiedDomainName, specify the domain name of the
13123	// server (such as us-east-2-www.example.com), not the name of the resource
13124	// record sets (www.example.com).
13125	//
13126	// Health check results will be unpredictable if you do the following:
13127	//
13128	//    * Create a health check that has the same value for FullyQualifiedDomainName
13129	//    as the name of a resource record set.
13130	//
13131	//    * Associate that health check with the resource record set.
13132	HealthCheckId *string `type:"string"`
13133
13134	// Multivalue answer resource record sets only: To route traffic approximately
13135	// randomly to multiple resources, such as web servers, create one multivalue
13136	// answer record for each resource and specify true for MultiValueAnswer. Note
13137	// the following:
13138	//
13139	//    * If you associate a health check with a multivalue answer resource record
13140	//    set, Amazon Route 53 responds to DNS queries with the corresponding IP
13141	//    address only when the health check is healthy.
13142	//
13143	//    * If you don't associate a health check with a multivalue answer record,
13144	//    Route 53 always considers the record to be healthy.
13145	//
13146	//    * Route 53 responds to DNS queries with up to eight healthy records; if
13147	//    you have eight or fewer healthy records, Route 53 responds to all DNS
13148	//    queries with all the healthy records.
13149	//
13150	//    * If you have more than eight healthy records, Route 53 responds to different
13151	//    DNS resolvers with different combinations of healthy records.
13152	//
13153	//    * When all records are unhealthy, Route 53 responds to DNS queries with
13154	//    up to eight unhealthy records.
13155	//
13156	//    * If a resource becomes unavailable after a resolver caches a response,
13157	//    client software typically tries another of the IP addresses in the response.
13158	//
13159	// You can't create multivalue answer alias records.
13160	MultiValueAnswer *bool `type:"boolean"`
13161
13162	// For ChangeResourceRecordSets requests, the name of the record that you want
13163	// to create, update, or delete. For ListResourceRecordSets responses, the name
13164	// of a record in the specified hosted zone.
13165	//
13166	// ChangeResourceRecordSets Only
13167	//
13168	// Enter a fully qualified domain name, for example, www.example.com. You can
13169	// optionally include a trailing dot. If you omit the trailing dot, Amazon Route
13170	// 53 assumes that the domain name that you specify is fully qualified. This
13171	// means that Route 53 treats www.example.com (without a trailing dot) and www.example.com.
13172	// (with a trailing dot) as identical.
13173	//
13174	// For information about how to specify characters other than a-z, 0-9, and
13175	// - (hyphen) and how to specify internationalized domain names, see DNS Domain
13176	// Name Format (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html)
13177	// in the Amazon Route 53 Developer Guide.
13178	//
13179	// You can use the asterisk (*) wildcard to replace the leftmost label in a
13180	// domain name, for example, *.example.com. Note the following:
13181	//
13182	//    * The * must replace the entire label. For example, you can't specify
13183	//    *prod.example.com or prod*.example.com.
13184	//
13185	//    * The * can't replace any of the middle labels, for example, marketing.*.example.com.
13186	//
13187	//    * If you include * in any position other than the leftmost label in a
13188	//    domain name, DNS treats it as an * character (ASCII 42), not as a wildcard.
13189	//    You can't use the * wildcard for resource records sets that have a type
13190	//    of NS.
13191	//
13192	// You can use the * wildcard as the leftmost label in a domain name, for example,
13193	// *.example.com. You can't use an * for one of the middle labels, for example,
13194	// marketing.*.example.com. In addition, the * must replace the entire label;
13195	// for example, you can't specify prod*.example.com.
13196	//
13197	// Name is a required field
13198	Name *string `type:"string" required:"true"`
13199
13200	// Latency-based resource record sets only: The Amazon EC2 Region where you
13201	// created the resource that this resource record set refers to. The resource
13202	// typically is an AWS resource, such as an EC2 instance or an ELB load balancer,
13203	// and is referred to by an IP address or a DNS domain name, depending on the
13204	// record type.
13205	//
13206	// Creating latency and latency alias resource record sets in private hosted
13207	// zones is not supported.
13208	//
13209	// When Amazon Route 53 receives a DNS query for a domain name and type for
13210	// which you have created latency resource record sets, Route 53 selects the
13211	// latency resource record set that has the lowest latency between the end user
13212	// and the associated Amazon EC2 Region. Route 53 then returns the value that
13213	// is associated with the selected resource record set.
13214	//
13215	// Note the following:
13216	//
13217	//    * You can only specify one ResourceRecord per latency resource record
13218	//    set.
13219	//
13220	//    * You can only create one latency resource record set for each Amazon
13221	//    EC2 Region.
13222	//
13223	//    * You aren't required to create latency resource record sets for all Amazon
13224	//    EC2 Regions. Route 53 will choose the region with the best latency from
13225	//    among the regions that you create latency resource record sets for.
13226	//
13227	//    * You can't create non-latency resource record sets that have the same
13228	//    values for the Name and Type elements as latency resource record sets.
13229	Region *string `min:"1" type:"string" enum:"ResourceRecordSetRegion"`
13230
13231	// Information about the resource records to act upon.
13232	//
13233	// If you're creating an alias resource record set, omit ResourceRecords.
13234	ResourceRecords []*ResourceRecord `locationNameList:"ResourceRecord" min:"1" type:"list"`
13235
13236	// Resource record sets that have a routing policy other than simple: An identifier
13237	// that differentiates among multiple resource record sets that have the same
13238	// combination of name and type, such as multiple weighted resource record sets
13239	// named acme.example.com that have a type of A. In a group of resource record
13240	// sets that have the same name and type, the value of SetIdentifier must be
13241	// unique for each resource record set.
13242	//
13243	// For information about routing policies, see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)
13244	// in the Amazon Route 53 Developer Guide.
13245	SetIdentifier *string `min:"1" type:"string"`
13246
13247	// The resource record cache time to live (TTL), in seconds. Note the following:
13248	//
13249	//    * If you're creating or updating an alias resource record set, omit TTL.
13250	//    Amazon Route 53 uses the value of TTL for the alias target.
13251	//
13252	//    * If you're associating this resource record set with a health check (if
13253	//    you're adding a HealthCheckId element), we recommend that you specify
13254	//    a TTL of 60 seconds or less so clients respond quickly to changes in health
13255	//    status.
13256	//
13257	//    * All of the resource record sets in a group of weighted resource record
13258	//    sets must have the same value for TTL.
13259	//
13260	//    * If a group of weighted resource record sets includes one or more weighted
13261	//    alias resource record sets for which the alias target is an ELB load balancer,
13262	//    we recommend that you specify a TTL of 60 seconds for all of the non-alias
13263	//    weighted resource record sets that have the same name and type. Values
13264	//    other than 60 seconds (the TTL for load balancers) will change the effect
13265	//    of the values that you specify for Weight.
13266	TTL *int64 `type:"long"`
13267
13268	// When you create a traffic policy instance, Amazon Route 53 automatically
13269	// creates a resource record set. TrafficPolicyInstanceId is the ID of the traffic
13270	// policy instance that Route 53 created this resource record set for.
13271	//
13272	// To delete the resource record set that is associated with a traffic policy
13273	// instance, use DeleteTrafficPolicyInstance. Route 53 will delete the resource
13274	// record set automatically. If you delete the resource record set by using
13275	// ChangeResourceRecordSets, Route 53 doesn't automatically delete the traffic
13276	// policy instance, and you'll continue to be charged for it even though it's
13277	// no longer in use.
13278	TrafficPolicyInstanceId *string `min:"1" type:"string"`
13279
13280	// The DNS record type. For information about different record types and how
13281	// data is encoded for them, see Supported DNS Resource Record Types (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html)
13282	// in the Amazon Route 53 Developer Guide.
13283	//
13284	// Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX
13285	// | NAPTR | NS | PTR | SOA | SPF | SRV | TXT
13286	//
13287	// Values for weighted, latency, geolocation, and failover resource record sets:
13288	// A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating
13289	// a group of weighted, latency, geolocation, or failover resource record sets,
13290	// specify the same value for all of the resource record sets in the group.
13291	//
13292	// Valid values for multivalue answer resource record sets: A | AAAA | MX |
13293	// NAPTR | PTR | SPF | SRV | TXT
13294	//
13295	// SPF records were formerly used to verify the identity of the sender of email
13296	// messages. However, we no longer recommend that you create resource record
13297	// sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework
13298	// (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated
13299	// to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to
13300	// some interoperability issues. Accordingly, its use is no longer appropriate
13301	// for SPF version 1; implementations are not to use it." In RFC 7208, see section
13302	// 14.1, The SPF DNS Record Type (http://tools.ietf.org/html/rfc7208#section-14.1).
13303	//
13304	// Values for alias resource record sets:
13305	//
13306	//    * Amazon API Gateway custom regional APIs and edge-optimized APIs: A
13307	//
13308	//    * CloudFront distributions: A If IPv6 is enabled for the distribution,
13309	//    create two resource record sets to route traffic to your distribution,
13310	//    one with a value of A and one with a value of AAAA.
13311	//
13312	//    * AWS Elastic Beanstalk environment that has a regionalized subdomain:
13313	//    A
13314	//
13315	//    * ELB load balancers: A | AAAA
13316	//
13317	//    * Amazon S3 buckets: A
13318	//
13319	//    * Amazon Virtual Private Cloud interface VPC endpoints A
13320	//
13321	//    * Another resource record set in this hosted zone: Specify the type of
13322	//    the resource record set that you're creating the alias for. All values
13323	//    are supported except NS and SOA. If you're creating an alias record that
13324	//    has the same name as the hosted zone (known as the zone apex), you can't
13325	//    route traffic to a record for which the value of Type is CNAME. This is
13326	//    because the alias record must have the same type as the record you're
13327	//    routing traffic to, and creating a CNAME record for the zone apex isn't
13328	//    supported even for an alias record.
13329	//
13330	// Type is a required field
13331	Type *string `type:"string" required:"true" enum:"RRType"`
13332
13333	// Weighted resource record sets only: Among resource record sets that have
13334	// the same combination of DNS name and type, a value that determines the proportion
13335	// of DNS queries that Amazon Route 53 responds to using the current resource
13336	// record set. Route 53 calculates the sum of the weights for the resource record
13337	// sets that have the same combination of DNS name and type. Route 53 then responds
13338	// to queries based on the ratio of a resource's weight to the total. Note the
13339	// following:
13340	//
13341	//    * You must specify a value for the Weight element for every weighted resource
13342	//    record set.
13343	//
13344	//    * You can only specify one ResourceRecord per weighted resource record
13345	//    set.
13346	//
13347	//    * You can't create latency, failover, or geolocation resource record sets
13348	//    that have the same values for the Name and Type elements as weighted resource
13349	//    record sets.
13350	//
13351	//    * You can create a maximum of 100 weighted resource record sets that have
13352	//    the same values for the Name and Type elements.
13353	//
13354	//    * For weighted (but not weighted alias) resource record sets, if you set
13355	//    Weight to 0 for a resource record set, Route 53 never responds to queries
13356	//    with the applicable value for that resource record set. However, if you
13357	//    set Weight to 0 for all resource record sets that have the same combination
13358	//    of DNS name and type, traffic is routed to all resources with equal probability.
13359	//    The effect of setting Weight to 0 is different when you associate health
13360	//    checks with weighted resource record sets. For more information, see Options
13361	//    for Configuring Route 53 Active-Active and Active-Passive Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html)
13362	//    in the Amazon Route 53 Developer Guide.
13363	Weight *int64 `type:"long"`
13364}
13365
13366// String returns the string representation
13367func (s ResourceRecordSet) String() string {
13368	return awsutil.Prettify(s)
13369}
13370
13371// GoString returns the string representation
13372func (s ResourceRecordSet) GoString() string {
13373	return s.String()
13374}
13375
13376// Validate inspects the fields of the type to determine if they are valid.
13377func (s *ResourceRecordSet) Validate() error {
13378	invalidParams := request.ErrInvalidParams{Context: "ResourceRecordSet"}
13379	if s.Name == nil {
13380		invalidParams.Add(request.NewErrParamRequired("Name"))
13381	}
13382	if s.Region != nil && len(*s.Region) < 1 {
13383		invalidParams.Add(request.NewErrParamMinLen("Region", 1))
13384	}
13385	if s.ResourceRecords != nil && len(s.ResourceRecords) < 1 {
13386		invalidParams.Add(request.NewErrParamMinLen("ResourceRecords", 1))
13387	}
13388	if s.SetIdentifier != nil && len(*s.SetIdentifier) < 1 {
13389		invalidParams.Add(request.NewErrParamMinLen("SetIdentifier", 1))
13390	}
13391	if s.TrafficPolicyInstanceId != nil && len(*s.TrafficPolicyInstanceId) < 1 {
13392		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyInstanceId", 1))
13393	}
13394	if s.Type == nil {
13395		invalidParams.Add(request.NewErrParamRequired("Type"))
13396	}
13397	if s.AliasTarget != nil {
13398		if err := s.AliasTarget.Validate(); err != nil {
13399			invalidParams.AddNested("AliasTarget", err.(request.ErrInvalidParams))
13400		}
13401	}
13402	if s.GeoLocation != nil {
13403		if err := s.GeoLocation.Validate(); err != nil {
13404			invalidParams.AddNested("GeoLocation", err.(request.ErrInvalidParams))
13405		}
13406	}
13407	if s.ResourceRecords != nil {
13408		for i, v := range s.ResourceRecords {
13409			if v == nil {
13410				continue
13411			}
13412			if err := v.Validate(); err != nil {
13413				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRecords", i), err.(request.ErrInvalidParams))
13414			}
13415		}
13416	}
13417
13418	if invalidParams.Len() > 0 {
13419		return invalidParams
13420	}
13421	return nil
13422}
13423
13424// SetAliasTarget sets the AliasTarget field's value.
13425func (s *ResourceRecordSet) SetAliasTarget(v *AliasTarget) *ResourceRecordSet {
13426	s.AliasTarget = v
13427	return s
13428}
13429
13430// SetFailover sets the Failover field's value.
13431func (s *ResourceRecordSet) SetFailover(v string) *ResourceRecordSet {
13432	s.Failover = &v
13433	return s
13434}
13435
13436// SetGeoLocation sets the GeoLocation field's value.
13437func (s *ResourceRecordSet) SetGeoLocation(v *GeoLocation) *ResourceRecordSet {
13438	s.GeoLocation = v
13439	return s
13440}
13441
13442// SetHealthCheckId sets the HealthCheckId field's value.
13443func (s *ResourceRecordSet) SetHealthCheckId(v string) *ResourceRecordSet {
13444	s.HealthCheckId = &v
13445	return s
13446}
13447
13448// SetMultiValueAnswer sets the MultiValueAnswer field's value.
13449func (s *ResourceRecordSet) SetMultiValueAnswer(v bool) *ResourceRecordSet {
13450	s.MultiValueAnswer = &v
13451	return s
13452}
13453
13454// SetName sets the Name field's value.
13455func (s *ResourceRecordSet) SetName(v string) *ResourceRecordSet {
13456	s.Name = &v
13457	return s
13458}
13459
13460// SetRegion sets the Region field's value.
13461func (s *ResourceRecordSet) SetRegion(v string) *ResourceRecordSet {
13462	s.Region = &v
13463	return s
13464}
13465
13466// SetResourceRecords sets the ResourceRecords field's value.
13467func (s *ResourceRecordSet) SetResourceRecords(v []*ResourceRecord) *ResourceRecordSet {
13468	s.ResourceRecords = v
13469	return s
13470}
13471
13472// SetSetIdentifier sets the SetIdentifier field's value.
13473func (s *ResourceRecordSet) SetSetIdentifier(v string) *ResourceRecordSet {
13474	s.SetIdentifier = &v
13475	return s
13476}
13477
13478// SetTTL sets the TTL field's value.
13479func (s *ResourceRecordSet) SetTTL(v int64) *ResourceRecordSet {
13480	s.TTL = &v
13481	return s
13482}
13483
13484// SetTrafficPolicyInstanceId sets the TrafficPolicyInstanceId field's value.
13485func (s *ResourceRecordSet) SetTrafficPolicyInstanceId(v string) *ResourceRecordSet {
13486	s.TrafficPolicyInstanceId = &v
13487	return s
13488}
13489
13490// SetType sets the Type field's value.
13491func (s *ResourceRecordSet) SetType(v string) *ResourceRecordSet {
13492	s.Type = &v
13493	return s
13494}
13495
13496// SetWeight sets the Weight field's value.
13497func (s *ResourceRecordSet) SetWeight(v int64) *ResourceRecordSet {
13498	s.Weight = &v
13499	return s
13500}
13501
13502// A complex type containing a resource and its associated tags.
13503type ResourceTagSet struct {
13504	_ struct{} `type:"structure"`
13505
13506	// The ID for the specified resource.
13507	ResourceId *string `type:"string"`
13508
13509	// The type of the resource.
13510	//
13511	//    * The resource type for health checks is healthcheck.
13512	//
13513	//    * The resource type for hosted zones is hostedzone.
13514	ResourceType *string `type:"string" enum:"TagResourceType"`
13515
13516	// The tags associated with the specified resource.
13517	Tags []*Tag `locationNameList:"Tag" min:"1" type:"list"`
13518}
13519
13520// String returns the string representation
13521func (s ResourceTagSet) String() string {
13522	return awsutil.Prettify(s)
13523}
13524
13525// GoString returns the string representation
13526func (s ResourceTagSet) GoString() string {
13527	return s.String()
13528}
13529
13530// SetResourceId sets the ResourceId field's value.
13531func (s *ResourceTagSet) SetResourceId(v string) *ResourceTagSet {
13532	s.ResourceId = &v
13533	return s
13534}
13535
13536// SetResourceType sets the ResourceType field's value.
13537func (s *ResourceTagSet) SetResourceType(v string) *ResourceTagSet {
13538	s.ResourceType = &v
13539	return s
13540}
13541
13542// SetTags sets the Tags field's value.
13543func (s *ResourceTagSet) SetTags(v []*Tag) *ResourceTagSet {
13544	s.Tags = v
13545	return s
13546}
13547
13548// A complex type that contains the type of limit that you specified in the
13549// request and the current value for that limit.
13550type ReusableDelegationSetLimit struct {
13551	_ struct{} `type:"structure"`
13552
13553	// The limit that you requested: MAX_ZONES_BY_REUSABLE_DELEGATION_SET, the maximum
13554	// number of hosted zones that you can associate with the specified reusable
13555	// delegation set.
13556	//
13557	// Type is a required field
13558	Type *string `type:"string" required:"true" enum:"ReusableDelegationSetLimitType"`
13559
13560	// The current value for the MAX_ZONES_BY_REUSABLE_DELEGATION_SET limit.
13561	//
13562	// Value is a required field
13563	Value *int64 `min:"1" type:"long" required:"true"`
13564}
13565
13566// String returns the string representation
13567func (s ReusableDelegationSetLimit) String() string {
13568	return awsutil.Prettify(s)
13569}
13570
13571// GoString returns the string representation
13572func (s ReusableDelegationSetLimit) GoString() string {
13573	return s.String()
13574}
13575
13576// SetType sets the Type field's value.
13577func (s *ReusableDelegationSetLimit) SetType(v string) *ReusableDelegationSetLimit {
13578	s.Type = &v
13579	return s
13580}
13581
13582// SetValue sets the Value field's value.
13583func (s *ReusableDelegationSetLimit) SetValue(v int64) *ReusableDelegationSetLimit {
13584	s.Value = &v
13585	return s
13586}
13587
13588// A complex type that contains the status that one Amazon Route 53 health checker
13589// reports and the time of the health check.
13590type StatusReport struct {
13591	_ struct{} `type:"structure"`
13592
13593	// The date and time that the health checker performed the health check in ISO
13594	// 8601 format (https://en.wikipedia.org/wiki/ISO_8601) and Coordinated Universal
13595	// Time (UTC). For example, the value 2017-03-27T17:48:16.751Z represents March
13596	// 27, 2017 at 17:48:16.751 UTC.
13597	CheckedTime *time.Time `type:"timestamp"`
13598
13599	// A description of the status of the health check endpoint as reported by one
13600	// of the Amazon Route 53 health checkers.
13601	Status *string `type:"string"`
13602}
13603
13604// String returns the string representation
13605func (s StatusReport) String() string {
13606	return awsutil.Prettify(s)
13607}
13608
13609// GoString returns the string representation
13610func (s StatusReport) GoString() string {
13611	return s.String()
13612}
13613
13614// SetCheckedTime sets the CheckedTime field's value.
13615func (s *StatusReport) SetCheckedTime(v time.Time) *StatusReport {
13616	s.CheckedTime = &v
13617	return s
13618}
13619
13620// SetStatus sets the Status field's value.
13621func (s *StatusReport) SetStatus(v string) *StatusReport {
13622	s.Status = &v
13623	return s
13624}
13625
13626// A complex type that contains information about a tag that you want to add
13627// or edit for the specified health check or hosted zone.
13628type Tag struct {
13629	_ struct{} `type:"structure"`
13630
13631	// The value of Key depends on the operation that you want to perform:
13632	//
13633	//    * Add a tag to a health check or hosted zone: Key is the name that you
13634	//    want to give the new tag.
13635	//
13636	//    * Edit a tag: Key is the name of the tag that you want to change the Value
13637	//    for.
13638	//
13639	//    * Delete a key: Key is the name of the tag you want to remove.
13640	//
13641	//    * Give a name to a health check: Edit the default Name tag. In the Amazon
13642	//    Route 53 console, the list of your health checks includes a Name column
13643	//    that lets you see the name that you've given to each health check.
13644	Key *string `type:"string"`
13645
13646	// The value of Value depends on the operation that you want to perform:
13647	//
13648	//    * Add a tag to a health check or hosted zone: Value is the value that
13649	//    you want to give the new tag.
13650	//
13651	//    * Edit a tag: Value is the new value that you want to assign the tag.
13652	Value *string `type:"string"`
13653}
13654
13655// String returns the string representation
13656func (s Tag) String() string {
13657	return awsutil.Prettify(s)
13658}
13659
13660// GoString returns the string representation
13661func (s Tag) GoString() string {
13662	return s.String()
13663}
13664
13665// SetKey sets the Key field's value.
13666func (s *Tag) SetKey(v string) *Tag {
13667	s.Key = &v
13668	return s
13669}
13670
13671// SetValue sets the Value field's value.
13672func (s *Tag) SetValue(v string) *Tag {
13673	s.Value = &v
13674	return s
13675}
13676
13677// Gets the value that Amazon Route 53 returns in response to a DNS request
13678// for a specified record name and type. You can optionally specify the IP address
13679// of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask.
13680type TestDNSAnswerInput struct {
13681	_ struct{} `locationName:"TestDNSAnswerRequest" type:"structure"`
13682
13683	// If the resolver that you specified for resolverip supports EDNS0, specify
13684	// the IPv4 or IPv6 address of a client in the applicable location, for example,
13685	// 192.0.2.44 or 2001:db8:85a3::8a2e:370:7334.
13686	EDNS0ClientSubnetIP *string `location:"querystring" locationName:"edns0clientsubnetip" type:"string"`
13687
13688	// If you specify an IP address for edns0clientsubnetip, you can optionally
13689	// specify the number of bits of the IP address that you want the checking tool
13690	// to include in the DNS query. For example, if you specify 192.0.2.44 for edns0clientsubnetip
13691	// and 24 for edns0clientsubnetmask, the checking tool will simulate a request
13692	// from 192.0.2.0/24. The default value is 24 bits for IPv4 addresses and 64
13693	// bits for IPv6 addresses.
13694	//
13695	// The range of valid values depends on whether edns0clientsubnetip is an IPv4
13696	// or an IPv6 address:
13697	//
13698	//    * IPv4: Specify a value between 0 and 32
13699	//
13700	//    * IPv6: Specify a value between 0 and 128
13701	EDNS0ClientSubnetMask *string `location:"querystring" locationName:"edns0clientsubnetmask" type:"string"`
13702
13703	// The ID of the hosted zone that you want Amazon Route 53 to simulate a query
13704	// for.
13705	//
13706	// HostedZoneId is a required field
13707	HostedZoneId *string `location:"querystring" locationName:"hostedzoneid" type:"string" required:"true"`
13708
13709	// The name of the resource record set that you want Amazon Route 53 to simulate
13710	// a query for.
13711	//
13712	// RecordName is a required field
13713	RecordName *string `location:"querystring" locationName:"recordname" type:"string" required:"true"`
13714
13715	// The type of the resource record set.
13716	//
13717	// RecordType is a required field
13718	RecordType *string `location:"querystring" locationName:"recordtype" type:"string" required:"true" enum:"RRType"`
13719
13720	// If you want to simulate a request from a specific DNS resolver, specify the
13721	// IP address for that resolver. If you omit this value, TestDnsAnswer uses
13722	// the IP address of a DNS resolver in the AWS US East (N. Virginia) Region
13723	// (us-east-1).
13724	ResolverIP *string `location:"querystring" locationName:"resolverip" type:"string"`
13725}
13726
13727// String returns the string representation
13728func (s TestDNSAnswerInput) String() string {
13729	return awsutil.Prettify(s)
13730}
13731
13732// GoString returns the string representation
13733func (s TestDNSAnswerInput) GoString() string {
13734	return s.String()
13735}
13736
13737// Validate inspects the fields of the type to determine if they are valid.
13738func (s *TestDNSAnswerInput) Validate() error {
13739	invalidParams := request.ErrInvalidParams{Context: "TestDNSAnswerInput"}
13740	if s.HostedZoneId == nil {
13741		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
13742	}
13743	if s.RecordName == nil {
13744		invalidParams.Add(request.NewErrParamRequired("RecordName"))
13745	}
13746	if s.RecordType == nil {
13747		invalidParams.Add(request.NewErrParamRequired("RecordType"))
13748	}
13749
13750	if invalidParams.Len() > 0 {
13751		return invalidParams
13752	}
13753	return nil
13754}
13755
13756// SetEDNS0ClientSubnetIP sets the EDNS0ClientSubnetIP field's value.
13757func (s *TestDNSAnswerInput) SetEDNS0ClientSubnetIP(v string) *TestDNSAnswerInput {
13758	s.EDNS0ClientSubnetIP = &v
13759	return s
13760}
13761
13762// SetEDNS0ClientSubnetMask sets the EDNS0ClientSubnetMask field's value.
13763func (s *TestDNSAnswerInput) SetEDNS0ClientSubnetMask(v string) *TestDNSAnswerInput {
13764	s.EDNS0ClientSubnetMask = &v
13765	return s
13766}
13767
13768// SetHostedZoneId sets the HostedZoneId field's value.
13769func (s *TestDNSAnswerInput) SetHostedZoneId(v string) *TestDNSAnswerInput {
13770	s.HostedZoneId = &v
13771	return s
13772}
13773
13774// SetRecordName sets the RecordName field's value.
13775func (s *TestDNSAnswerInput) SetRecordName(v string) *TestDNSAnswerInput {
13776	s.RecordName = &v
13777	return s
13778}
13779
13780// SetRecordType sets the RecordType field's value.
13781func (s *TestDNSAnswerInput) SetRecordType(v string) *TestDNSAnswerInput {
13782	s.RecordType = &v
13783	return s
13784}
13785
13786// SetResolverIP sets the ResolverIP field's value.
13787func (s *TestDNSAnswerInput) SetResolverIP(v string) *TestDNSAnswerInput {
13788	s.ResolverIP = &v
13789	return s
13790}
13791
13792// A complex type that contains the response to a TestDNSAnswer request.
13793type TestDNSAnswerOutput struct {
13794	_ struct{} `type:"structure"`
13795
13796	// The Amazon Route 53 name server used to respond to the request.
13797	//
13798	// Nameserver is a required field
13799	Nameserver *string `type:"string" required:"true"`
13800
13801	// The protocol that Amazon Route 53 used to respond to the request, either
13802	// UDP or TCP.
13803	//
13804	// Protocol is a required field
13805	Protocol *string `type:"string" required:"true"`
13806
13807	// A list that contains values that Amazon Route 53 returned for this resource
13808	// record set.
13809	//
13810	// RecordData is a required field
13811	RecordData []*string `locationNameList:"RecordDataEntry" type:"list" required:"true"`
13812
13813	// The name of the resource record set that you submitted a request for.
13814	//
13815	// RecordName is a required field
13816	RecordName *string `type:"string" required:"true"`
13817
13818	// The type of the resource record set that you submitted a request for.
13819	//
13820	// RecordType is a required field
13821	RecordType *string `type:"string" required:"true" enum:"RRType"`
13822
13823	// A code that indicates whether the request is valid or not. The most common
13824	// response code is NOERROR, meaning that the request is valid. If the response
13825	// is not valid, Amazon Route 53 returns a response code that describes the
13826	// error. For a list of possible response codes, see DNS RCODES (http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6)
13827	// on the IANA website.
13828	//
13829	// ResponseCode is a required field
13830	ResponseCode *string `type:"string" required:"true"`
13831}
13832
13833// String returns the string representation
13834func (s TestDNSAnswerOutput) String() string {
13835	return awsutil.Prettify(s)
13836}
13837
13838// GoString returns the string representation
13839func (s TestDNSAnswerOutput) GoString() string {
13840	return s.String()
13841}
13842
13843// SetNameserver sets the Nameserver field's value.
13844func (s *TestDNSAnswerOutput) SetNameserver(v string) *TestDNSAnswerOutput {
13845	s.Nameserver = &v
13846	return s
13847}
13848
13849// SetProtocol sets the Protocol field's value.
13850func (s *TestDNSAnswerOutput) SetProtocol(v string) *TestDNSAnswerOutput {
13851	s.Protocol = &v
13852	return s
13853}
13854
13855// SetRecordData sets the RecordData field's value.
13856func (s *TestDNSAnswerOutput) SetRecordData(v []*string) *TestDNSAnswerOutput {
13857	s.RecordData = v
13858	return s
13859}
13860
13861// SetRecordName sets the RecordName field's value.
13862func (s *TestDNSAnswerOutput) SetRecordName(v string) *TestDNSAnswerOutput {
13863	s.RecordName = &v
13864	return s
13865}
13866
13867// SetRecordType sets the RecordType field's value.
13868func (s *TestDNSAnswerOutput) SetRecordType(v string) *TestDNSAnswerOutput {
13869	s.RecordType = &v
13870	return s
13871}
13872
13873// SetResponseCode sets the ResponseCode field's value.
13874func (s *TestDNSAnswerOutput) SetResponseCode(v string) *TestDNSAnswerOutput {
13875	s.ResponseCode = &v
13876	return s
13877}
13878
13879// A complex type that contains settings for a traffic policy.
13880type TrafficPolicy struct {
13881	_ struct{} `type:"structure"`
13882
13883	// The comment that you specify in the CreateTrafficPolicy request, if any.
13884	Comment *string `type:"string"`
13885
13886	// The definition of a traffic policy in JSON format. You specify the JSON document
13887	// to use for a new traffic policy in the CreateTrafficPolicy request. For more
13888	// information about the JSON format, see Traffic Policy Document Format (https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html).
13889	//
13890	// Document is a required field
13891	Document *string `type:"string" required:"true"`
13892
13893	// The ID that Amazon Route 53 assigned to a traffic policy when you created
13894	// it.
13895	//
13896	// Id is a required field
13897	Id *string `min:"1" type:"string" required:"true"`
13898
13899	// The name that you specified when you created the traffic policy.
13900	//
13901	// Name is a required field
13902	Name *string `type:"string" required:"true"`
13903
13904	// The DNS type of the resource record sets that Amazon Route 53 creates when
13905	// you use a traffic policy to create a traffic policy instance.
13906	//
13907	// Type is a required field
13908	Type *string `type:"string" required:"true" enum:"RRType"`
13909
13910	// The version number that Amazon Route 53 assigns to a traffic policy. For
13911	// a new traffic policy, the value of Version is always 1.
13912	//
13913	// Version is a required field
13914	Version *int64 `min:"1" type:"integer" required:"true"`
13915}
13916
13917// String returns the string representation
13918func (s TrafficPolicy) String() string {
13919	return awsutil.Prettify(s)
13920}
13921
13922// GoString returns the string representation
13923func (s TrafficPolicy) GoString() string {
13924	return s.String()
13925}
13926
13927// SetComment sets the Comment field's value.
13928func (s *TrafficPolicy) SetComment(v string) *TrafficPolicy {
13929	s.Comment = &v
13930	return s
13931}
13932
13933// SetDocument sets the Document field's value.
13934func (s *TrafficPolicy) SetDocument(v string) *TrafficPolicy {
13935	s.Document = &v
13936	return s
13937}
13938
13939// SetId sets the Id field's value.
13940func (s *TrafficPolicy) SetId(v string) *TrafficPolicy {
13941	s.Id = &v
13942	return s
13943}
13944
13945// SetName sets the Name field's value.
13946func (s *TrafficPolicy) SetName(v string) *TrafficPolicy {
13947	s.Name = &v
13948	return s
13949}
13950
13951// SetType sets the Type field's value.
13952func (s *TrafficPolicy) SetType(v string) *TrafficPolicy {
13953	s.Type = &v
13954	return s
13955}
13956
13957// SetVersion sets the Version field's value.
13958func (s *TrafficPolicy) SetVersion(v int64) *TrafficPolicy {
13959	s.Version = &v
13960	return s
13961}
13962
13963// A complex type that contains settings for the new traffic policy instance.
13964type TrafficPolicyInstance struct {
13965	_ struct{} `type:"structure"`
13966
13967	// The ID of the hosted zone that Amazon Route 53 created resource record sets
13968	// in.
13969	//
13970	// HostedZoneId is a required field
13971	HostedZoneId *string `type:"string" required:"true"`
13972
13973	// The ID that Amazon Route 53 assigned to the new traffic policy instance.
13974	//
13975	// Id is a required field
13976	Id *string `min:"1" type:"string" required:"true"`
13977
13978	// If State is Failed, an explanation of the reason for the failure. If State
13979	// is another value, Message is empty.
13980	//
13981	// Message is a required field
13982	Message *string `type:"string" required:"true"`
13983
13984	// The DNS name, such as www.example.com, for which Amazon Route 53 responds
13985	// to queries by using the resource record sets that are associated with this
13986	// traffic policy instance.
13987	//
13988	// Name is a required field
13989	Name *string `type:"string" required:"true"`
13990
13991	// The value of State is one of the following values:
13992	//
13993	// Applied
13994	//
13995	// Amazon Route 53 has finished creating resource record sets, and changes have
13996	// propagated to all Route 53 edge locations.
13997	//
13998	// Creating
13999	//
14000	// Route 53 is creating the resource record sets. Use GetTrafficPolicyInstance
14001	// to confirm that the CreateTrafficPolicyInstance request completed successfully.
14002	//
14003	// Failed
14004	//
14005	// Route 53 wasn't able to create or update the resource record sets. When the
14006	// value of State is Failed, see Message for an explanation of what caused the
14007	// request to fail.
14008	//
14009	// State is a required field
14010	State *string `type:"string" required:"true"`
14011
14012	// The TTL that Amazon Route 53 assigned to all of the resource record sets
14013	// that it created in the specified hosted zone.
14014	//
14015	// TTL is a required field
14016	TTL *int64 `type:"long" required:"true"`
14017
14018	// The ID of the traffic policy that Amazon Route 53 used to create resource
14019	// record sets in the specified hosted zone.
14020	//
14021	// TrafficPolicyId is a required field
14022	TrafficPolicyId *string `min:"1" type:"string" required:"true"`
14023
14024	// The DNS type that Amazon Route 53 assigned to all of the resource record
14025	// sets that it created for this traffic policy instance.
14026	//
14027	// TrafficPolicyType is a required field
14028	TrafficPolicyType *string `type:"string" required:"true" enum:"RRType"`
14029
14030	// The version of the traffic policy that Amazon Route 53 used to create resource
14031	// record sets in the specified hosted zone.
14032	//
14033	// TrafficPolicyVersion is a required field
14034	TrafficPolicyVersion *int64 `min:"1" type:"integer" required:"true"`
14035}
14036
14037// String returns the string representation
14038func (s TrafficPolicyInstance) String() string {
14039	return awsutil.Prettify(s)
14040}
14041
14042// GoString returns the string representation
14043func (s TrafficPolicyInstance) GoString() string {
14044	return s.String()
14045}
14046
14047// SetHostedZoneId sets the HostedZoneId field's value.
14048func (s *TrafficPolicyInstance) SetHostedZoneId(v string) *TrafficPolicyInstance {
14049	s.HostedZoneId = &v
14050	return s
14051}
14052
14053// SetId sets the Id field's value.
14054func (s *TrafficPolicyInstance) SetId(v string) *TrafficPolicyInstance {
14055	s.Id = &v
14056	return s
14057}
14058
14059// SetMessage sets the Message field's value.
14060func (s *TrafficPolicyInstance) SetMessage(v string) *TrafficPolicyInstance {
14061	s.Message = &v
14062	return s
14063}
14064
14065// SetName sets the Name field's value.
14066func (s *TrafficPolicyInstance) SetName(v string) *TrafficPolicyInstance {
14067	s.Name = &v
14068	return s
14069}
14070
14071// SetState sets the State field's value.
14072func (s *TrafficPolicyInstance) SetState(v string) *TrafficPolicyInstance {
14073	s.State = &v
14074	return s
14075}
14076
14077// SetTTL sets the TTL field's value.
14078func (s *TrafficPolicyInstance) SetTTL(v int64) *TrafficPolicyInstance {
14079	s.TTL = &v
14080	return s
14081}
14082
14083// SetTrafficPolicyId sets the TrafficPolicyId field's value.
14084func (s *TrafficPolicyInstance) SetTrafficPolicyId(v string) *TrafficPolicyInstance {
14085	s.TrafficPolicyId = &v
14086	return s
14087}
14088
14089// SetTrafficPolicyType sets the TrafficPolicyType field's value.
14090func (s *TrafficPolicyInstance) SetTrafficPolicyType(v string) *TrafficPolicyInstance {
14091	s.TrafficPolicyType = &v
14092	return s
14093}
14094
14095// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
14096func (s *TrafficPolicyInstance) SetTrafficPolicyVersion(v int64) *TrafficPolicyInstance {
14097	s.TrafficPolicyVersion = &v
14098	return s
14099}
14100
14101// A complex type that contains information about the latest version of one
14102// traffic policy that is associated with the current AWS account.
14103type TrafficPolicySummary struct {
14104	_ struct{} `type:"structure"`
14105
14106	// The ID that Amazon Route 53 assigned to the traffic policy when you created
14107	// it.
14108	//
14109	// Id is a required field
14110	Id *string `min:"1" type:"string" required:"true"`
14111
14112	// The version number of the latest version of the traffic policy.
14113	//
14114	// LatestVersion is a required field
14115	LatestVersion *int64 `min:"1" type:"integer" required:"true"`
14116
14117	// The name that you specified for the traffic policy when you created it.
14118	//
14119	// Name is a required field
14120	Name *string `type:"string" required:"true"`
14121
14122	// The number of traffic policies that are associated with the current AWS account.
14123	//
14124	// TrafficPolicyCount is a required field
14125	TrafficPolicyCount *int64 `min:"1" type:"integer" required:"true"`
14126
14127	// The DNS type of the resource record sets that Amazon Route 53 creates when
14128	// you use a traffic policy to create a traffic policy instance.
14129	//
14130	// Type is a required field
14131	Type *string `type:"string" required:"true" enum:"RRType"`
14132}
14133
14134// String returns the string representation
14135func (s TrafficPolicySummary) String() string {
14136	return awsutil.Prettify(s)
14137}
14138
14139// GoString returns the string representation
14140func (s TrafficPolicySummary) GoString() string {
14141	return s.String()
14142}
14143
14144// SetId sets the Id field's value.
14145func (s *TrafficPolicySummary) SetId(v string) *TrafficPolicySummary {
14146	s.Id = &v
14147	return s
14148}
14149
14150// SetLatestVersion sets the LatestVersion field's value.
14151func (s *TrafficPolicySummary) SetLatestVersion(v int64) *TrafficPolicySummary {
14152	s.LatestVersion = &v
14153	return s
14154}
14155
14156// SetName sets the Name field's value.
14157func (s *TrafficPolicySummary) SetName(v string) *TrafficPolicySummary {
14158	s.Name = &v
14159	return s
14160}
14161
14162// SetTrafficPolicyCount sets the TrafficPolicyCount field's value.
14163func (s *TrafficPolicySummary) SetTrafficPolicyCount(v int64) *TrafficPolicySummary {
14164	s.TrafficPolicyCount = &v
14165	return s
14166}
14167
14168// SetType sets the Type field's value.
14169func (s *TrafficPolicySummary) SetType(v string) *TrafficPolicySummary {
14170	s.Type = &v
14171	return s
14172}
14173
14174// A complex type that contains information about a request to update a health
14175// check.
14176type UpdateHealthCheckInput struct {
14177	_ struct{} `locationName:"UpdateHealthCheckRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14178
14179	// A complex type that identifies the CloudWatch alarm that you want Amazon
14180	// Route 53 health checkers to use to determine whether the specified health
14181	// check is healthy.
14182	AlarmIdentifier *AlarmIdentifier `type:"structure"`
14183
14184	// A complex type that contains one ChildHealthCheck element for each health
14185	// check that you want to associate with a CALCULATED health check.
14186	ChildHealthChecks []*string `locationNameList:"ChildHealthCheck" type:"list"`
14187
14188	// Stops Route 53 from performing health checks. When you disable a health check,
14189	// here's what happens:
14190	//
14191	//    * Health checks that check the health of endpoints: Route 53 stops submitting
14192	//    requests to your application, server, or other resource.
14193	//
14194	//    * Calculated health checks: Route 53 stops aggregating the status of the
14195	//    referenced health checks.
14196	//
14197	//    * Health checks that monitor CloudWatch alarms: Route 53 stops monitoring
14198	//    the corresponding CloudWatch metrics.
14199	//
14200	// After you disable a health check, Route 53 considers the status of the health
14201	// check to always be healthy. If you configured DNS failover, Route 53 continues
14202	// to route traffic to the corresponding resources. If you want to stop routing
14203	// traffic to a resource, change the value of Inverted (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted).
14204	//
14205	// Charges for a health check still apply when the health check is disabled.
14206	// For more information, see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
14207	Disabled *bool `type:"boolean"`
14208
14209	// Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName
14210	// to the endpoint in the client_hello message during TLS negotiation. This
14211	// allows the endpoint to respond to HTTPS health check requests with the applicable
14212	// SSL/TLS certificate.
14213	//
14214	// Some endpoints require that HTTPS requests include the host name in the client_hello
14215	// message. If you don't enable SNI, the status of the health check will be
14216	// SSL alert handshake_failure. A health check can also have that status for
14217	// other reasons. If SNI is enabled and you're still getting the error, check
14218	// the SSL/TLS configuration on your endpoint and confirm that your certificate
14219	// is valid.
14220	//
14221	// The SSL/TLS certificate on your endpoint includes a domain name in the Common
14222	// Name field and possibly several more in the Subject Alternative Names field.
14223	// One of the domain names in the certificate should match the value that you
14224	// specify for FullyQualifiedDomainName. If the endpoint responds to the client_hello
14225	// message with a certificate that does not include the domain name that you
14226	// specified in FullyQualifiedDomainName, a health checker will retry the handshake.
14227	// In the second attempt, the health checker will omit FullyQualifiedDomainName
14228	// from the client_hello message.
14229	EnableSNI *bool `type:"boolean"`
14230
14231	// The number of consecutive health checks that an endpoint must pass or fail
14232	// for Amazon Route 53 to change the current status of the endpoint from unhealthy
14233	// to healthy or vice versa. For more information, see How Amazon Route 53 Determines
14234	// Whether an Endpoint Is Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
14235	// in the Amazon Route 53 Developer Guide.
14236	//
14237	// If you don't specify a value for FailureThreshold, the default value is three
14238	// health checks.
14239	FailureThreshold *int64 `min:"1" type:"integer"`
14240
14241	// Amazon Route 53 behavior depends on whether you specify a value for IPAddress.
14242	//
14243	// If a health check already has a value for IPAddress, you can change the value.
14244	// However, you can't update an existing health check to add or remove the value
14245	// of IPAddress.
14246	//
14247	// If you specify a value for IPAddress:
14248	//
14249	// Route 53 sends health check requests to the specified IPv4 or IPv6 address
14250	// and passes the value of FullyQualifiedDomainName in the Host header for all
14251	// health checks except TCP health checks. This is typically the fully qualified
14252	// DNS name of the endpoint on which you want Route 53 to perform health checks.
14253	//
14254	// When Route 53 checks the health of an endpoint, here is how it constructs
14255	// the Host header:
14256	//
14257	//    * If you specify a value of 80 for Port and HTTP or HTTP_STR_MATCH for
14258	//    Type, Route 53 passes the value of FullyQualifiedDomainName to the endpoint
14259	//    in the Host header.
14260	//
14261	//    * If you specify a value of 443 for Port and HTTPS or HTTPS_STR_MATCH
14262	//    for Type, Route 53 passes the value of FullyQualifiedDomainName to the
14263	//    endpoint in the Host header.
14264	//
14265	//    * If you specify another value for Port and any value except TCP for Type,
14266	//    Route 53 passes FullyQualifiedDomainName:Port to the endpoint in the Host
14267	//    header.
14268	//
14269	// If you don't specify a value for FullyQualifiedDomainName, Route 53 substitutes
14270	// the value of IPAddress in the Host header in each of the above cases.
14271	//
14272	// If you don't specify a value for IPAddress:
14273	//
14274	// If you don't specify a value for IPAddress, Route 53 sends a DNS request
14275	// to the domain that you specify in FullyQualifiedDomainName at the interval
14276	// you specify in RequestInterval. Using an IPv4 address that is returned by
14277	// DNS, Route 53 then checks the health of the endpoint.
14278	//
14279	// If you don't specify a value for IPAddress, Route 53 uses only IPv4 to send
14280	// health checks to the endpoint. If there's no resource record set with a type
14281	// of A for the name that you specify for FullyQualifiedDomainName, the health
14282	// check fails with a "DNS resolution failed" error.
14283	//
14284	// If you want to check the health of weighted, latency, or failover resource
14285	// record sets and you choose to specify the endpoint only by FullyQualifiedDomainName,
14286	// we recommend that you create a separate health check for each endpoint. For
14287	// example, create a health check for each HTTP server that is serving content
14288	// for www.example.com. For the value of FullyQualifiedDomainName, specify the
14289	// domain name of the server (such as us-east-2-www.example.com), not the name
14290	// of the resource record sets (www.example.com).
14291	//
14292	// In this configuration, if the value of FullyQualifiedDomainName matches the
14293	// name of the resource record sets and you then associate the health check
14294	// with those resource record sets, health check results will be unpredictable.
14295	//
14296	// In addition, if the value of Type is HTTP, HTTPS, HTTP_STR_MATCH, or HTTPS_STR_MATCH,
14297	// Route 53 passes the value of FullyQualifiedDomainName in the Host header,
14298	// as it does when you specify a value for IPAddress. If the value of Type is
14299	// TCP, Route 53 doesn't pass a Host header.
14300	FullyQualifiedDomainName *string `type:"string"`
14301
14302	// The ID for the health check for which you want detailed information. When
14303	// you created the health check, CreateHealthCheck returned the ID in the response,
14304	// in the HealthCheckId element.
14305	//
14306	// HealthCheckId is a required field
14307	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
14308
14309	// A sequential counter that Amazon Route 53 sets to 1 when you create a health
14310	// check and increments by 1 each time you update settings for the health check.
14311	//
14312	// We recommend that you use GetHealthCheck or ListHealthChecks to get the current
14313	// value of HealthCheckVersion for the health check that you want to update,
14314	// and that you include that value in your UpdateHealthCheck request. This prevents
14315	// Route 53 from overwriting an intervening update:
14316	//
14317	//    * If the value in the UpdateHealthCheck request matches the value of HealthCheckVersion
14318	//    in the health check, Route 53 updates the health check with the new settings.
14319	//
14320	//    * If the value of HealthCheckVersion in the health check is greater, the
14321	//    health check was changed after you got the version number. Route 53 does
14322	//    not update the health check, and it returns a HealthCheckVersionMismatch
14323	//    error.
14324	HealthCheckVersion *int64 `min:"1" type:"long"`
14325
14326	// The number of child health checks that are associated with a CALCULATED health
14327	// that Amazon Route 53 must consider healthy for the CALCULATED health check
14328	// to be considered healthy. To specify the child health checks that you want
14329	// to associate with a CALCULATED health check, use the ChildHealthChecks and
14330	// ChildHealthCheck elements.
14331	//
14332	// Note the following:
14333	//
14334	//    * If you specify a number greater than the number of child health checks,
14335	//    Route 53 always considers this health check to be unhealthy.
14336	//
14337	//    * If you specify 0, Route 53 always considers this health check to be
14338	//    healthy.
14339	HealthThreshold *int64 `type:"integer"`
14340
14341	// The IPv4 or IPv6 IP address for the endpoint that you want Amazon Route 53
14342	// to perform health checks on. If you don't specify a value for IPAddress,
14343	// Route 53 sends a DNS request to resolve the domain name that you specify
14344	// in FullyQualifiedDomainName at the interval that you specify in RequestInterval.
14345	// Using an IP address that is returned by DNS, Route 53 then checks the health
14346	// of the endpoint.
14347	//
14348	// Use one of the following formats for the value of IPAddress:
14349	//
14350	//    * IPv4 address: four values between 0 and 255, separated by periods (.),
14351	//    for example, 192.0.2.44.
14352	//
14353	//    * IPv6 address: eight groups of four hexadecimal values, separated by
14354	//    colons (:), for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. You
14355	//    can also shorten IPv6 addresses as described in RFC 5952, for example,
14356	//    2001:db8:85a3::abcd:1:2345.
14357	//
14358	// If the endpoint is an EC2 instance, we recommend that you create an Elastic
14359	// IP address, associate it with your EC2 instance, and specify the Elastic
14360	// IP address for IPAddress. This ensures that the IP address of your instance
14361	// never changes. For more information, see the applicable documentation:
14362	//
14363	//    * Linux: Elastic IP Addresses (EIP) (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
14364	//    in the Amazon EC2 User Guide for Linux Instances
14365	//
14366	//    * Windows: Elastic IP Addresses (EIP) (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html)
14367	//    in the Amazon EC2 User Guide for Windows Instances
14368	//
14369	// If a health check already has a value for IPAddress, you can change the value.
14370	// However, you can't update an existing health check to add or remove the value
14371	// of IPAddress.
14372	//
14373	// For more information, see FullyQualifiedDomainName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName).
14374	//
14375	// Constraints: Route 53 can't check the health of endpoints for which the IP
14376	// address is in local, private, non-routable, or multicast ranges. For more
14377	// information about IP addresses for which you can't create health checks,
14378	// see the following documents:
14379	//
14380	//    * RFC 5735, Special Use IPv4 Addresses (https://tools.ietf.org/html/rfc5735)
14381	//
14382	//    * RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space (https://tools.ietf.org/html/rfc6598)
14383	//
14384	//    * RFC 5156, Special-Use IPv6 Addresses (https://tools.ietf.org/html/rfc5156)
14385	IPAddress *string `type:"string"`
14386
14387	// When CloudWatch has insufficient data about the metric to determine the alarm
14388	// state, the status that you want Amazon Route 53 to assign to the health check:
14389	//
14390	//    * Healthy: Route 53 considers the health check to be healthy.
14391	//
14392	//    * Unhealthy: Route 53 considers the health check to be unhealthy.
14393	//
14394	//    * LastKnownStatus: Route 53 uses the status of the health check from the
14395	//    last time CloudWatch had sufficient data to determine the alarm state.
14396	//    For new health checks that have no last known status, the default status
14397	//    for the health check is healthy.
14398	InsufficientDataHealthStatus *string `type:"string" enum:"InsufficientDataHealthStatus"`
14399
14400	// Specify whether you want Amazon Route 53 to invert the status of a health
14401	// check, for example, to consider a health check unhealthy when it otherwise
14402	// would be considered healthy.
14403	Inverted *bool `type:"boolean"`
14404
14405	// The port on the endpoint on which you want Amazon Route 53 to perform health
14406	// checks.
14407	Port *int64 `min:"1" type:"integer"`
14408
14409	// A complex type that contains one Region element for each region that you
14410	// want Amazon Route 53 health checkers to check the specified endpoint from.
14411	Regions []*string `locationNameList:"Region" min:"3" type:"list"`
14412
14413	// A complex type that contains one ResettableElementName element for each element
14414	// that you want to reset to the default value. Valid values for ResettableElementName
14415	// include the following:
14416	//
14417	//    * ChildHealthChecks: Amazon Route 53 resets ChildHealthChecks (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ChildHealthChecks)
14418	//    to null.
14419	//
14420	//    * FullyQualifiedDomainName: Route 53 resets FullyQualifiedDomainName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName).
14421	//    to null.
14422	//
14423	//    * Regions: Route 53 resets the Regions (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions)
14424	//    list to the default set of regions.
14425	//
14426	//    * ResourcePath: Route 53 resets ResourcePath (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ResourcePath)
14427	//    to null.
14428	ResetElements []*string `locationNameList:"ResettableElementName" type:"list"`
14429
14430	// The path that you want Amazon Route 53 to request when performing health
14431	// checks. The path can be any value for which your endpoint will return an
14432	// HTTP status code of 2xx or 3xx when the endpoint is healthy, for example
14433	// the file /docs/route53-health-check.html. You can also include query string
14434	// parameters, for example, /welcome.html?language=jp&login=y.
14435	//
14436	// Specify this value only if you want to change it.
14437	ResourcePath *string `type:"string"`
14438
14439	// If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that
14440	// you want Amazon Route 53 to search for in the response body from the specified
14441	// resource. If the string appears in the response body, Route 53 considers
14442	// the resource healthy. (You can't change the value of Type when you update
14443	// a health check.)
14444	SearchString *string `type:"string"`
14445}
14446
14447// String returns the string representation
14448func (s UpdateHealthCheckInput) String() string {
14449	return awsutil.Prettify(s)
14450}
14451
14452// GoString returns the string representation
14453func (s UpdateHealthCheckInput) GoString() string {
14454	return s.String()
14455}
14456
14457// Validate inspects the fields of the type to determine if they are valid.
14458func (s *UpdateHealthCheckInput) Validate() error {
14459	invalidParams := request.ErrInvalidParams{Context: "UpdateHealthCheckInput"}
14460	if s.FailureThreshold != nil && *s.FailureThreshold < 1 {
14461		invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1))
14462	}
14463	if s.HealthCheckId == nil {
14464		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
14465	}
14466	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
14467		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
14468	}
14469	if s.HealthCheckVersion != nil && *s.HealthCheckVersion < 1 {
14470		invalidParams.Add(request.NewErrParamMinValue("HealthCheckVersion", 1))
14471	}
14472	if s.Port != nil && *s.Port < 1 {
14473		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
14474	}
14475	if s.Regions != nil && len(s.Regions) < 3 {
14476		invalidParams.Add(request.NewErrParamMinLen("Regions", 3))
14477	}
14478	if s.AlarmIdentifier != nil {
14479		if err := s.AlarmIdentifier.Validate(); err != nil {
14480			invalidParams.AddNested("AlarmIdentifier", err.(request.ErrInvalidParams))
14481		}
14482	}
14483
14484	if invalidParams.Len() > 0 {
14485		return invalidParams
14486	}
14487	return nil
14488}
14489
14490// SetAlarmIdentifier sets the AlarmIdentifier field's value.
14491func (s *UpdateHealthCheckInput) SetAlarmIdentifier(v *AlarmIdentifier) *UpdateHealthCheckInput {
14492	s.AlarmIdentifier = v
14493	return s
14494}
14495
14496// SetChildHealthChecks sets the ChildHealthChecks field's value.
14497func (s *UpdateHealthCheckInput) SetChildHealthChecks(v []*string) *UpdateHealthCheckInput {
14498	s.ChildHealthChecks = v
14499	return s
14500}
14501
14502// SetDisabled sets the Disabled field's value.
14503func (s *UpdateHealthCheckInput) SetDisabled(v bool) *UpdateHealthCheckInput {
14504	s.Disabled = &v
14505	return s
14506}
14507
14508// SetEnableSNI sets the EnableSNI field's value.
14509func (s *UpdateHealthCheckInput) SetEnableSNI(v bool) *UpdateHealthCheckInput {
14510	s.EnableSNI = &v
14511	return s
14512}
14513
14514// SetFailureThreshold sets the FailureThreshold field's value.
14515func (s *UpdateHealthCheckInput) SetFailureThreshold(v int64) *UpdateHealthCheckInput {
14516	s.FailureThreshold = &v
14517	return s
14518}
14519
14520// SetFullyQualifiedDomainName sets the FullyQualifiedDomainName field's value.
14521func (s *UpdateHealthCheckInput) SetFullyQualifiedDomainName(v string) *UpdateHealthCheckInput {
14522	s.FullyQualifiedDomainName = &v
14523	return s
14524}
14525
14526// SetHealthCheckId sets the HealthCheckId field's value.
14527func (s *UpdateHealthCheckInput) SetHealthCheckId(v string) *UpdateHealthCheckInput {
14528	s.HealthCheckId = &v
14529	return s
14530}
14531
14532// SetHealthCheckVersion sets the HealthCheckVersion field's value.
14533func (s *UpdateHealthCheckInput) SetHealthCheckVersion(v int64) *UpdateHealthCheckInput {
14534	s.HealthCheckVersion = &v
14535	return s
14536}
14537
14538// SetHealthThreshold sets the HealthThreshold field's value.
14539func (s *UpdateHealthCheckInput) SetHealthThreshold(v int64) *UpdateHealthCheckInput {
14540	s.HealthThreshold = &v
14541	return s
14542}
14543
14544// SetIPAddress sets the IPAddress field's value.
14545func (s *UpdateHealthCheckInput) SetIPAddress(v string) *UpdateHealthCheckInput {
14546	s.IPAddress = &v
14547	return s
14548}
14549
14550// SetInsufficientDataHealthStatus sets the InsufficientDataHealthStatus field's value.
14551func (s *UpdateHealthCheckInput) SetInsufficientDataHealthStatus(v string) *UpdateHealthCheckInput {
14552	s.InsufficientDataHealthStatus = &v
14553	return s
14554}
14555
14556// SetInverted sets the Inverted field's value.
14557func (s *UpdateHealthCheckInput) SetInverted(v bool) *UpdateHealthCheckInput {
14558	s.Inverted = &v
14559	return s
14560}
14561
14562// SetPort sets the Port field's value.
14563func (s *UpdateHealthCheckInput) SetPort(v int64) *UpdateHealthCheckInput {
14564	s.Port = &v
14565	return s
14566}
14567
14568// SetRegions sets the Regions field's value.
14569func (s *UpdateHealthCheckInput) SetRegions(v []*string) *UpdateHealthCheckInput {
14570	s.Regions = v
14571	return s
14572}
14573
14574// SetResetElements sets the ResetElements field's value.
14575func (s *UpdateHealthCheckInput) SetResetElements(v []*string) *UpdateHealthCheckInput {
14576	s.ResetElements = v
14577	return s
14578}
14579
14580// SetResourcePath sets the ResourcePath field's value.
14581func (s *UpdateHealthCheckInput) SetResourcePath(v string) *UpdateHealthCheckInput {
14582	s.ResourcePath = &v
14583	return s
14584}
14585
14586// SetSearchString sets the SearchString field's value.
14587func (s *UpdateHealthCheckInput) SetSearchString(v string) *UpdateHealthCheckInput {
14588	s.SearchString = &v
14589	return s
14590}
14591
14592// A complex type that contains the response to the UpdateHealthCheck request.
14593type UpdateHealthCheckOutput struct {
14594	_ struct{} `type:"structure"`
14595
14596	// A complex type that contains the response to an UpdateHealthCheck request.
14597	//
14598	// HealthCheck is a required field
14599	HealthCheck *HealthCheck `type:"structure" required:"true"`
14600}
14601
14602// String returns the string representation
14603func (s UpdateHealthCheckOutput) String() string {
14604	return awsutil.Prettify(s)
14605}
14606
14607// GoString returns the string representation
14608func (s UpdateHealthCheckOutput) GoString() string {
14609	return s.String()
14610}
14611
14612// SetHealthCheck sets the HealthCheck field's value.
14613func (s *UpdateHealthCheckOutput) SetHealthCheck(v *HealthCheck) *UpdateHealthCheckOutput {
14614	s.HealthCheck = v
14615	return s
14616}
14617
14618// A request to update the comment for a hosted zone.
14619type UpdateHostedZoneCommentInput struct {
14620	_ struct{} `locationName:"UpdateHostedZoneCommentRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14621
14622	// The new comment for the hosted zone. If you don't specify a value for Comment,
14623	// Amazon Route 53 deletes the existing value of the Comment element, if any.
14624	Comment *string `type:"string"`
14625
14626	// The ID for the hosted zone that you want to update the comment for.
14627	//
14628	// Id is a required field
14629	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
14630}
14631
14632// String returns the string representation
14633func (s UpdateHostedZoneCommentInput) String() string {
14634	return awsutil.Prettify(s)
14635}
14636
14637// GoString returns the string representation
14638func (s UpdateHostedZoneCommentInput) GoString() string {
14639	return s.String()
14640}
14641
14642// Validate inspects the fields of the type to determine if they are valid.
14643func (s *UpdateHostedZoneCommentInput) Validate() error {
14644	invalidParams := request.ErrInvalidParams{Context: "UpdateHostedZoneCommentInput"}
14645	if s.Id == nil {
14646		invalidParams.Add(request.NewErrParamRequired("Id"))
14647	}
14648	if s.Id != nil && len(*s.Id) < 1 {
14649		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14650	}
14651
14652	if invalidParams.Len() > 0 {
14653		return invalidParams
14654	}
14655	return nil
14656}
14657
14658// SetComment sets the Comment field's value.
14659func (s *UpdateHostedZoneCommentInput) SetComment(v string) *UpdateHostedZoneCommentInput {
14660	s.Comment = &v
14661	return s
14662}
14663
14664// SetId sets the Id field's value.
14665func (s *UpdateHostedZoneCommentInput) SetId(v string) *UpdateHostedZoneCommentInput {
14666	s.Id = &v
14667	return s
14668}
14669
14670// A complex type that contains the response to the UpdateHostedZoneComment
14671// request.
14672type UpdateHostedZoneCommentOutput struct {
14673	_ struct{} `type:"structure"`
14674
14675	// A complex type that contains the response to the UpdateHostedZoneComment
14676	// request.
14677	//
14678	// HostedZone is a required field
14679	HostedZone *HostedZone `type:"structure" required:"true"`
14680}
14681
14682// String returns the string representation
14683func (s UpdateHostedZoneCommentOutput) String() string {
14684	return awsutil.Prettify(s)
14685}
14686
14687// GoString returns the string representation
14688func (s UpdateHostedZoneCommentOutput) GoString() string {
14689	return s.String()
14690}
14691
14692// SetHostedZone sets the HostedZone field's value.
14693func (s *UpdateHostedZoneCommentOutput) SetHostedZone(v *HostedZone) *UpdateHostedZoneCommentOutput {
14694	s.HostedZone = v
14695	return s
14696}
14697
14698// A complex type that contains information about the traffic policy that you
14699// want to update the comment for.
14700type UpdateTrafficPolicyCommentInput struct {
14701	_ struct{} `locationName:"UpdateTrafficPolicyCommentRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14702
14703	// The new comment for the specified traffic policy and version.
14704	//
14705	// Comment is a required field
14706	Comment *string `type:"string" required:"true"`
14707
14708	// The value of Id for the traffic policy that you want to update the comment
14709	// for.
14710	//
14711	// Id is a required field
14712	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
14713
14714	// The value of Version for the traffic policy that you want to update the comment
14715	// for.
14716	//
14717	// Version is a required field
14718	Version *int64 `location:"uri" locationName:"Version" min:"1" type:"integer" required:"true"`
14719}
14720
14721// String returns the string representation
14722func (s UpdateTrafficPolicyCommentInput) String() string {
14723	return awsutil.Prettify(s)
14724}
14725
14726// GoString returns the string representation
14727func (s UpdateTrafficPolicyCommentInput) GoString() string {
14728	return s.String()
14729}
14730
14731// Validate inspects the fields of the type to determine if they are valid.
14732func (s *UpdateTrafficPolicyCommentInput) Validate() error {
14733	invalidParams := request.ErrInvalidParams{Context: "UpdateTrafficPolicyCommentInput"}
14734	if s.Comment == nil {
14735		invalidParams.Add(request.NewErrParamRequired("Comment"))
14736	}
14737	if s.Id == nil {
14738		invalidParams.Add(request.NewErrParamRequired("Id"))
14739	}
14740	if s.Id != nil && len(*s.Id) < 1 {
14741		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14742	}
14743	if s.Version == nil {
14744		invalidParams.Add(request.NewErrParamRequired("Version"))
14745	}
14746	if s.Version != nil && *s.Version < 1 {
14747		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
14748	}
14749
14750	if invalidParams.Len() > 0 {
14751		return invalidParams
14752	}
14753	return nil
14754}
14755
14756// SetComment sets the Comment field's value.
14757func (s *UpdateTrafficPolicyCommentInput) SetComment(v string) *UpdateTrafficPolicyCommentInput {
14758	s.Comment = &v
14759	return s
14760}
14761
14762// SetId sets the Id field's value.
14763func (s *UpdateTrafficPolicyCommentInput) SetId(v string) *UpdateTrafficPolicyCommentInput {
14764	s.Id = &v
14765	return s
14766}
14767
14768// SetVersion sets the Version field's value.
14769func (s *UpdateTrafficPolicyCommentInput) SetVersion(v int64) *UpdateTrafficPolicyCommentInput {
14770	s.Version = &v
14771	return s
14772}
14773
14774// A complex type that contains the response information for the traffic policy.
14775type UpdateTrafficPolicyCommentOutput struct {
14776	_ struct{} `type:"structure"`
14777
14778	// A complex type that contains settings for the specified traffic policy.
14779	//
14780	// TrafficPolicy is a required field
14781	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
14782}
14783
14784// String returns the string representation
14785func (s UpdateTrafficPolicyCommentOutput) String() string {
14786	return awsutil.Prettify(s)
14787}
14788
14789// GoString returns the string representation
14790func (s UpdateTrafficPolicyCommentOutput) GoString() string {
14791	return s.String()
14792}
14793
14794// SetTrafficPolicy sets the TrafficPolicy field's value.
14795func (s *UpdateTrafficPolicyCommentOutput) SetTrafficPolicy(v *TrafficPolicy) *UpdateTrafficPolicyCommentOutput {
14796	s.TrafficPolicy = v
14797	return s
14798}
14799
14800// A complex type that contains information about the resource record sets that
14801// you want to update based on a specified traffic policy instance.
14802type UpdateTrafficPolicyInstanceInput struct {
14803	_ struct{} `locationName:"UpdateTrafficPolicyInstanceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14804
14805	// The ID of the traffic policy instance that you want to update.
14806	//
14807	// Id is a required field
14808	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
14809
14810	// The TTL that you want Amazon Route 53 to assign to all of the updated resource
14811	// record sets.
14812	//
14813	// TTL is a required field
14814	TTL *int64 `type:"long" required:"true"`
14815
14816	// The ID of the traffic policy that you want Amazon Route 53 to use to update
14817	// resource record sets for the specified traffic policy instance.
14818	//
14819	// TrafficPolicyId is a required field
14820	TrafficPolicyId *string `min:"1" type:"string" required:"true"`
14821
14822	// The version of the traffic policy that you want Amazon Route 53 to use to
14823	// update resource record sets for the specified traffic policy instance.
14824	//
14825	// TrafficPolicyVersion is a required field
14826	TrafficPolicyVersion *int64 `min:"1" type:"integer" required:"true"`
14827}
14828
14829// String returns the string representation
14830func (s UpdateTrafficPolicyInstanceInput) String() string {
14831	return awsutil.Prettify(s)
14832}
14833
14834// GoString returns the string representation
14835func (s UpdateTrafficPolicyInstanceInput) GoString() string {
14836	return s.String()
14837}
14838
14839// Validate inspects the fields of the type to determine if they are valid.
14840func (s *UpdateTrafficPolicyInstanceInput) Validate() error {
14841	invalidParams := request.ErrInvalidParams{Context: "UpdateTrafficPolicyInstanceInput"}
14842	if s.Id == nil {
14843		invalidParams.Add(request.NewErrParamRequired("Id"))
14844	}
14845	if s.Id != nil && len(*s.Id) < 1 {
14846		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14847	}
14848	if s.TTL == nil {
14849		invalidParams.Add(request.NewErrParamRequired("TTL"))
14850	}
14851	if s.TrafficPolicyId == nil {
14852		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyId"))
14853	}
14854	if s.TrafficPolicyId != nil && len(*s.TrafficPolicyId) < 1 {
14855		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyId", 1))
14856	}
14857	if s.TrafficPolicyVersion == nil {
14858		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyVersion"))
14859	}
14860	if s.TrafficPolicyVersion != nil && *s.TrafficPolicyVersion < 1 {
14861		invalidParams.Add(request.NewErrParamMinValue("TrafficPolicyVersion", 1))
14862	}
14863
14864	if invalidParams.Len() > 0 {
14865		return invalidParams
14866	}
14867	return nil
14868}
14869
14870// SetId sets the Id field's value.
14871func (s *UpdateTrafficPolicyInstanceInput) SetId(v string) *UpdateTrafficPolicyInstanceInput {
14872	s.Id = &v
14873	return s
14874}
14875
14876// SetTTL sets the TTL field's value.
14877func (s *UpdateTrafficPolicyInstanceInput) SetTTL(v int64) *UpdateTrafficPolicyInstanceInput {
14878	s.TTL = &v
14879	return s
14880}
14881
14882// SetTrafficPolicyId sets the TrafficPolicyId field's value.
14883func (s *UpdateTrafficPolicyInstanceInput) SetTrafficPolicyId(v string) *UpdateTrafficPolicyInstanceInput {
14884	s.TrafficPolicyId = &v
14885	return s
14886}
14887
14888// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
14889func (s *UpdateTrafficPolicyInstanceInput) SetTrafficPolicyVersion(v int64) *UpdateTrafficPolicyInstanceInput {
14890	s.TrafficPolicyVersion = &v
14891	return s
14892}
14893
14894// A complex type that contains information about the resource record sets that
14895// Amazon Route 53 created based on a specified traffic policy.
14896type UpdateTrafficPolicyInstanceOutput struct {
14897	_ struct{} `type:"structure"`
14898
14899	// A complex type that contains settings for the updated traffic policy instance.
14900	//
14901	// TrafficPolicyInstance is a required field
14902	TrafficPolicyInstance *TrafficPolicyInstance `type:"structure" required:"true"`
14903}
14904
14905// String returns the string representation
14906func (s UpdateTrafficPolicyInstanceOutput) String() string {
14907	return awsutil.Prettify(s)
14908}
14909
14910// GoString returns the string representation
14911func (s UpdateTrafficPolicyInstanceOutput) GoString() string {
14912	return s.String()
14913}
14914
14915// SetTrafficPolicyInstance sets the TrafficPolicyInstance field's value.
14916func (s *UpdateTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPolicyInstance) *UpdateTrafficPolicyInstanceOutput {
14917	s.TrafficPolicyInstance = v
14918	return s
14919}
14920
14921// (Private hosted zones only) A complex type that contains information about
14922// an Amazon VPC.
14923type VPC struct {
14924	_ struct{} `type:"structure"`
14925
14926	// (Private hosted zones only) The ID of an Amazon VPC.
14927	VPCId *string `type:"string"`
14928
14929	// (Private hosted zones only) The region that an Amazon VPC was created in.
14930	VPCRegion *string `min:"1" type:"string" enum:"VPCRegion"`
14931}
14932
14933// String returns the string representation
14934func (s VPC) String() string {
14935	return awsutil.Prettify(s)
14936}
14937
14938// GoString returns the string representation
14939func (s VPC) GoString() string {
14940	return s.String()
14941}
14942
14943// Validate inspects the fields of the type to determine if they are valid.
14944func (s *VPC) Validate() error {
14945	invalidParams := request.ErrInvalidParams{Context: "VPC"}
14946	if s.VPCRegion != nil && len(*s.VPCRegion) < 1 {
14947		invalidParams.Add(request.NewErrParamMinLen("VPCRegion", 1))
14948	}
14949
14950	if invalidParams.Len() > 0 {
14951		return invalidParams
14952	}
14953	return nil
14954}
14955
14956// SetVPCId sets the VPCId field's value.
14957func (s *VPC) SetVPCId(v string) *VPC {
14958	s.VPCId = &v
14959	return s
14960}
14961
14962// SetVPCRegion sets the VPCRegion field's value.
14963func (s *VPC) SetVPCRegion(v string) *VPC {
14964	s.VPCRegion = &v
14965	return s
14966}
14967
14968const (
14969	// AccountLimitTypeMaxHealthChecksByOwner is a AccountLimitType enum value
14970	AccountLimitTypeMaxHealthChecksByOwner = "MAX_HEALTH_CHECKS_BY_OWNER"
14971
14972	// AccountLimitTypeMaxHostedZonesByOwner is a AccountLimitType enum value
14973	AccountLimitTypeMaxHostedZonesByOwner = "MAX_HOSTED_ZONES_BY_OWNER"
14974
14975	// AccountLimitTypeMaxTrafficPolicyInstancesByOwner is a AccountLimitType enum value
14976	AccountLimitTypeMaxTrafficPolicyInstancesByOwner = "MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER"
14977
14978	// AccountLimitTypeMaxReusableDelegationSetsByOwner is a AccountLimitType enum value
14979	AccountLimitTypeMaxReusableDelegationSetsByOwner = "MAX_REUSABLE_DELEGATION_SETS_BY_OWNER"
14980
14981	// AccountLimitTypeMaxTrafficPoliciesByOwner is a AccountLimitType enum value
14982	AccountLimitTypeMaxTrafficPoliciesByOwner = "MAX_TRAFFIC_POLICIES_BY_OWNER"
14983)
14984
14985const (
14986	// ChangeActionCreate is a ChangeAction enum value
14987	ChangeActionCreate = "CREATE"
14988
14989	// ChangeActionDelete is a ChangeAction enum value
14990	ChangeActionDelete = "DELETE"
14991
14992	// ChangeActionUpsert is a ChangeAction enum value
14993	ChangeActionUpsert = "UPSERT"
14994)
14995
14996const (
14997	// ChangeStatusPending is a ChangeStatus enum value
14998	ChangeStatusPending = "PENDING"
14999
15000	// ChangeStatusInsync is a ChangeStatus enum value
15001	ChangeStatusInsync = "INSYNC"
15002)
15003
15004const (
15005	// CloudWatchRegionUsEast1 is a CloudWatchRegion enum value
15006	CloudWatchRegionUsEast1 = "us-east-1"
15007
15008	// CloudWatchRegionUsEast2 is a CloudWatchRegion enum value
15009	CloudWatchRegionUsEast2 = "us-east-2"
15010
15011	// CloudWatchRegionUsWest1 is a CloudWatchRegion enum value
15012	CloudWatchRegionUsWest1 = "us-west-1"
15013
15014	// CloudWatchRegionUsWest2 is a CloudWatchRegion enum value
15015	CloudWatchRegionUsWest2 = "us-west-2"
15016
15017	// CloudWatchRegionCaCentral1 is a CloudWatchRegion enum value
15018	CloudWatchRegionCaCentral1 = "ca-central-1"
15019
15020	// CloudWatchRegionEuCentral1 is a CloudWatchRegion enum value
15021	CloudWatchRegionEuCentral1 = "eu-central-1"
15022
15023	// CloudWatchRegionEuWest1 is a CloudWatchRegion enum value
15024	CloudWatchRegionEuWest1 = "eu-west-1"
15025
15026	// CloudWatchRegionEuWest2 is a CloudWatchRegion enum value
15027	CloudWatchRegionEuWest2 = "eu-west-2"
15028
15029	// CloudWatchRegionEuWest3 is a CloudWatchRegion enum value
15030	CloudWatchRegionEuWest3 = "eu-west-3"
15031
15032	// CloudWatchRegionApEast1 is a CloudWatchRegion enum value
15033	CloudWatchRegionApEast1 = "ap-east-1"
15034
15035	// CloudWatchRegionMeSouth1 is a CloudWatchRegion enum value
15036	CloudWatchRegionMeSouth1 = "me-south-1"
15037
15038	// CloudWatchRegionApSouth1 is a CloudWatchRegion enum value
15039	CloudWatchRegionApSouth1 = "ap-south-1"
15040
15041	// CloudWatchRegionApSoutheast1 is a CloudWatchRegion enum value
15042	CloudWatchRegionApSoutheast1 = "ap-southeast-1"
15043
15044	// CloudWatchRegionApSoutheast2 is a CloudWatchRegion enum value
15045	CloudWatchRegionApSoutheast2 = "ap-southeast-2"
15046
15047	// CloudWatchRegionApNortheast1 is a CloudWatchRegion enum value
15048	CloudWatchRegionApNortheast1 = "ap-northeast-1"
15049
15050	// CloudWatchRegionApNortheast2 is a CloudWatchRegion enum value
15051	CloudWatchRegionApNortheast2 = "ap-northeast-2"
15052
15053	// CloudWatchRegionApNortheast3 is a CloudWatchRegion enum value
15054	CloudWatchRegionApNortheast3 = "ap-northeast-3"
15055
15056	// CloudWatchRegionEuNorth1 is a CloudWatchRegion enum value
15057	CloudWatchRegionEuNorth1 = "eu-north-1"
15058
15059	// CloudWatchRegionSaEast1 is a CloudWatchRegion enum value
15060	CloudWatchRegionSaEast1 = "sa-east-1"
15061
15062	// CloudWatchRegionCnNorthwest1 is a CloudWatchRegion enum value
15063	CloudWatchRegionCnNorthwest1 = "cn-northwest-1"
15064
15065	// CloudWatchRegionCnNorth1 is a CloudWatchRegion enum value
15066	CloudWatchRegionCnNorth1 = "cn-north-1"
15067)
15068
15069const (
15070	// ComparisonOperatorGreaterThanOrEqualToThreshold is a ComparisonOperator enum value
15071	ComparisonOperatorGreaterThanOrEqualToThreshold = "GreaterThanOrEqualToThreshold"
15072
15073	// ComparisonOperatorGreaterThanThreshold is a ComparisonOperator enum value
15074	ComparisonOperatorGreaterThanThreshold = "GreaterThanThreshold"
15075
15076	// ComparisonOperatorLessThanThreshold is a ComparisonOperator enum value
15077	ComparisonOperatorLessThanThreshold = "LessThanThreshold"
15078
15079	// ComparisonOperatorLessThanOrEqualToThreshold is a ComparisonOperator enum value
15080	ComparisonOperatorLessThanOrEqualToThreshold = "LessThanOrEqualToThreshold"
15081)
15082
15083const (
15084	// HealthCheckRegionUsEast1 is a HealthCheckRegion enum value
15085	HealthCheckRegionUsEast1 = "us-east-1"
15086
15087	// HealthCheckRegionUsWest1 is a HealthCheckRegion enum value
15088	HealthCheckRegionUsWest1 = "us-west-1"
15089
15090	// HealthCheckRegionUsWest2 is a HealthCheckRegion enum value
15091	HealthCheckRegionUsWest2 = "us-west-2"
15092
15093	// HealthCheckRegionEuWest1 is a HealthCheckRegion enum value
15094	HealthCheckRegionEuWest1 = "eu-west-1"
15095
15096	// HealthCheckRegionApSoutheast1 is a HealthCheckRegion enum value
15097	HealthCheckRegionApSoutheast1 = "ap-southeast-1"
15098
15099	// HealthCheckRegionApSoutheast2 is a HealthCheckRegion enum value
15100	HealthCheckRegionApSoutheast2 = "ap-southeast-2"
15101
15102	// HealthCheckRegionApNortheast1 is a HealthCheckRegion enum value
15103	HealthCheckRegionApNortheast1 = "ap-northeast-1"
15104
15105	// HealthCheckRegionSaEast1 is a HealthCheckRegion enum value
15106	HealthCheckRegionSaEast1 = "sa-east-1"
15107)
15108
15109const (
15110	// HealthCheckTypeHttp is a HealthCheckType enum value
15111	HealthCheckTypeHttp = "HTTP"
15112
15113	// HealthCheckTypeHttps is a HealthCheckType enum value
15114	HealthCheckTypeHttps = "HTTPS"
15115
15116	// HealthCheckTypeHttpStrMatch is a HealthCheckType enum value
15117	HealthCheckTypeHttpStrMatch = "HTTP_STR_MATCH"
15118
15119	// HealthCheckTypeHttpsStrMatch is a HealthCheckType enum value
15120	HealthCheckTypeHttpsStrMatch = "HTTPS_STR_MATCH"
15121
15122	// HealthCheckTypeTcp is a HealthCheckType enum value
15123	HealthCheckTypeTcp = "TCP"
15124
15125	// HealthCheckTypeCalculated is a HealthCheckType enum value
15126	HealthCheckTypeCalculated = "CALCULATED"
15127
15128	// HealthCheckTypeCloudwatchMetric is a HealthCheckType enum value
15129	HealthCheckTypeCloudwatchMetric = "CLOUDWATCH_METRIC"
15130)
15131
15132const (
15133	// HostedZoneLimitTypeMaxRrsetsByZone is a HostedZoneLimitType enum value
15134	HostedZoneLimitTypeMaxRrsetsByZone = "MAX_RRSETS_BY_ZONE"
15135
15136	// HostedZoneLimitTypeMaxVpcsAssociatedByZone is a HostedZoneLimitType enum value
15137	HostedZoneLimitTypeMaxVpcsAssociatedByZone = "MAX_VPCS_ASSOCIATED_BY_ZONE"
15138)
15139
15140const (
15141	// InsufficientDataHealthStatusHealthy is a InsufficientDataHealthStatus enum value
15142	InsufficientDataHealthStatusHealthy = "Healthy"
15143
15144	// InsufficientDataHealthStatusUnhealthy is a InsufficientDataHealthStatus enum value
15145	InsufficientDataHealthStatusUnhealthy = "Unhealthy"
15146
15147	// InsufficientDataHealthStatusLastKnownStatus is a InsufficientDataHealthStatus enum value
15148	InsufficientDataHealthStatusLastKnownStatus = "LastKnownStatus"
15149)
15150
15151const (
15152	// RRTypeSoa is a RRType enum value
15153	RRTypeSoa = "SOA"
15154
15155	// RRTypeA is a RRType enum value
15156	RRTypeA = "A"
15157
15158	// RRTypeTxt is a RRType enum value
15159	RRTypeTxt = "TXT"
15160
15161	// RRTypeNs is a RRType enum value
15162	RRTypeNs = "NS"
15163
15164	// RRTypeCname is a RRType enum value
15165	RRTypeCname = "CNAME"
15166
15167	// RRTypeMx is a RRType enum value
15168	RRTypeMx = "MX"
15169
15170	// RRTypeNaptr is a RRType enum value
15171	RRTypeNaptr = "NAPTR"
15172
15173	// RRTypePtr is a RRType enum value
15174	RRTypePtr = "PTR"
15175
15176	// RRTypeSrv is a RRType enum value
15177	RRTypeSrv = "SRV"
15178
15179	// RRTypeSpf is a RRType enum value
15180	RRTypeSpf = "SPF"
15181
15182	// RRTypeAaaa is a RRType enum value
15183	RRTypeAaaa = "AAAA"
15184
15185	// RRTypeCaa is a RRType enum value
15186	RRTypeCaa = "CAA"
15187)
15188
15189const (
15190	// ResettableElementNameFullyQualifiedDomainName is a ResettableElementName enum value
15191	ResettableElementNameFullyQualifiedDomainName = "FullyQualifiedDomainName"
15192
15193	// ResettableElementNameRegions is a ResettableElementName enum value
15194	ResettableElementNameRegions = "Regions"
15195
15196	// ResettableElementNameResourcePath is a ResettableElementName enum value
15197	ResettableElementNameResourcePath = "ResourcePath"
15198
15199	// ResettableElementNameChildHealthChecks is a ResettableElementName enum value
15200	ResettableElementNameChildHealthChecks = "ChildHealthChecks"
15201)
15202
15203const (
15204	// ResourceRecordSetFailoverPrimary is a ResourceRecordSetFailover enum value
15205	ResourceRecordSetFailoverPrimary = "PRIMARY"
15206
15207	// ResourceRecordSetFailoverSecondary is a ResourceRecordSetFailover enum value
15208	ResourceRecordSetFailoverSecondary = "SECONDARY"
15209)
15210
15211const (
15212	// ResourceRecordSetRegionUsEast1 is a ResourceRecordSetRegion enum value
15213	ResourceRecordSetRegionUsEast1 = "us-east-1"
15214
15215	// ResourceRecordSetRegionUsEast2 is a ResourceRecordSetRegion enum value
15216	ResourceRecordSetRegionUsEast2 = "us-east-2"
15217
15218	// ResourceRecordSetRegionUsWest1 is a ResourceRecordSetRegion enum value
15219	ResourceRecordSetRegionUsWest1 = "us-west-1"
15220
15221	// ResourceRecordSetRegionUsWest2 is a ResourceRecordSetRegion enum value
15222	ResourceRecordSetRegionUsWest2 = "us-west-2"
15223
15224	// ResourceRecordSetRegionCaCentral1 is a ResourceRecordSetRegion enum value
15225	ResourceRecordSetRegionCaCentral1 = "ca-central-1"
15226
15227	// ResourceRecordSetRegionEuWest1 is a ResourceRecordSetRegion enum value
15228	ResourceRecordSetRegionEuWest1 = "eu-west-1"
15229
15230	// ResourceRecordSetRegionEuWest2 is a ResourceRecordSetRegion enum value
15231	ResourceRecordSetRegionEuWest2 = "eu-west-2"
15232
15233	// ResourceRecordSetRegionEuWest3 is a ResourceRecordSetRegion enum value
15234	ResourceRecordSetRegionEuWest3 = "eu-west-3"
15235
15236	// ResourceRecordSetRegionEuCentral1 is a ResourceRecordSetRegion enum value
15237	ResourceRecordSetRegionEuCentral1 = "eu-central-1"
15238
15239	// ResourceRecordSetRegionApSoutheast1 is a ResourceRecordSetRegion enum value
15240	ResourceRecordSetRegionApSoutheast1 = "ap-southeast-1"
15241
15242	// ResourceRecordSetRegionApSoutheast2 is a ResourceRecordSetRegion enum value
15243	ResourceRecordSetRegionApSoutheast2 = "ap-southeast-2"
15244
15245	// ResourceRecordSetRegionApNortheast1 is a ResourceRecordSetRegion enum value
15246	ResourceRecordSetRegionApNortheast1 = "ap-northeast-1"
15247
15248	// ResourceRecordSetRegionApNortheast2 is a ResourceRecordSetRegion enum value
15249	ResourceRecordSetRegionApNortheast2 = "ap-northeast-2"
15250
15251	// ResourceRecordSetRegionApNortheast3 is a ResourceRecordSetRegion enum value
15252	ResourceRecordSetRegionApNortheast3 = "ap-northeast-3"
15253
15254	// ResourceRecordSetRegionEuNorth1 is a ResourceRecordSetRegion enum value
15255	ResourceRecordSetRegionEuNorth1 = "eu-north-1"
15256
15257	// ResourceRecordSetRegionSaEast1 is a ResourceRecordSetRegion enum value
15258	ResourceRecordSetRegionSaEast1 = "sa-east-1"
15259
15260	// ResourceRecordSetRegionCnNorth1 is a ResourceRecordSetRegion enum value
15261	ResourceRecordSetRegionCnNorth1 = "cn-north-1"
15262
15263	// ResourceRecordSetRegionCnNorthwest1 is a ResourceRecordSetRegion enum value
15264	ResourceRecordSetRegionCnNorthwest1 = "cn-northwest-1"
15265
15266	// ResourceRecordSetRegionApEast1 is a ResourceRecordSetRegion enum value
15267	ResourceRecordSetRegionApEast1 = "ap-east-1"
15268
15269	// ResourceRecordSetRegionMeSouth1 is a ResourceRecordSetRegion enum value
15270	ResourceRecordSetRegionMeSouth1 = "me-south-1"
15271
15272	// ResourceRecordSetRegionApSouth1 is a ResourceRecordSetRegion enum value
15273	ResourceRecordSetRegionApSouth1 = "ap-south-1"
15274)
15275
15276const (
15277	// ReusableDelegationSetLimitTypeMaxZonesByReusableDelegationSet is a ReusableDelegationSetLimitType enum value
15278	ReusableDelegationSetLimitTypeMaxZonesByReusableDelegationSet = "MAX_ZONES_BY_REUSABLE_DELEGATION_SET"
15279)
15280
15281const (
15282	// StatisticAverage is a Statistic enum value
15283	StatisticAverage = "Average"
15284
15285	// StatisticSum is a Statistic enum value
15286	StatisticSum = "Sum"
15287
15288	// StatisticSampleCount is a Statistic enum value
15289	StatisticSampleCount = "SampleCount"
15290
15291	// StatisticMaximum is a Statistic enum value
15292	StatisticMaximum = "Maximum"
15293
15294	// StatisticMinimum is a Statistic enum value
15295	StatisticMinimum = "Minimum"
15296)
15297
15298const (
15299	// TagResourceTypeHealthcheck is a TagResourceType enum value
15300	TagResourceTypeHealthcheck = "healthcheck"
15301
15302	// TagResourceTypeHostedzone is a TagResourceType enum value
15303	TagResourceTypeHostedzone = "hostedzone"
15304)
15305
15306const (
15307	// VPCRegionUsEast1 is a VPCRegion enum value
15308	VPCRegionUsEast1 = "us-east-1"
15309
15310	// VPCRegionUsEast2 is a VPCRegion enum value
15311	VPCRegionUsEast2 = "us-east-2"
15312
15313	// VPCRegionUsWest1 is a VPCRegion enum value
15314	VPCRegionUsWest1 = "us-west-1"
15315
15316	// VPCRegionUsWest2 is a VPCRegion enum value
15317	VPCRegionUsWest2 = "us-west-2"
15318
15319	// VPCRegionEuWest1 is a VPCRegion enum value
15320	VPCRegionEuWest1 = "eu-west-1"
15321
15322	// VPCRegionEuWest2 is a VPCRegion enum value
15323	VPCRegionEuWest2 = "eu-west-2"
15324
15325	// VPCRegionEuWest3 is a VPCRegion enum value
15326	VPCRegionEuWest3 = "eu-west-3"
15327
15328	// VPCRegionEuCentral1 is a VPCRegion enum value
15329	VPCRegionEuCentral1 = "eu-central-1"
15330
15331	// VPCRegionApEast1 is a VPCRegion enum value
15332	VPCRegionApEast1 = "ap-east-1"
15333
15334	// VPCRegionMeSouth1 is a VPCRegion enum value
15335	VPCRegionMeSouth1 = "me-south-1"
15336
15337	// VPCRegionApSoutheast1 is a VPCRegion enum value
15338	VPCRegionApSoutheast1 = "ap-southeast-1"
15339
15340	// VPCRegionApSoutheast2 is a VPCRegion enum value
15341	VPCRegionApSoutheast2 = "ap-southeast-2"
15342
15343	// VPCRegionApSouth1 is a VPCRegion enum value
15344	VPCRegionApSouth1 = "ap-south-1"
15345
15346	// VPCRegionApNortheast1 is a VPCRegion enum value
15347	VPCRegionApNortheast1 = "ap-northeast-1"
15348
15349	// VPCRegionApNortheast2 is a VPCRegion enum value
15350	VPCRegionApNortheast2 = "ap-northeast-2"
15351
15352	// VPCRegionApNortheast3 is a VPCRegion enum value
15353	VPCRegionApNortheast3 = "ap-northeast-3"
15354
15355	// VPCRegionEuNorth1 is a VPCRegion enum value
15356	VPCRegionEuNorth1 = "eu-north-1"
15357
15358	// VPCRegionSaEast1 is a VPCRegion enum value
15359	VPCRegionSaEast1 = "sa-east-1"
15360
15361	// VPCRegionCaCentral1 is a VPCRegion enum value
15362	VPCRegionCaCentral1 = "ca-central-1"
15363
15364	// VPCRegionCnNorth1 is a VPCRegion enum value
15365	VPCRegionCnNorth1 = "cn-north-1"
15366)
15367