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	cont := true
3987	for p.Next() && cont {
3988		cont = fn(p.Page().(*ListHealthChecksOutput), !p.HasNextPage())
3989	}
3990	return p.Err()
3991}
3992
3993const opListHostedZones = "ListHostedZones"
3994
3995// ListHostedZonesRequest generates a "aws/request.Request" representing the
3996// client's request for the ListHostedZones operation. The "output" return
3997// value will be populated with the request's response once the request completes
3998// successfully.
3999//
4000// Use "Send" method on the returned Request to send the API call to the service.
4001// the "output" return value is not valid until after Send returns without error.
4002//
4003// See ListHostedZones for more information on using the ListHostedZones
4004// API call, and error handling.
4005//
4006// This method is useful when you want to inject custom logic or configuration
4007// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4008//
4009//
4010//    // Example sending a request using the ListHostedZonesRequest method.
4011//    req, resp := client.ListHostedZonesRequest(params)
4012//
4013//    err := req.Send()
4014//    if err == nil { // resp is now filled
4015//        fmt.Println(resp)
4016//    }
4017//
4018// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones
4019func (c *Route53) ListHostedZonesRequest(input *ListHostedZonesInput) (req *request.Request, output *ListHostedZonesOutput) {
4020	op := &request.Operation{
4021		Name:       opListHostedZones,
4022		HTTPMethod: "GET",
4023		HTTPPath:   "/2013-04-01/hostedzone",
4024		Paginator: &request.Paginator{
4025			InputTokens:     []string{"Marker"},
4026			OutputTokens:    []string{"NextMarker"},
4027			LimitToken:      "MaxItems",
4028			TruncationToken: "IsTruncated",
4029		},
4030	}
4031
4032	if input == nil {
4033		input = &ListHostedZonesInput{}
4034	}
4035
4036	output = &ListHostedZonesOutput{}
4037	req = c.newRequest(op, input, output)
4038	return
4039}
4040
4041// ListHostedZones API operation for Amazon Route 53.
4042//
4043// Retrieves a list of the public and private hosted zones that are associated
4044// with the current AWS account. The response includes a HostedZones child element
4045// for each hosted zone.
4046//
4047// Amazon Route 53 returns a maximum of 100 items in each response. If you have
4048// a lot of hosted zones, you can use the maxitems parameter to list them in
4049// groups of up to 100.
4050//
4051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4052// with awserr.Error's Code and Message methods to get detailed information about
4053// the error.
4054//
4055// See the AWS API reference guide for Amazon Route 53's
4056// API operation ListHostedZones for usage and error information.
4057//
4058// Returned Error Codes:
4059//   * ErrCodeInvalidInput "InvalidInput"
4060//   The input is not valid.
4061//
4062//   * ErrCodeNoSuchDelegationSet "NoSuchDelegationSet"
4063//   A reusable delegation set with the specified ID does not exist.
4064//
4065//   * ErrCodeDelegationSetNotReusable "DelegationSetNotReusable"
4066//   A reusable delegation set with the specified ID does not exist.
4067//
4068// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZones
4069func (c *Route53) ListHostedZones(input *ListHostedZonesInput) (*ListHostedZonesOutput, error) {
4070	req, out := c.ListHostedZonesRequest(input)
4071	return out, req.Send()
4072}
4073
4074// ListHostedZonesWithContext is the same as ListHostedZones with the addition of
4075// the ability to pass a context and additional request options.
4076//
4077// See ListHostedZones for details on how to use this API operation.
4078//
4079// The context must be non-nil and will be used for request cancellation. If
4080// the context is nil a panic will occur. In the future the SDK may create
4081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4082// for more information on using Contexts.
4083func (c *Route53) ListHostedZonesWithContext(ctx aws.Context, input *ListHostedZonesInput, opts ...request.Option) (*ListHostedZonesOutput, error) {
4084	req, out := c.ListHostedZonesRequest(input)
4085	req.SetContext(ctx)
4086	req.ApplyOptions(opts...)
4087	return out, req.Send()
4088}
4089
4090// ListHostedZonesPages iterates over the pages of a ListHostedZones operation,
4091// calling the "fn" function with the response data for each page. To stop
4092// iterating, return false from the fn function.
4093//
4094// See ListHostedZones method for more information on how to use this operation.
4095//
4096// Note: This operation can generate multiple requests to a service.
4097//
4098//    // Example iterating over at most 3 pages of a ListHostedZones operation.
4099//    pageNum := 0
4100//    err := client.ListHostedZonesPages(params,
4101//        func(page *route53.ListHostedZonesOutput, lastPage bool) bool {
4102//            pageNum++
4103//            fmt.Println(page)
4104//            return pageNum <= 3
4105//        })
4106//
4107func (c *Route53) ListHostedZonesPages(input *ListHostedZonesInput, fn func(*ListHostedZonesOutput, bool) bool) error {
4108	return c.ListHostedZonesPagesWithContext(aws.BackgroundContext(), input, fn)
4109}
4110
4111// ListHostedZonesPagesWithContext same as ListHostedZonesPages except
4112// it takes a Context and allows setting request options on the pages.
4113//
4114// The context must be non-nil and will be used for request cancellation. If
4115// the context is nil a panic will occur. In the future the SDK may create
4116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4117// for more information on using Contexts.
4118func (c *Route53) ListHostedZonesPagesWithContext(ctx aws.Context, input *ListHostedZonesInput, fn func(*ListHostedZonesOutput, bool) bool, opts ...request.Option) error {
4119	p := request.Pagination{
4120		NewRequest: func() (*request.Request, error) {
4121			var inCpy *ListHostedZonesInput
4122			if input != nil {
4123				tmp := *input
4124				inCpy = &tmp
4125			}
4126			req, _ := c.ListHostedZonesRequest(inCpy)
4127			req.SetContext(ctx)
4128			req.ApplyOptions(opts...)
4129			return req, nil
4130		},
4131	}
4132
4133	cont := true
4134	for p.Next() && cont {
4135		cont = fn(p.Page().(*ListHostedZonesOutput), !p.HasNextPage())
4136	}
4137	return p.Err()
4138}
4139
4140const opListHostedZonesByName = "ListHostedZonesByName"
4141
4142// ListHostedZonesByNameRequest generates a "aws/request.Request" representing the
4143// client's request for the ListHostedZonesByName operation. The "output" return
4144// value will be populated with the request's response once the request completes
4145// successfully.
4146//
4147// Use "Send" method on the returned Request to send the API call to the service.
4148// the "output" return value is not valid until after Send returns without error.
4149//
4150// See ListHostedZonesByName for more information on using the ListHostedZonesByName
4151// API call, and error handling.
4152//
4153// This method is useful when you want to inject custom logic or configuration
4154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4155//
4156//
4157//    // Example sending a request using the ListHostedZonesByNameRequest method.
4158//    req, resp := client.ListHostedZonesByNameRequest(params)
4159//
4160//    err := req.Send()
4161//    if err == nil { // resp is now filled
4162//        fmt.Println(resp)
4163//    }
4164//
4165// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName
4166func (c *Route53) ListHostedZonesByNameRequest(input *ListHostedZonesByNameInput) (req *request.Request, output *ListHostedZonesByNameOutput) {
4167	op := &request.Operation{
4168		Name:       opListHostedZonesByName,
4169		HTTPMethod: "GET",
4170		HTTPPath:   "/2013-04-01/hostedzonesbyname",
4171	}
4172
4173	if input == nil {
4174		input = &ListHostedZonesByNameInput{}
4175	}
4176
4177	output = &ListHostedZonesByNameOutput{}
4178	req = c.newRequest(op, input, output)
4179	return
4180}
4181
4182// ListHostedZonesByName API operation for Amazon Route 53.
4183//
4184// Retrieves a list of your hosted zones in lexicographic order. The response
4185// includes a HostedZones child element for each hosted zone created by the
4186// current AWS account.
4187//
4188// ListHostedZonesByName sorts hosted zones by name with the labels reversed.
4189// For example:
4190//
4191// com.example.www.
4192//
4193// Note the trailing dot, which can change the sort order in some circumstances.
4194//
4195// If the domain name includes escape characters or Punycode, ListHostedZonesByName
4196// alphabetizes the domain name using the escaped or Punycoded value, which
4197// is the format that Amazon Route 53 saves in its database. For example, to
4198// create a hosted zone for exämple.com, you specify ex\344mple.com for the
4199// domain name. ListHostedZonesByName alphabetizes it as:
4200//
4201// com.ex\344mple.
4202//
4203// The labels are reversed and alphabetized using the escaped value. For more
4204// information about valid domain name formats, including internationalized
4205// domain names, see DNS Domain Name Format (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html)
4206// in the Amazon Route 53 Developer Guide.
4207//
4208// Route 53 returns up to 100 items in each response. If you have a lot of hosted
4209// zones, use the MaxItems parameter to list them in groups of up to 100. The
4210// response includes values that help navigate from one group of MaxItems hosted
4211// zones to the next:
4212//
4213//    * The DNSName and HostedZoneId elements in the response contain the values,
4214//    if any, specified for the dnsname and hostedzoneid parameters in the request
4215//    that produced the current response.
4216//
4217//    * The MaxItems element in the response contains the value, if any, that
4218//    you specified for the maxitems parameter in the request that produced
4219//    the current response.
4220//
4221//    * If the value of IsTruncated in the response is true, there are more
4222//    hosted zones associated with the current AWS account. If IsTruncated is
4223//    false, this response includes the last hosted zone that is associated
4224//    with the current account. The NextDNSName element and NextHostedZoneId
4225//    elements are omitted from the response.
4226//
4227//    * The NextDNSName and NextHostedZoneId elements in the response contain
4228//    the domain name and the hosted zone ID of the next hosted zone that is
4229//    associated with the current AWS account. If you want to list more hosted
4230//    zones, make another call to ListHostedZonesByName, and specify the value
4231//    of NextDNSName and NextHostedZoneId in the dnsname and hostedzoneid parameters,
4232//    respectively.
4233//
4234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4235// with awserr.Error's Code and Message methods to get detailed information about
4236// the error.
4237//
4238// See the AWS API reference guide for Amazon Route 53's
4239// API operation ListHostedZonesByName for usage and error information.
4240//
4241// Returned Error Codes:
4242//   * ErrCodeInvalidInput "InvalidInput"
4243//   The input is not valid.
4244//
4245//   * ErrCodeInvalidDomainName "InvalidDomainName"
4246//   The specified domain name is not valid.
4247//
4248// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByName
4249func (c *Route53) ListHostedZonesByName(input *ListHostedZonesByNameInput) (*ListHostedZonesByNameOutput, error) {
4250	req, out := c.ListHostedZonesByNameRequest(input)
4251	return out, req.Send()
4252}
4253
4254// ListHostedZonesByNameWithContext is the same as ListHostedZonesByName with the addition of
4255// the ability to pass a context and additional request options.
4256//
4257// See ListHostedZonesByName for details on how to use this API operation.
4258//
4259// The context must be non-nil and will be used for request cancellation. If
4260// the context is nil a panic will occur. In the future the SDK may create
4261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4262// for more information on using Contexts.
4263func (c *Route53) ListHostedZonesByNameWithContext(ctx aws.Context, input *ListHostedZonesByNameInput, opts ...request.Option) (*ListHostedZonesByNameOutput, error) {
4264	req, out := c.ListHostedZonesByNameRequest(input)
4265	req.SetContext(ctx)
4266	req.ApplyOptions(opts...)
4267	return out, req.Send()
4268}
4269
4270const opListQueryLoggingConfigs = "ListQueryLoggingConfigs"
4271
4272// ListQueryLoggingConfigsRequest generates a "aws/request.Request" representing the
4273// client's request for the ListQueryLoggingConfigs operation. The "output" return
4274// value will be populated with the request's response once the request completes
4275// successfully.
4276//
4277// Use "Send" method on the returned Request to send the API call to the service.
4278// the "output" return value is not valid until after Send returns without error.
4279//
4280// See ListQueryLoggingConfigs for more information on using the ListQueryLoggingConfigs
4281// API call, and error handling.
4282//
4283// This method is useful when you want to inject custom logic or configuration
4284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4285//
4286//
4287//    // Example sending a request using the ListQueryLoggingConfigsRequest method.
4288//    req, resp := client.ListQueryLoggingConfigsRequest(params)
4289//
4290//    err := req.Send()
4291//    if err == nil { // resp is now filled
4292//        fmt.Println(resp)
4293//    }
4294//
4295// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs
4296func (c *Route53) ListQueryLoggingConfigsRequest(input *ListQueryLoggingConfigsInput) (req *request.Request, output *ListQueryLoggingConfigsOutput) {
4297	op := &request.Operation{
4298		Name:       opListQueryLoggingConfigs,
4299		HTTPMethod: "GET",
4300		HTTPPath:   "/2013-04-01/queryloggingconfig",
4301	}
4302
4303	if input == nil {
4304		input = &ListQueryLoggingConfigsInput{}
4305	}
4306
4307	output = &ListQueryLoggingConfigsOutput{}
4308	req = c.newRequest(op, input, output)
4309	return
4310}
4311
4312// ListQueryLoggingConfigs API operation for Amazon Route 53.
4313//
4314// Lists the configurations for DNS query logging that are associated with the
4315// current AWS account or the configuration that is associated with a specified
4316// hosted zone.
4317//
4318// For more information about DNS query logs, see CreateQueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateQueryLoggingConfig.html).
4319// Additional information, including the format of DNS query logs, appears in
4320// Logging DNS Queries (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html)
4321// in the Amazon Route 53 Developer Guide.
4322//
4323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4324// with awserr.Error's Code and Message methods to get detailed information about
4325// the error.
4326//
4327// See the AWS API reference guide for Amazon Route 53's
4328// API operation ListQueryLoggingConfigs for usage and error information.
4329//
4330// Returned Error Codes:
4331//   * ErrCodeInvalidInput "InvalidInput"
4332//   The input is not valid.
4333//
4334//   * ErrCodeInvalidPaginationToken "InvalidPaginationToken"
4335//   The value that you specified to get the second or subsequent page of results
4336//   is invalid.
4337//
4338//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4339//   No hosted zone exists with the ID that you specified.
4340//
4341// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigs
4342func (c *Route53) ListQueryLoggingConfigs(input *ListQueryLoggingConfigsInput) (*ListQueryLoggingConfigsOutput, error) {
4343	req, out := c.ListQueryLoggingConfigsRequest(input)
4344	return out, req.Send()
4345}
4346
4347// ListQueryLoggingConfigsWithContext is the same as ListQueryLoggingConfigs with the addition of
4348// the ability to pass a context and additional request options.
4349//
4350// See ListQueryLoggingConfigs for details on how to use this API operation.
4351//
4352// The context must be non-nil and will be used for request cancellation. If
4353// the context is nil a panic will occur. In the future the SDK may create
4354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4355// for more information on using Contexts.
4356func (c *Route53) ListQueryLoggingConfigsWithContext(ctx aws.Context, input *ListQueryLoggingConfigsInput, opts ...request.Option) (*ListQueryLoggingConfigsOutput, error) {
4357	req, out := c.ListQueryLoggingConfigsRequest(input)
4358	req.SetContext(ctx)
4359	req.ApplyOptions(opts...)
4360	return out, req.Send()
4361}
4362
4363const opListResourceRecordSets = "ListResourceRecordSets"
4364
4365// ListResourceRecordSetsRequest generates a "aws/request.Request" representing the
4366// client's request for the ListResourceRecordSets operation. The "output" return
4367// value will be populated with the request's response once the request completes
4368// successfully.
4369//
4370// Use "Send" method on the returned Request to send the API call to the service.
4371// the "output" return value is not valid until after Send returns without error.
4372//
4373// See ListResourceRecordSets for more information on using the ListResourceRecordSets
4374// API call, and error handling.
4375//
4376// This method is useful when you want to inject custom logic or configuration
4377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4378//
4379//
4380//    // Example sending a request using the ListResourceRecordSetsRequest method.
4381//    req, resp := client.ListResourceRecordSetsRequest(params)
4382//
4383//    err := req.Send()
4384//    if err == nil { // resp is now filled
4385//        fmt.Println(resp)
4386//    }
4387//
4388// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets
4389func (c *Route53) ListResourceRecordSetsRequest(input *ListResourceRecordSetsInput) (req *request.Request, output *ListResourceRecordSetsOutput) {
4390	op := &request.Operation{
4391		Name:       opListResourceRecordSets,
4392		HTTPMethod: "GET",
4393		HTTPPath:   "/2013-04-01/hostedzone/{Id}/rrset",
4394		Paginator: &request.Paginator{
4395			InputTokens:     []string{"StartRecordName", "StartRecordType", "StartRecordIdentifier"},
4396			OutputTokens:    []string{"NextRecordName", "NextRecordType", "NextRecordIdentifier"},
4397			LimitToken:      "MaxItems",
4398			TruncationToken: "IsTruncated",
4399		},
4400	}
4401
4402	if input == nil {
4403		input = &ListResourceRecordSetsInput{}
4404	}
4405
4406	output = &ListResourceRecordSetsOutput{}
4407	req = c.newRequest(op, input, output)
4408	return
4409}
4410
4411// ListResourceRecordSets API operation for Amazon Route 53.
4412//
4413// Lists the resource record sets in a specified hosted zone.
4414//
4415// ListResourceRecordSets returns up to 100 resource record sets at a time in
4416// ASCII order, beginning at a position specified by the name and type elements.
4417//
4418// Sort order
4419//
4420// ListResourceRecordSets sorts results first by DNS name with the labels reversed,
4421// for example:
4422//
4423// com.example.www.
4424//
4425// Note the trailing dot, which can change the sort order when the record name
4426// contains characters that appear before . (decimal 46) in the ASCII table.
4427// These characters include the following: ! " # $ % & ' ( ) * + , -
4428//
4429// When multiple records have the same DNS name, ListResourceRecordSets sorts
4430// results by the record type.
4431//
4432// Specifying where to start listing records
4433//
4434// You can use the name and type elements to specify the resource record set
4435// that the list begins with:
4436//
4437// If you do not specify Name or Type
4438//
4439// The results begin with the first resource record set that the hosted zone
4440// contains.
4441//
4442// If you specify Name but not Type
4443//
4444// The results begin with the first resource record set in the list whose name
4445// is greater than or equal to Name.
4446//
4447// If you specify Type but not Name
4448//
4449// Amazon Route 53 returns the InvalidInput error.
4450//
4451// If you specify both Name and Type
4452//
4453// The results begin with the first resource record set in the list whose name
4454// is greater than or equal to Name, and whose type is greater than or equal
4455// to Type.
4456//
4457// Resource record sets that are PENDING
4458//
4459// This action returns the most current version of the records. This includes
4460// records that are PENDING, and that are not yet available on all Route 53
4461// DNS servers.
4462//
4463// Changing resource record sets
4464//
4465// To ensure that you get an accurate listing of the resource record sets for
4466// a hosted zone at a point in time, do not submit a ChangeResourceRecordSets
4467// request while you're paging through the results of a ListResourceRecordSets
4468// request. If you do, some pages may display results without the latest changes
4469// while other pages display results with the latest changes.
4470//
4471// Displaying the next page of results
4472//
4473// If a ListResourceRecordSets command returns more than one page of results,
4474// the value of IsTruncated is true. To display the next page of results, get
4475// the values of NextRecordName, NextRecordType, and NextRecordIdentifier (if
4476// any) from the response. Then submit another ListResourceRecordSets request,
4477// and specify those values for StartRecordName, StartRecordType, and StartRecordIdentifier.
4478//
4479// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4480// with awserr.Error's Code and Message methods to get detailed information about
4481// the error.
4482//
4483// See the AWS API reference guide for Amazon Route 53's
4484// API operation ListResourceRecordSets for usage and error information.
4485//
4486// Returned Error Codes:
4487//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4488//   No hosted zone exists with the ID that you specified.
4489//
4490//   * ErrCodeInvalidInput "InvalidInput"
4491//   The input is not valid.
4492//
4493// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSets
4494func (c *Route53) ListResourceRecordSets(input *ListResourceRecordSetsInput) (*ListResourceRecordSetsOutput, error) {
4495	req, out := c.ListResourceRecordSetsRequest(input)
4496	return out, req.Send()
4497}
4498
4499// ListResourceRecordSetsWithContext is the same as ListResourceRecordSets with the addition of
4500// the ability to pass a context and additional request options.
4501//
4502// See ListResourceRecordSets for details on how to use this API operation.
4503//
4504// The context must be non-nil and will be used for request cancellation. If
4505// the context is nil a panic will occur. In the future the SDK may create
4506// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4507// for more information on using Contexts.
4508func (c *Route53) ListResourceRecordSetsWithContext(ctx aws.Context, input *ListResourceRecordSetsInput, opts ...request.Option) (*ListResourceRecordSetsOutput, error) {
4509	req, out := c.ListResourceRecordSetsRequest(input)
4510	req.SetContext(ctx)
4511	req.ApplyOptions(opts...)
4512	return out, req.Send()
4513}
4514
4515// ListResourceRecordSetsPages iterates over the pages of a ListResourceRecordSets operation,
4516// calling the "fn" function with the response data for each page. To stop
4517// iterating, return false from the fn function.
4518//
4519// See ListResourceRecordSets method for more information on how to use this operation.
4520//
4521// Note: This operation can generate multiple requests to a service.
4522//
4523//    // Example iterating over at most 3 pages of a ListResourceRecordSets operation.
4524//    pageNum := 0
4525//    err := client.ListResourceRecordSetsPages(params,
4526//        func(page *route53.ListResourceRecordSetsOutput, lastPage bool) bool {
4527//            pageNum++
4528//            fmt.Println(page)
4529//            return pageNum <= 3
4530//        })
4531//
4532func (c *Route53) ListResourceRecordSetsPages(input *ListResourceRecordSetsInput, fn func(*ListResourceRecordSetsOutput, bool) bool) error {
4533	return c.ListResourceRecordSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4534}
4535
4536// ListResourceRecordSetsPagesWithContext same as ListResourceRecordSetsPages except
4537// it takes a Context and allows setting request options on the pages.
4538//
4539// The context must be non-nil and will be used for request cancellation. If
4540// the context is nil a panic will occur. In the future the SDK may create
4541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4542// for more information on using Contexts.
4543func (c *Route53) ListResourceRecordSetsPagesWithContext(ctx aws.Context, input *ListResourceRecordSetsInput, fn func(*ListResourceRecordSetsOutput, bool) bool, opts ...request.Option) error {
4544	p := request.Pagination{
4545		NewRequest: func() (*request.Request, error) {
4546			var inCpy *ListResourceRecordSetsInput
4547			if input != nil {
4548				tmp := *input
4549				inCpy = &tmp
4550			}
4551			req, _ := c.ListResourceRecordSetsRequest(inCpy)
4552			req.SetContext(ctx)
4553			req.ApplyOptions(opts...)
4554			return req, nil
4555		},
4556	}
4557
4558	cont := true
4559	for p.Next() && cont {
4560		cont = fn(p.Page().(*ListResourceRecordSetsOutput), !p.HasNextPage())
4561	}
4562	return p.Err()
4563}
4564
4565const opListReusableDelegationSets = "ListReusableDelegationSets"
4566
4567// ListReusableDelegationSetsRequest generates a "aws/request.Request" representing the
4568// client's request for the ListReusableDelegationSets operation. The "output" return
4569// value will be populated with the request's response once the request completes
4570// successfully.
4571//
4572// Use "Send" method on the returned Request to send the API call to the service.
4573// the "output" return value is not valid until after Send returns without error.
4574//
4575// See ListReusableDelegationSets for more information on using the ListReusableDelegationSets
4576// API call, and error handling.
4577//
4578// This method is useful when you want to inject custom logic or configuration
4579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4580//
4581//
4582//    // Example sending a request using the ListReusableDelegationSetsRequest method.
4583//    req, resp := client.ListReusableDelegationSetsRequest(params)
4584//
4585//    err := req.Send()
4586//    if err == nil { // resp is now filled
4587//        fmt.Println(resp)
4588//    }
4589//
4590// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets
4591func (c *Route53) ListReusableDelegationSetsRequest(input *ListReusableDelegationSetsInput) (req *request.Request, output *ListReusableDelegationSetsOutput) {
4592	op := &request.Operation{
4593		Name:       opListReusableDelegationSets,
4594		HTTPMethod: "GET",
4595		HTTPPath:   "/2013-04-01/delegationset",
4596	}
4597
4598	if input == nil {
4599		input = &ListReusableDelegationSetsInput{}
4600	}
4601
4602	output = &ListReusableDelegationSetsOutput{}
4603	req = c.newRequest(op, input, output)
4604	return
4605}
4606
4607// ListReusableDelegationSets API operation for Amazon Route 53.
4608//
4609// Retrieves a list of the reusable delegation sets that are associated with
4610// the current AWS account.
4611//
4612// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4613// with awserr.Error's Code and Message methods to get detailed information about
4614// the error.
4615//
4616// See the AWS API reference guide for Amazon Route 53's
4617// API operation ListReusableDelegationSets for usage and error information.
4618//
4619// Returned Error Codes:
4620//   * ErrCodeInvalidInput "InvalidInput"
4621//   The input is not valid.
4622//
4623// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSets
4624func (c *Route53) ListReusableDelegationSets(input *ListReusableDelegationSetsInput) (*ListReusableDelegationSetsOutput, error) {
4625	req, out := c.ListReusableDelegationSetsRequest(input)
4626	return out, req.Send()
4627}
4628
4629// ListReusableDelegationSetsWithContext is the same as ListReusableDelegationSets with the addition of
4630// the ability to pass a context and additional request options.
4631//
4632// See ListReusableDelegationSets for details on how to use this API operation.
4633//
4634// The context must be non-nil and will be used for request cancellation. If
4635// the context is nil a panic will occur. In the future the SDK may create
4636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4637// for more information on using Contexts.
4638func (c *Route53) ListReusableDelegationSetsWithContext(ctx aws.Context, input *ListReusableDelegationSetsInput, opts ...request.Option) (*ListReusableDelegationSetsOutput, error) {
4639	req, out := c.ListReusableDelegationSetsRequest(input)
4640	req.SetContext(ctx)
4641	req.ApplyOptions(opts...)
4642	return out, req.Send()
4643}
4644
4645const opListTagsForResource = "ListTagsForResource"
4646
4647// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4648// client's request for the ListTagsForResource operation. The "output" return
4649// value will be populated with the request's response once the request completes
4650// successfully.
4651//
4652// Use "Send" method on the returned Request to send the API call to the service.
4653// the "output" return value is not valid until after Send returns without error.
4654//
4655// See ListTagsForResource for more information on using the ListTagsForResource
4656// API call, and error handling.
4657//
4658// This method is useful when you want to inject custom logic or configuration
4659// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4660//
4661//
4662//    // Example sending a request using the ListTagsForResourceRequest method.
4663//    req, resp := client.ListTagsForResourceRequest(params)
4664//
4665//    err := req.Send()
4666//    if err == nil { // resp is now filled
4667//        fmt.Println(resp)
4668//    }
4669//
4670// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource
4671func (c *Route53) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4672	op := &request.Operation{
4673		Name:       opListTagsForResource,
4674		HTTPMethod: "GET",
4675		HTTPPath:   "/2013-04-01/tags/{ResourceType}/{ResourceId}",
4676	}
4677
4678	if input == nil {
4679		input = &ListTagsForResourceInput{}
4680	}
4681
4682	output = &ListTagsForResourceOutput{}
4683	req = c.newRequest(op, input, output)
4684	return
4685}
4686
4687// ListTagsForResource API operation for Amazon Route 53.
4688//
4689// Lists tags for one health check or hosted zone.
4690//
4691// For information about using tags for cost allocation, see Using Cost Allocation
4692// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
4693// in the AWS Billing and Cost Management User Guide.
4694//
4695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4696// with awserr.Error's Code and Message methods to get detailed information about
4697// the error.
4698//
4699// See the AWS API reference guide for Amazon Route 53's
4700// API operation ListTagsForResource for usage and error information.
4701//
4702// Returned Error Codes:
4703//   * ErrCodeInvalidInput "InvalidInput"
4704//   The input is not valid.
4705//
4706//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
4707//   No health check exists with the specified ID.
4708//
4709//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4710//   No hosted zone exists with the ID that you specified.
4711//
4712//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
4713//   If Amazon Route 53 can't process a request before the next request arrives,
4714//   it will reject subsequent requests for the same hosted zone and return an
4715//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
4716//   the same request, we recommend that you wait, in intervals of increasing
4717//   duration, before you try the request again.
4718//
4719//   * ErrCodeThrottlingException "ThrottlingException"
4720//   The limit on the number of requests per second was exceeded.
4721//
4722// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResource
4723func (c *Route53) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4724	req, out := c.ListTagsForResourceRequest(input)
4725	return out, req.Send()
4726}
4727
4728// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4729// the ability to pass a context and additional request options.
4730//
4731// See ListTagsForResource for details on how to use this API operation.
4732//
4733// The context must be non-nil and will be used for request cancellation. If
4734// the context is nil a panic will occur. In the future the SDK may create
4735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4736// for more information on using Contexts.
4737func (c *Route53) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4738	req, out := c.ListTagsForResourceRequest(input)
4739	req.SetContext(ctx)
4740	req.ApplyOptions(opts...)
4741	return out, req.Send()
4742}
4743
4744const opListTagsForResources = "ListTagsForResources"
4745
4746// ListTagsForResourcesRequest generates a "aws/request.Request" representing the
4747// client's request for the ListTagsForResources operation. The "output" return
4748// value will be populated with the request's response once the request completes
4749// successfully.
4750//
4751// Use "Send" method on the returned Request to send the API call to the service.
4752// the "output" return value is not valid until after Send returns without error.
4753//
4754// See ListTagsForResources for more information on using the ListTagsForResources
4755// API call, and error handling.
4756//
4757// This method is useful when you want to inject custom logic or configuration
4758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4759//
4760//
4761//    // Example sending a request using the ListTagsForResourcesRequest method.
4762//    req, resp := client.ListTagsForResourcesRequest(params)
4763//
4764//    err := req.Send()
4765//    if err == nil { // resp is now filled
4766//        fmt.Println(resp)
4767//    }
4768//
4769// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources
4770func (c *Route53) ListTagsForResourcesRequest(input *ListTagsForResourcesInput) (req *request.Request, output *ListTagsForResourcesOutput) {
4771	op := &request.Operation{
4772		Name:       opListTagsForResources,
4773		HTTPMethod: "POST",
4774		HTTPPath:   "/2013-04-01/tags/{ResourceType}",
4775	}
4776
4777	if input == nil {
4778		input = &ListTagsForResourcesInput{}
4779	}
4780
4781	output = &ListTagsForResourcesOutput{}
4782	req = c.newRequest(op, input, output)
4783	return
4784}
4785
4786// ListTagsForResources API operation for Amazon Route 53.
4787//
4788// Lists tags for up to 10 health checks or hosted zones.
4789//
4790// For information about using tags for cost allocation, see Using Cost Allocation
4791// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
4792// in the AWS Billing and Cost Management User Guide.
4793//
4794// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4795// with awserr.Error's Code and Message methods to get detailed information about
4796// the error.
4797//
4798// See the AWS API reference guide for Amazon Route 53's
4799// API operation ListTagsForResources for usage and error information.
4800//
4801// Returned Error Codes:
4802//   * ErrCodeInvalidInput "InvalidInput"
4803//   The input is not valid.
4804//
4805//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
4806//   No health check exists with the specified ID.
4807//
4808//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
4809//   No hosted zone exists with the ID that you specified.
4810//
4811//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
4812//   If Amazon Route 53 can't process a request before the next request arrives,
4813//   it will reject subsequent requests for the same hosted zone and return an
4814//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
4815//   the same request, we recommend that you wait, in intervals of increasing
4816//   duration, before you try the request again.
4817//
4818//   * ErrCodeThrottlingException "ThrottlingException"
4819//   The limit on the number of requests per second was exceeded.
4820//
4821// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResources
4822func (c *Route53) ListTagsForResources(input *ListTagsForResourcesInput) (*ListTagsForResourcesOutput, error) {
4823	req, out := c.ListTagsForResourcesRequest(input)
4824	return out, req.Send()
4825}
4826
4827// ListTagsForResourcesWithContext is the same as ListTagsForResources with the addition of
4828// the ability to pass a context and additional request options.
4829//
4830// See ListTagsForResources for details on how to use this API operation.
4831//
4832// The context must be non-nil and will be used for request cancellation. If
4833// the context is nil a panic will occur. In the future the SDK may create
4834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4835// for more information on using Contexts.
4836func (c *Route53) ListTagsForResourcesWithContext(ctx aws.Context, input *ListTagsForResourcesInput, opts ...request.Option) (*ListTagsForResourcesOutput, error) {
4837	req, out := c.ListTagsForResourcesRequest(input)
4838	req.SetContext(ctx)
4839	req.ApplyOptions(opts...)
4840	return out, req.Send()
4841}
4842
4843const opListTrafficPolicies = "ListTrafficPolicies"
4844
4845// ListTrafficPoliciesRequest generates a "aws/request.Request" representing the
4846// client's request for the ListTrafficPolicies operation. The "output" return
4847// value will be populated with the request's response once the request completes
4848// successfully.
4849//
4850// Use "Send" method on the returned Request to send the API call to the service.
4851// the "output" return value is not valid until after Send returns without error.
4852//
4853// See ListTrafficPolicies for more information on using the ListTrafficPolicies
4854// API call, and error handling.
4855//
4856// This method is useful when you want to inject custom logic or configuration
4857// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4858//
4859//
4860//    // Example sending a request using the ListTrafficPoliciesRequest method.
4861//    req, resp := client.ListTrafficPoliciesRequest(params)
4862//
4863//    err := req.Send()
4864//    if err == nil { // resp is now filled
4865//        fmt.Println(resp)
4866//    }
4867//
4868// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies
4869func (c *Route53) ListTrafficPoliciesRequest(input *ListTrafficPoliciesInput) (req *request.Request, output *ListTrafficPoliciesOutput) {
4870	op := &request.Operation{
4871		Name:       opListTrafficPolicies,
4872		HTTPMethod: "GET",
4873		HTTPPath:   "/2013-04-01/trafficpolicies",
4874	}
4875
4876	if input == nil {
4877		input = &ListTrafficPoliciesInput{}
4878	}
4879
4880	output = &ListTrafficPoliciesOutput{}
4881	req = c.newRequest(op, input, output)
4882	return
4883}
4884
4885// ListTrafficPolicies API operation for Amazon Route 53.
4886//
4887// Gets information about the latest version for every traffic policy that is
4888// associated with the current AWS account. Policies are listed in the order
4889// that they were created in.
4890//
4891// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4892// with awserr.Error's Code and Message methods to get detailed information about
4893// the error.
4894//
4895// See the AWS API reference guide for Amazon Route 53's
4896// API operation ListTrafficPolicies for usage and error information.
4897//
4898// Returned Error Codes:
4899//   * ErrCodeInvalidInput "InvalidInput"
4900//   The input is not valid.
4901//
4902// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicies
4903func (c *Route53) ListTrafficPolicies(input *ListTrafficPoliciesInput) (*ListTrafficPoliciesOutput, error) {
4904	req, out := c.ListTrafficPoliciesRequest(input)
4905	return out, req.Send()
4906}
4907
4908// ListTrafficPoliciesWithContext is the same as ListTrafficPolicies with the addition of
4909// the ability to pass a context and additional request options.
4910//
4911// See ListTrafficPolicies for details on how to use this API operation.
4912//
4913// The context must be non-nil and will be used for request cancellation. If
4914// the context is nil a panic will occur. In the future the SDK may create
4915// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4916// for more information on using Contexts.
4917func (c *Route53) ListTrafficPoliciesWithContext(ctx aws.Context, input *ListTrafficPoliciesInput, opts ...request.Option) (*ListTrafficPoliciesOutput, error) {
4918	req, out := c.ListTrafficPoliciesRequest(input)
4919	req.SetContext(ctx)
4920	req.ApplyOptions(opts...)
4921	return out, req.Send()
4922}
4923
4924const opListTrafficPolicyInstances = "ListTrafficPolicyInstances"
4925
4926// ListTrafficPolicyInstancesRequest generates a "aws/request.Request" representing the
4927// client's request for the ListTrafficPolicyInstances operation. The "output" return
4928// value will be populated with the request's response once the request completes
4929// successfully.
4930//
4931// Use "Send" method on the returned Request to send the API call to the service.
4932// the "output" return value is not valid until after Send returns without error.
4933//
4934// See ListTrafficPolicyInstances for more information on using the ListTrafficPolicyInstances
4935// API call, and error handling.
4936//
4937// This method is useful when you want to inject custom logic or configuration
4938// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4939//
4940//
4941//    // Example sending a request using the ListTrafficPolicyInstancesRequest method.
4942//    req, resp := client.ListTrafficPolicyInstancesRequest(params)
4943//
4944//    err := req.Send()
4945//    if err == nil { // resp is now filled
4946//        fmt.Println(resp)
4947//    }
4948//
4949// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances
4950func (c *Route53) ListTrafficPolicyInstancesRequest(input *ListTrafficPolicyInstancesInput) (req *request.Request, output *ListTrafficPolicyInstancesOutput) {
4951	op := &request.Operation{
4952		Name:       opListTrafficPolicyInstances,
4953		HTTPMethod: "GET",
4954		HTTPPath:   "/2013-04-01/trafficpolicyinstances",
4955	}
4956
4957	if input == nil {
4958		input = &ListTrafficPolicyInstancesInput{}
4959	}
4960
4961	output = &ListTrafficPolicyInstancesOutput{}
4962	req = c.newRequest(op, input, output)
4963	return
4964}
4965
4966// ListTrafficPolicyInstances API operation for Amazon Route 53.
4967//
4968// Gets information about the traffic policy instances that you created by using
4969// the current AWS account.
4970//
4971// After you submit an UpdateTrafficPolicyInstance request, there's a brief
4972// delay while Amazon Route 53 creates the resource record sets that are specified
4973// in the traffic policy definition. For more information, see the State response
4974// element.
4975//
4976// Route 53 returns a maximum of 100 items in each response. If you have a lot
4977// of traffic policy instances, you can use the MaxItems parameter to list them
4978// in groups of up to 100.
4979//
4980// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4981// with awserr.Error's Code and Message methods to get detailed information about
4982// the error.
4983//
4984// See the AWS API reference guide for Amazon Route 53's
4985// API operation ListTrafficPolicyInstances for usage and error information.
4986//
4987// Returned Error Codes:
4988//   * ErrCodeInvalidInput "InvalidInput"
4989//   The input is not valid.
4990//
4991//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
4992//   No traffic policy instance exists with the specified ID.
4993//
4994// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstances
4995func (c *Route53) ListTrafficPolicyInstances(input *ListTrafficPolicyInstancesInput) (*ListTrafficPolicyInstancesOutput, error) {
4996	req, out := c.ListTrafficPolicyInstancesRequest(input)
4997	return out, req.Send()
4998}
4999
5000// ListTrafficPolicyInstancesWithContext is the same as ListTrafficPolicyInstances with the addition of
5001// the ability to pass a context and additional request options.
5002//
5003// See ListTrafficPolicyInstances for details on how to use this API operation.
5004//
5005// The context must be non-nil and will be used for request cancellation. If
5006// the context is nil a panic will occur. In the future the SDK may create
5007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5008// for more information on using Contexts.
5009func (c *Route53) ListTrafficPolicyInstancesWithContext(ctx aws.Context, input *ListTrafficPolicyInstancesInput, opts ...request.Option) (*ListTrafficPolicyInstancesOutput, error) {
5010	req, out := c.ListTrafficPolicyInstancesRequest(input)
5011	req.SetContext(ctx)
5012	req.ApplyOptions(opts...)
5013	return out, req.Send()
5014}
5015
5016const opListTrafficPolicyInstancesByHostedZone = "ListTrafficPolicyInstancesByHostedZone"
5017
5018// ListTrafficPolicyInstancesByHostedZoneRequest generates a "aws/request.Request" representing the
5019// client's request for the ListTrafficPolicyInstancesByHostedZone operation. The "output" return
5020// value will be populated with the request's response once the request completes
5021// successfully.
5022//
5023// Use "Send" method on the returned Request to send the API call to the service.
5024// the "output" return value is not valid until after Send returns without error.
5025//
5026// See ListTrafficPolicyInstancesByHostedZone for more information on using the ListTrafficPolicyInstancesByHostedZone
5027// API call, and error handling.
5028//
5029// This method is useful when you want to inject custom logic or configuration
5030// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5031//
5032//
5033//    // Example sending a request using the ListTrafficPolicyInstancesByHostedZoneRequest method.
5034//    req, resp := client.ListTrafficPolicyInstancesByHostedZoneRequest(params)
5035//
5036//    err := req.Send()
5037//    if err == nil { // resp is now filled
5038//        fmt.Println(resp)
5039//    }
5040//
5041// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone
5042func (c *Route53) ListTrafficPolicyInstancesByHostedZoneRequest(input *ListTrafficPolicyInstancesByHostedZoneInput) (req *request.Request, output *ListTrafficPolicyInstancesByHostedZoneOutput) {
5043	op := &request.Operation{
5044		Name:       opListTrafficPolicyInstancesByHostedZone,
5045		HTTPMethod: "GET",
5046		HTTPPath:   "/2013-04-01/trafficpolicyinstances/hostedzone",
5047	}
5048
5049	if input == nil {
5050		input = &ListTrafficPolicyInstancesByHostedZoneInput{}
5051	}
5052
5053	output = &ListTrafficPolicyInstancesByHostedZoneOutput{}
5054	req = c.newRequest(op, input, output)
5055	return
5056}
5057
5058// ListTrafficPolicyInstancesByHostedZone API operation for Amazon Route 53.
5059//
5060// Gets information about the traffic policy instances that you created in a
5061// specified hosted zone.
5062//
5063// After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance
5064// request, there's a brief delay while Amazon Route 53 creates the resource
5065// record sets that are specified in the traffic policy definition. For more
5066// information, see the State response element.
5067//
5068// Route 53 returns a maximum of 100 items in each response. If you have a lot
5069// of traffic policy instances, you can use the MaxItems parameter to list them
5070// in groups of up to 100.
5071//
5072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5073// with awserr.Error's Code and Message methods to get detailed information about
5074// the error.
5075//
5076// See the AWS API reference guide for Amazon Route 53's
5077// API operation ListTrafficPolicyInstancesByHostedZone for usage and error information.
5078//
5079// Returned Error Codes:
5080//   * ErrCodeInvalidInput "InvalidInput"
5081//   The input is not valid.
5082//
5083//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
5084//   No traffic policy instance exists with the specified ID.
5085//
5086//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5087//   No hosted zone exists with the ID that you specified.
5088//
5089// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZone
5090func (c *Route53) ListTrafficPolicyInstancesByHostedZone(input *ListTrafficPolicyInstancesByHostedZoneInput) (*ListTrafficPolicyInstancesByHostedZoneOutput, error) {
5091	req, out := c.ListTrafficPolicyInstancesByHostedZoneRequest(input)
5092	return out, req.Send()
5093}
5094
5095// ListTrafficPolicyInstancesByHostedZoneWithContext is the same as ListTrafficPolicyInstancesByHostedZone with the addition of
5096// the ability to pass a context and additional request options.
5097//
5098// See ListTrafficPolicyInstancesByHostedZone for details on how to use this API operation.
5099//
5100// The context must be non-nil and will be used for request cancellation. If
5101// the context is nil a panic will occur. In the future the SDK may create
5102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5103// for more information on using Contexts.
5104func (c *Route53) ListTrafficPolicyInstancesByHostedZoneWithContext(ctx aws.Context, input *ListTrafficPolicyInstancesByHostedZoneInput, opts ...request.Option) (*ListTrafficPolicyInstancesByHostedZoneOutput, error) {
5105	req, out := c.ListTrafficPolicyInstancesByHostedZoneRequest(input)
5106	req.SetContext(ctx)
5107	req.ApplyOptions(opts...)
5108	return out, req.Send()
5109}
5110
5111const opListTrafficPolicyInstancesByPolicy = "ListTrafficPolicyInstancesByPolicy"
5112
5113// ListTrafficPolicyInstancesByPolicyRequest generates a "aws/request.Request" representing the
5114// client's request for the ListTrafficPolicyInstancesByPolicy operation. The "output" return
5115// value will be populated with the request's response once the request completes
5116// successfully.
5117//
5118// Use "Send" method on the returned Request to send the API call to the service.
5119// the "output" return value is not valid until after Send returns without error.
5120//
5121// See ListTrafficPolicyInstancesByPolicy for more information on using the ListTrafficPolicyInstancesByPolicy
5122// API call, and error handling.
5123//
5124// This method is useful when you want to inject custom logic or configuration
5125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5126//
5127//
5128//    // Example sending a request using the ListTrafficPolicyInstancesByPolicyRequest method.
5129//    req, resp := client.ListTrafficPolicyInstancesByPolicyRequest(params)
5130//
5131//    err := req.Send()
5132//    if err == nil { // resp is now filled
5133//        fmt.Println(resp)
5134//    }
5135//
5136// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy
5137func (c *Route53) ListTrafficPolicyInstancesByPolicyRequest(input *ListTrafficPolicyInstancesByPolicyInput) (req *request.Request, output *ListTrafficPolicyInstancesByPolicyOutput) {
5138	op := &request.Operation{
5139		Name:       opListTrafficPolicyInstancesByPolicy,
5140		HTTPMethod: "GET",
5141		HTTPPath:   "/2013-04-01/trafficpolicyinstances/trafficpolicy",
5142	}
5143
5144	if input == nil {
5145		input = &ListTrafficPolicyInstancesByPolicyInput{}
5146	}
5147
5148	output = &ListTrafficPolicyInstancesByPolicyOutput{}
5149	req = c.newRequest(op, input, output)
5150	return
5151}
5152
5153// ListTrafficPolicyInstancesByPolicy API operation for Amazon Route 53.
5154//
5155// Gets information about the traffic policy instances that you created by using
5156// a specify traffic policy version.
5157//
5158// After you submit a CreateTrafficPolicyInstance or an UpdateTrafficPolicyInstance
5159// request, there's a brief delay while Amazon Route 53 creates the resource
5160// record sets that are specified in the traffic policy definition. For more
5161// information, see the State response element.
5162//
5163// Route 53 returns a maximum of 100 items in each response. If you have a lot
5164// of traffic policy instances, you can use the MaxItems parameter to list them
5165// in groups of up to 100.
5166//
5167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5168// with awserr.Error's Code and Message methods to get detailed information about
5169// the error.
5170//
5171// See the AWS API reference guide for Amazon Route 53's
5172// API operation ListTrafficPolicyInstancesByPolicy for usage and error information.
5173//
5174// Returned Error Codes:
5175//   * ErrCodeInvalidInput "InvalidInput"
5176//   The input is not valid.
5177//
5178//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
5179//   No traffic policy instance exists with the specified ID.
5180//
5181//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5182//   No traffic policy exists with the specified ID.
5183//
5184// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicy
5185func (c *Route53) ListTrafficPolicyInstancesByPolicy(input *ListTrafficPolicyInstancesByPolicyInput) (*ListTrafficPolicyInstancesByPolicyOutput, error) {
5186	req, out := c.ListTrafficPolicyInstancesByPolicyRequest(input)
5187	return out, req.Send()
5188}
5189
5190// ListTrafficPolicyInstancesByPolicyWithContext is the same as ListTrafficPolicyInstancesByPolicy with the addition of
5191// the ability to pass a context and additional request options.
5192//
5193// See ListTrafficPolicyInstancesByPolicy for details on how to use this API operation.
5194//
5195// The context must be non-nil and will be used for request cancellation. If
5196// the context is nil a panic will occur. In the future the SDK may create
5197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5198// for more information on using Contexts.
5199func (c *Route53) ListTrafficPolicyInstancesByPolicyWithContext(ctx aws.Context, input *ListTrafficPolicyInstancesByPolicyInput, opts ...request.Option) (*ListTrafficPolicyInstancesByPolicyOutput, error) {
5200	req, out := c.ListTrafficPolicyInstancesByPolicyRequest(input)
5201	req.SetContext(ctx)
5202	req.ApplyOptions(opts...)
5203	return out, req.Send()
5204}
5205
5206const opListTrafficPolicyVersions = "ListTrafficPolicyVersions"
5207
5208// ListTrafficPolicyVersionsRequest generates a "aws/request.Request" representing the
5209// client's request for the ListTrafficPolicyVersions operation. The "output" return
5210// value will be populated with the request's response once the request completes
5211// successfully.
5212//
5213// Use "Send" method on the returned Request to send the API call to the service.
5214// the "output" return value is not valid until after Send returns without error.
5215//
5216// See ListTrafficPolicyVersions for more information on using the ListTrafficPolicyVersions
5217// API call, and error handling.
5218//
5219// This method is useful when you want to inject custom logic or configuration
5220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5221//
5222//
5223//    // Example sending a request using the ListTrafficPolicyVersionsRequest method.
5224//    req, resp := client.ListTrafficPolicyVersionsRequest(params)
5225//
5226//    err := req.Send()
5227//    if err == nil { // resp is now filled
5228//        fmt.Println(resp)
5229//    }
5230//
5231// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions
5232func (c *Route53) ListTrafficPolicyVersionsRequest(input *ListTrafficPolicyVersionsInput) (req *request.Request, output *ListTrafficPolicyVersionsOutput) {
5233	op := &request.Operation{
5234		Name:       opListTrafficPolicyVersions,
5235		HTTPMethod: "GET",
5236		HTTPPath:   "/2013-04-01/trafficpolicies/{Id}/versions",
5237	}
5238
5239	if input == nil {
5240		input = &ListTrafficPolicyVersionsInput{}
5241	}
5242
5243	output = &ListTrafficPolicyVersionsOutput{}
5244	req = c.newRequest(op, input, output)
5245	return
5246}
5247
5248// ListTrafficPolicyVersions API operation for Amazon Route 53.
5249//
5250// Gets information about all of the versions for a specified traffic policy.
5251//
5252// Traffic policy versions are listed in numerical order by VersionNumber.
5253//
5254// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5255// with awserr.Error's Code and Message methods to get detailed information about
5256// the error.
5257//
5258// See the AWS API reference guide for Amazon Route 53's
5259// API operation ListTrafficPolicyVersions for usage and error information.
5260//
5261// Returned Error Codes:
5262//   * ErrCodeInvalidInput "InvalidInput"
5263//   The input is not valid.
5264//
5265//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5266//   No traffic policy exists with the specified ID.
5267//
5268// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersions
5269func (c *Route53) ListTrafficPolicyVersions(input *ListTrafficPolicyVersionsInput) (*ListTrafficPolicyVersionsOutput, error) {
5270	req, out := c.ListTrafficPolicyVersionsRequest(input)
5271	return out, req.Send()
5272}
5273
5274// ListTrafficPolicyVersionsWithContext is the same as ListTrafficPolicyVersions with the addition of
5275// the ability to pass a context and additional request options.
5276//
5277// See ListTrafficPolicyVersions for details on how to use this API operation.
5278//
5279// The context must be non-nil and will be used for request cancellation. If
5280// the context is nil a panic will occur. In the future the SDK may create
5281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5282// for more information on using Contexts.
5283func (c *Route53) ListTrafficPolicyVersionsWithContext(ctx aws.Context, input *ListTrafficPolicyVersionsInput, opts ...request.Option) (*ListTrafficPolicyVersionsOutput, error) {
5284	req, out := c.ListTrafficPolicyVersionsRequest(input)
5285	req.SetContext(ctx)
5286	req.ApplyOptions(opts...)
5287	return out, req.Send()
5288}
5289
5290const opListVPCAssociationAuthorizations = "ListVPCAssociationAuthorizations"
5291
5292// ListVPCAssociationAuthorizationsRequest generates a "aws/request.Request" representing the
5293// client's request for the ListVPCAssociationAuthorizations operation. The "output" return
5294// value will be populated with the request's response once the request completes
5295// successfully.
5296//
5297// Use "Send" method on the returned Request to send the API call to the service.
5298// the "output" return value is not valid until after Send returns without error.
5299//
5300// See ListVPCAssociationAuthorizations for more information on using the ListVPCAssociationAuthorizations
5301// API call, and error handling.
5302//
5303// This method is useful when you want to inject custom logic or configuration
5304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5305//
5306//
5307//    // Example sending a request using the ListVPCAssociationAuthorizationsRequest method.
5308//    req, resp := client.ListVPCAssociationAuthorizationsRequest(params)
5309//
5310//    err := req.Send()
5311//    if err == nil { // resp is now filled
5312//        fmt.Println(resp)
5313//    }
5314//
5315// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations
5316func (c *Route53) ListVPCAssociationAuthorizationsRequest(input *ListVPCAssociationAuthorizationsInput) (req *request.Request, output *ListVPCAssociationAuthorizationsOutput) {
5317	op := &request.Operation{
5318		Name:       opListVPCAssociationAuthorizations,
5319		HTTPMethod: "GET",
5320		HTTPPath:   "/2013-04-01/hostedzone/{Id}/authorizevpcassociation",
5321	}
5322
5323	if input == nil {
5324		input = &ListVPCAssociationAuthorizationsInput{}
5325	}
5326
5327	output = &ListVPCAssociationAuthorizationsOutput{}
5328	req = c.newRequest(op, input, output)
5329	return
5330}
5331
5332// ListVPCAssociationAuthorizations API operation for Amazon Route 53.
5333//
5334// Gets a list of the VPCs that were created by other accounts and that can
5335// be associated with a specified hosted zone because you've submitted one or
5336// more CreateVPCAssociationAuthorization requests.
5337//
5338// The response includes a VPCs element with a VPC child element for each VPC
5339// that can be associated with the hosted zone.
5340//
5341// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5342// with awserr.Error's Code and Message methods to get detailed information about
5343// the error.
5344//
5345// See the AWS API reference guide for Amazon Route 53's
5346// API operation ListVPCAssociationAuthorizations for usage and error information.
5347//
5348// Returned Error Codes:
5349//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5350//   No hosted zone exists with the ID that you specified.
5351//
5352//   * ErrCodeInvalidInput "InvalidInput"
5353//   The input is not valid.
5354//
5355//   * ErrCodeInvalidPaginationToken "InvalidPaginationToken"
5356//   The value that you specified to get the second or subsequent page of results
5357//   is invalid.
5358//
5359// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizations
5360func (c *Route53) ListVPCAssociationAuthorizations(input *ListVPCAssociationAuthorizationsInput) (*ListVPCAssociationAuthorizationsOutput, error) {
5361	req, out := c.ListVPCAssociationAuthorizationsRequest(input)
5362	return out, req.Send()
5363}
5364
5365// ListVPCAssociationAuthorizationsWithContext is the same as ListVPCAssociationAuthorizations with the addition of
5366// the ability to pass a context and additional request options.
5367//
5368// See ListVPCAssociationAuthorizations for details on how to use this API operation.
5369//
5370// The context must be non-nil and will be used for request cancellation. If
5371// the context is nil a panic will occur. In the future the SDK may create
5372// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5373// for more information on using Contexts.
5374func (c *Route53) ListVPCAssociationAuthorizationsWithContext(ctx aws.Context, input *ListVPCAssociationAuthorizationsInput, opts ...request.Option) (*ListVPCAssociationAuthorizationsOutput, error) {
5375	req, out := c.ListVPCAssociationAuthorizationsRequest(input)
5376	req.SetContext(ctx)
5377	req.ApplyOptions(opts...)
5378	return out, req.Send()
5379}
5380
5381const opTestDNSAnswer = "TestDNSAnswer"
5382
5383// TestDNSAnswerRequest generates a "aws/request.Request" representing the
5384// client's request for the TestDNSAnswer operation. The "output" return
5385// value will be populated with the request's response once the request completes
5386// successfully.
5387//
5388// Use "Send" method on the returned Request to send the API call to the service.
5389// the "output" return value is not valid until after Send returns without error.
5390//
5391// See TestDNSAnswer for more information on using the TestDNSAnswer
5392// API call, and error handling.
5393//
5394// This method is useful when you want to inject custom logic or configuration
5395// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5396//
5397//
5398//    // Example sending a request using the TestDNSAnswerRequest method.
5399//    req, resp := client.TestDNSAnswerRequest(params)
5400//
5401//    err := req.Send()
5402//    if err == nil { // resp is now filled
5403//        fmt.Println(resp)
5404//    }
5405//
5406// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer
5407func (c *Route53) TestDNSAnswerRequest(input *TestDNSAnswerInput) (req *request.Request, output *TestDNSAnswerOutput) {
5408	op := &request.Operation{
5409		Name:       opTestDNSAnswer,
5410		HTTPMethod: "GET",
5411		HTTPPath:   "/2013-04-01/testdnsanswer",
5412	}
5413
5414	if input == nil {
5415		input = &TestDNSAnswerInput{}
5416	}
5417
5418	output = &TestDNSAnswerOutput{}
5419	req = c.newRequest(op, input, output)
5420	return
5421}
5422
5423// TestDNSAnswer API operation for Amazon Route 53.
5424//
5425// Gets the value that Amazon Route 53 returns in response to a DNS request
5426// for a specified record name and type. You can optionally specify the IP address
5427// of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask.
5428//
5429// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5430// with awserr.Error's Code and Message methods to get detailed information about
5431// the error.
5432//
5433// See the AWS API reference guide for Amazon Route 53's
5434// API operation TestDNSAnswer for usage and error information.
5435//
5436// Returned Error Codes:
5437//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5438//   No hosted zone exists with the ID that you specified.
5439//
5440//   * ErrCodeInvalidInput "InvalidInput"
5441//   The input is not valid.
5442//
5443// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswer
5444func (c *Route53) TestDNSAnswer(input *TestDNSAnswerInput) (*TestDNSAnswerOutput, error) {
5445	req, out := c.TestDNSAnswerRequest(input)
5446	return out, req.Send()
5447}
5448
5449// TestDNSAnswerWithContext is the same as TestDNSAnswer with the addition of
5450// the ability to pass a context and additional request options.
5451//
5452// See TestDNSAnswer for details on how to use this API operation.
5453//
5454// The context must be non-nil and will be used for request cancellation. If
5455// the context is nil a panic will occur. In the future the SDK may create
5456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5457// for more information on using Contexts.
5458func (c *Route53) TestDNSAnswerWithContext(ctx aws.Context, input *TestDNSAnswerInput, opts ...request.Option) (*TestDNSAnswerOutput, error) {
5459	req, out := c.TestDNSAnswerRequest(input)
5460	req.SetContext(ctx)
5461	req.ApplyOptions(opts...)
5462	return out, req.Send()
5463}
5464
5465const opUpdateHealthCheck = "UpdateHealthCheck"
5466
5467// UpdateHealthCheckRequest generates a "aws/request.Request" representing the
5468// client's request for the UpdateHealthCheck operation. The "output" return
5469// value will be populated with the request's response once the request completes
5470// successfully.
5471//
5472// Use "Send" method on the returned Request to send the API call to the service.
5473// the "output" return value is not valid until after Send returns without error.
5474//
5475// See UpdateHealthCheck for more information on using the UpdateHealthCheck
5476// API call, and error handling.
5477//
5478// This method is useful when you want to inject custom logic or configuration
5479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5480//
5481//
5482//    // Example sending a request using the UpdateHealthCheckRequest method.
5483//    req, resp := client.UpdateHealthCheckRequest(params)
5484//
5485//    err := req.Send()
5486//    if err == nil { // resp is now filled
5487//        fmt.Println(resp)
5488//    }
5489//
5490// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck
5491func (c *Route53) UpdateHealthCheckRequest(input *UpdateHealthCheckInput) (req *request.Request, output *UpdateHealthCheckOutput) {
5492	op := &request.Operation{
5493		Name:       opUpdateHealthCheck,
5494		HTTPMethod: "POST",
5495		HTTPPath:   "/2013-04-01/healthcheck/{HealthCheckId}",
5496	}
5497
5498	if input == nil {
5499		input = &UpdateHealthCheckInput{}
5500	}
5501
5502	output = &UpdateHealthCheckOutput{}
5503	req = c.newRequest(op, input, output)
5504	return
5505}
5506
5507// UpdateHealthCheck API operation for Amazon Route 53.
5508//
5509// Updates an existing health check. Note that some values can't be updated.
5510//
5511// For more information about updating health checks, see Creating, Updating,
5512// and Deleting Health Checks (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html)
5513// in the Amazon Route 53 Developer Guide.
5514//
5515// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5516// with awserr.Error's Code and Message methods to get detailed information about
5517// the error.
5518//
5519// See the AWS API reference guide for Amazon Route 53's
5520// API operation UpdateHealthCheck for usage and error information.
5521//
5522// Returned Error Codes:
5523//   * ErrCodeNoSuchHealthCheck "NoSuchHealthCheck"
5524//   No health check exists with the specified ID.
5525//
5526//   * ErrCodeInvalidInput "InvalidInput"
5527//   The input is not valid.
5528//
5529//   * ErrCodeHealthCheckVersionMismatch "HealthCheckVersionMismatch"
5530//   The value of HealthCheckVersion in the request doesn't match the value of
5531//   HealthCheckVersion in the health check.
5532//
5533// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheck
5534func (c *Route53) UpdateHealthCheck(input *UpdateHealthCheckInput) (*UpdateHealthCheckOutput, error) {
5535	req, out := c.UpdateHealthCheckRequest(input)
5536	return out, req.Send()
5537}
5538
5539// UpdateHealthCheckWithContext is the same as UpdateHealthCheck with the addition of
5540// the ability to pass a context and additional request options.
5541//
5542// See UpdateHealthCheck for details on how to use this API operation.
5543//
5544// The context must be non-nil and will be used for request cancellation. If
5545// the context is nil a panic will occur. In the future the SDK may create
5546// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5547// for more information on using Contexts.
5548func (c *Route53) UpdateHealthCheckWithContext(ctx aws.Context, input *UpdateHealthCheckInput, opts ...request.Option) (*UpdateHealthCheckOutput, error) {
5549	req, out := c.UpdateHealthCheckRequest(input)
5550	req.SetContext(ctx)
5551	req.ApplyOptions(opts...)
5552	return out, req.Send()
5553}
5554
5555const opUpdateHostedZoneComment = "UpdateHostedZoneComment"
5556
5557// UpdateHostedZoneCommentRequest generates a "aws/request.Request" representing the
5558// client's request for the UpdateHostedZoneComment operation. The "output" return
5559// value will be populated with the request's response once the request completes
5560// successfully.
5561//
5562// Use "Send" method on the returned Request to send the API call to the service.
5563// the "output" return value is not valid until after Send returns without error.
5564//
5565// See UpdateHostedZoneComment for more information on using the UpdateHostedZoneComment
5566// API call, and error handling.
5567//
5568// This method is useful when you want to inject custom logic or configuration
5569// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5570//
5571//
5572//    // Example sending a request using the UpdateHostedZoneCommentRequest method.
5573//    req, resp := client.UpdateHostedZoneCommentRequest(params)
5574//
5575//    err := req.Send()
5576//    if err == nil { // resp is now filled
5577//        fmt.Println(resp)
5578//    }
5579//
5580// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment
5581func (c *Route53) UpdateHostedZoneCommentRequest(input *UpdateHostedZoneCommentInput) (req *request.Request, output *UpdateHostedZoneCommentOutput) {
5582	op := &request.Operation{
5583		Name:       opUpdateHostedZoneComment,
5584		HTTPMethod: "POST",
5585		HTTPPath:   "/2013-04-01/hostedzone/{Id}",
5586	}
5587
5588	if input == nil {
5589		input = &UpdateHostedZoneCommentInput{}
5590	}
5591
5592	output = &UpdateHostedZoneCommentOutput{}
5593	req = c.newRequest(op, input, output)
5594	return
5595}
5596
5597// UpdateHostedZoneComment API operation for Amazon Route 53.
5598//
5599// Updates the comment for a specified hosted zone.
5600//
5601// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5602// with awserr.Error's Code and Message methods to get detailed information about
5603// the error.
5604//
5605// See the AWS API reference guide for Amazon Route 53's
5606// API operation UpdateHostedZoneComment for usage and error information.
5607//
5608// Returned Error Codes:
5609//   * ErrCodeNoSuchHostedZone "NoSuchHostedZone"
5610//   No hosted zone exists with the ID that you specified.
5611//
5612//   * ErrCodeInvalidInput "InvalidInput"
5613//   The input is not valid.
5614//
5615// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneComment
5616func (c *Route53) UpdateHostedZoneComment(input *UpdateHostedZoneCommentInput) (*UpdateHostedZoneCommentOutput, error) {
5617	req, out := c.UpdateHostedZoneCommentRequest(input)
5618	return out, req.Send()
5619}
5620
5621// UpdateHostedZoneCommentWithContext is the same as UpdateHostedZoneComment with the addition of
5622// the ability to pass a context and additional request options.
5623//
5624// See UpdateHostedZoneComment for details on how to use this API operation.
5625//
5626// The context must be non-nil and will be used for request cancellation. If
5627// the context is nil a panic will occur. In the future the SDK may create
5628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5629// for more information on using Contexts.
5630func (c *Route53) UpdateHostedZoneCommentWithContext(ctx aws.Context, input *UpdateHostedZoneCommentInput, opts ...request.Option) (*UpdateHostedZoneCommentOutput, error) {
5631	req, out := c.UpdateHostedZoneCommentRequest(input)
5632	req.SetContext(ctx)
5633	req.ApplyOptions(opts...)
5634	return out, req.Send()
5635}
5636
5637const opUpdateTrafficPolicyComment = "UpdateTrafficPolicyComment"
5638
5639// UpdateTrafficPolicyCommentRequest generates a "aws/request.Request" representing the
5640// client's request for the UpdateTrafficPolicyComment operation. The "output" return
5641// value will be populated with the request's response once the request completes
5642// successfully.
5643//
5644// Use "Send" method on the returned Request to send the API call to the service.
5645// the "output" return value is not valid until after Send returns without error.
5646//
5647// See UpdateTrafficPolicyComment for more information on using the UpdateTrafficPolicyComment
5648// API call, and error handling.
5649//
5650// This method is useful when you want to inject custom logic or configuration
5651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5652//
5653//
5654//    // Example sending a request using the UpdateTrafficPolicyCommentRequest method.
5655//    req, resp := client.UpdateTrafficPolicyCommentRequest(params)
5656//
5657//    err := req.Send()
5658//    if err == nil { // resp is now filled
5659//        fmt.Println(resp)
5660//    }
5661//
5662// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment
5663func (c *Route53) UpdateTrafficPolicyCommentRequest(input *UpdateTrafficPolicyCommentInput) (req *request.Request, output *UpdateTrafficPolicyCommentOutput) {
5664	op := &request.Operation{
5665		Name:       opUpdateTrafficPolicyComment,
5666		HTTPMethod: "POST",
5667		HTTPPath:   "/2013-04-01/trafficpolicy/{Id}/{Version}",
5668	}
5669
5670	if input == nil {
5671		input = &UpdateTrafficPolicyCommentInput{}
5672	}
5673
5674	output = &UpdateTrafficPolicyCommentOutput{}
5675	req = c.newRequest(op, input, output)
5676	return
5677}
5678
5679// UpdateTrafficPolicyComment API operation for Amazon Route 53.
5680//
5681// Updates the comment for a specified traffic policy version.
5682//
5683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5684// with awserr.Error's Code and Message methods to get detailed information about
5685// the error.
5686//
5687// See the AWS API reference guide for Amazon Route 53's
5688// API operation UpdateTrafficPolicyComment for usage and error information.
5689//
5690// Returned Error Codes:
5691//   * ErrCodeInvalidInput "InvalidInput"
5692//   The input is not valid.
5693//
5694//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5695//   No traffic policy exists with the specified ID.
5696//
5697//   * ErrCodeConcurrentModification "ConcurrentModification"
5698//   Another user submitted a request to create, update, or delete the object
5699//   at the same time that you did. Retry the request.
5700//
5701// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyComment
5702func (c *Route53) UpdateTrafficPolicyComment(input *UpdateTrafficPolicyCommentInput) (*UpdateTrafficPolicyCommentOutput, error) {
5703	req, out := c.UpdateTrafficPolicyCommentRequest(input)
5704	return out, req.Send()
5705}
5706
5707// UpdateTrafficPolicyCommentWithContext is the same as UpdateTrafficPolicyComment with the addition of
5708// the ability to pass a context and additional request options.
5709//
5710// See UpdateTrafficPolicyComment for details on how to use this API operation.
5711//
5712// The context must be non-nil and will be used for request cancellation. If
5713// the context is nil a panic will occur. In the future the SDK may create
5714// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5715// for more information on using Contexts.
5716func (c *Route53) UpdateTrafficPolicyCommentWithContext(ctx aws.Context, input *UpdateTrafficPolicyCommentInput, opts ...request.Option) (*UpdateTrafficPolicyCommentOutput, error) {
5717	req, out := c.UpdateTrafficPolicyCommentRequest(input)
5718	req.SetContext(ctx)
5719	req.ApplyOptions(opts...)
5720	return out, req.Send()
5721}
5722
5723const opUpdateTrafficPolicyInstance = "UpdateTrafficPolicyInstance"
5724
5725// UpdateTrafficPolicyInstanceRequest generates a "aws/request.Request" representing the
5726// client's request for the UpdateTrafficPolicyInstance operation. The "output" return
5727// value will be populated with the request's response once the request completes
5728// successfully.
5729//
5730// Use "Send" method on the returned Request to send the API call to the service.
5731// the "output" return value is not valid until after Send returns without error.
5732//
5733// See UpdateTrafficPolicyInstance for more information on using the UpdateTrafficPolicyInstance
5734// API call, and error handling.
5735//
5736// This method is useful when you want to inject custom logic or configuration
5737// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5738//
5739//
5740//    // Example sending a request using the UpdateTrafficPolicyInstanceRequest method.
5741//    req, resp := client.UpdateTrafficPolicyInstanceRequest(params)
5742//
5743//    err := req.Send()
5744//    if err == nil { // resp is now filled
5745//        fmt.Println(resp)
5746//    }
5747//
5748// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance
5749func (c *Route53) UpdateTrafficPolicyInstanceRequest(input *UpdateTrafficPolicyInstanceInput) (req *request.Request, output *UpdateTrafficPolicyInstanceOutput) {
5750	op := &request.Operation{
5751		Name:       opUpdateTrafficPolicyInstance,
5752		HTTPMethod: "POST",
5753		HTTPPath:   "/2013-04-01/trafficpolicyinstance/{Id}",
5754	}
5755
5756	if input == nil {
5757		input = &UpdateTrafficPolicyInstanceInput{}
5758	}
5759
5760	output = &UpdateTrafficPolicyInstanceOutput{}
5761	req = c.newRequest(op, input, output)
5762	return
5763}
5764
5765// UpdateTrafficPolicyInstance API operation for Amazon Route 53.
5766//
5767// Updates the resource record sets in a specified hosted zone that were created
5768// based on the settings in a specified traffic policy version.
5769//
5770// When you update a traffic policy instance, Amazon Route 53 continues to respond
5771// to DNS queries for the root resource record set name (such as example.com)
5772// while it replaces one group of resource record sets with another. Route 53
5773// performs the following operations:
5774//
5775// Route 53 creates a new group of resource record sets based on the specified
5776// traffic policy. This is true regardless of how significant the differences
5777// are between the existing resource record sets and the new resource record
5778// sets.
5779//
5780// When all of the new resource record sets have been created, Route 53 starts
5781// to respond to DNS queries for the root resource record set name (such as
5782// example.com) by using the new resource record sets.
5783//
5784// Route 53 deletes the old group of resource record sets that are associated
5785// with the root resource record set name.
5786//
5787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5788// with awserr.Error's Code and Message methods to get detailed information about
5789// the error.
5790//
5791// See the AWS API reference guide for Amazon Route 53's
5792// API operation UpdateTrafficPolicyInstance for usage and error information.
5793//
5794// Returned Error Codes:
5795//   * ErrCodeInvalidInput "InvalidInput"
5796//   The input is not valid.
5797//
5798//   * ErrCodeNoSuchTrafficPolicy "NoSuchTrafficPolicy"
5799//   No traffic policy exists with the specified ID.
5800//
5801//   * ErrCodeNoSuchTrafficPolicyInstance "NoSuchTrafficPolicyInstance"
5802//   No traffic policy instance exists with the specified ID.
5803//
5804//   * ErrCodePriorRequestNotComplete "PriorRequestNotComplete"
5805//   If Amazon Route 53 can't process a request before the next request arrives,
5806//   it will reject subsequent requests for the same hosted zone and return an
5807//   HTTP 400 error (Bad request). If Route 53 returns this error repeatedly for
5808//   the same request, we recommend that you wait, in intervals of increasing
5809//   duration, before you try the request again.
5810//
5811//   * ErrCodeConflictingTypes "ConflictingTypes"
5812//   You tried to update a traffic policy instance by using a traffic policy version
5813//   that has a different DNS type than the current type for the instance. You
5814//   specified the type in the JSON document in the CreateTrafficPolicy or CreateTrafficPolicyVersionrequest.
5815//
5816// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstance
5817func (c *Route53) UpdateTrafficPolicyInstance(input *UpdateTrafficPolicyInstanceInput) (*UpdateTrafficPolicyInstanceOutput, error) {
5818	req, out := c.UpdateTrafficPolicyInstanceRequest(input)
5819	return out, req.Send()
5820}
5821
5822// UpdateTrafficPolicyInstanceWithContext is the same as UpdateTrafficPolicyInstance with the addition of
5823// the ability to pass a context and additional request options.
5824//
5825// See UpdateTrafficPolicyInstance for details on how to use this API operation.
5826//
5827// The context must be non-nil and will be used for request cancellation. If
5828// the context is nil a panic will occur. In the future the SDK may create
5829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5830// for more information on using Contexts.
5831func (c *Route53) UpdateTrafficPolicyInstanceWithContext(ctx aws.Context, input *UpdateTrafficPolicyInstanceInput, opts ...request.Option) (*UpdateTrafficPolicyInstanceOutput, error) {
5832	req, out := c.UpdateTrafficPolicyInstanceRequest(input)
5833	req.SetContext(ctx)
5834	req.ApplyOptions(opts...)
5835	return out, req.Send()
5836}
5837
5838// A complex type that contains the type of limit that you specified in the
5839// request and the current value for that limit.
5840type AccountLimit struct {
5841	_ struct{} `type:"structure"`
5842
5843	// The limit that you requested. Valid values include the following:
5844	//
5845	//    * MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that
5846	//    you can create using the current account.
5847	//
5848	//    * MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you
5849	//    can create using the current account.
5850	//
5851	//    * MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable
5852	//    delegation sets that you can create using the current account.
5853	//
5854	//    * MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies
5855	//    that you can create using the current account.
5856	//
5857	//    * MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic
5858	//    policy instances that you can create using the current account. (Traffic
5859	//    policy instances are referred to as traffic flow policy records in the
5860	//    Amazon Route 53 console.)
5861	//
5862	// Type is a required field
5863	Type *string `type:"string" required:"true" enum:"AccountLimitType"`
5864
5865	// 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).
5866	//
5867	// Value is a required field
5868	Value *int64 `min:"1" type:"long" required:"true"`
5869}
5870
5871// String returns the string representation
5872func (s AccountLimit) String() string {
5873	return awsutil.Prettify(s)
5874}
5875
5876// GoString returns the string representation
5877func (s AccountLimit) GoString() string {
5878	return s.String()
5879}
5880
5881// SetType sets the Type field's value.
5882func (s *AccountLimit) SetType(v string) *AccountLimit {
5883	s.Type = &v
5884	return s
5885}
5886
5887// SetValue sets the Value field's value.
5888func (s *AccountLimit) SetValue(v int64) *AccountLimit {
5889	s.Value = &v
5890	return s
5891}
5892
5893// A complex type that identifies the CloudWatch alarm that you want Amazon
5894// Route 53 health checkers to use to determine whether the specified health
5895// check is healthy.
5896type AlarmIdentifier struct {
5897	_ struct{} `type:"structure"`
5898
5899	// The name of the CloudWatch alarm that you want Amazon Route 53 health checkers
5900	// to use to determine whether this health check is healthy.
5901	//
5902	// Route 53 supports CloudWatch alarms with the following features:
5903	//
5904	//    * Standard-resolution metrics. High-resolution metrics aren't supported.
5905	//    For more information, see High-Resolution Metrics (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html#high-resolution-metrics)
5906	//    in the Amazon CloudWatch User Guide.
5907	//
5908	//    * Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended
5909	//    statistics aren't supported.
5910	//
5911	// Name is a required field
5912	Name *string `min:"1" type:"string" required:"true"`
5913
5914	// For the CloudWatch alarm that you want Route 53 health checkers to use to
5915	// determine whether this health check is healthy, the region that the alarm
5916	// was created in.
5917	//
5918	// For the current list of CloudWatch regions, see Amazon CloudWatch (http://docs.aws.amazon.com/general/latest/gr/rande.html#cw_region)
5919	// in the AWS Regions and Endpoints chapter of the Amazon Web Services General
5920	// Reference.
5921	//
5922	// Region is a required field
5923	Region *string `min:"1" type:"string" required:"true" enum:"CloudWatchRegion"`
5924}
5925
5926// String returns the string representation
5927func (s AlarmIdentifier) String() string {
5928	return awsutil.Prettify(s)
5929}
5930
5931// GoString returns the string representation
5932func (s AlarmIdentifier) GoString() string {
5933	return s.String()
5934}
5935
5936// Validate inspects the fields of the type to determine if they are valid.
5937func (s *AlarmIdentifier) Validate() error {
5938	invalidParams := request.ErrInvalidParams{Context: "AlarmIdentifier"}
5939	if s.Name == nil {
5940		invalidParams.Add(request.NewErrParamRequired("Name"))
5941	}
5942	if s.Name != nil && len(*s.Name) < 1 {
5943		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5944	}
5945	if s.Region == nil {
5946		invalidParams.Add(request.NewErrParamRequired("Region"))
5947	}
5948	if s.Region != nil && len(*s.Region) < 1 {
5949		invalidParams.Add(request.NewErrParamMinLen("Region", 1))
5950	}
5951
5952	if invalidParams.Len() > 0 {
5953		return invalidParams
5954	}
5955	return nil
5956}
5957
5958// SetName sets the Name field's value.
5959func (s *AlarmIdentifier) SetName(v string) *AlarmIdentifier {
5960	s.Name = &v
5961	return s
5962}
5963
5964// SetRegion sets the Region field's value.
5965func (s *AlarmIdentifier) SetRegion(v string) *AlarmIdentifier {
5966	s.Region = &v
5967	return s
5968}
5969
5970// Alias resource record sets only: Information about the AWS resource, such
5971// as a CloudFront distribution or an Amazon S3 bucket, that you want to route
5972// traffic to.
5973//
5974// When creating resource record sets for a private hosted zone, note the following:
5975//
5976//    * Creating geolocation alias resource record sets or latency alias resource
5977//    record sets in a private hosted zone is unsupported.
5978//
5979//    * For information about creating failover resource record sets in a private
5980//    hosted zone, see Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html).
5981type AliasTarget struct {
5982	_ struct{} `type:"structure"`
5983
5984	// Alias resource record sets only: The value that you specify depends on where
5985	// you want to route queries:
5986	//
5987	// Amazon API Gateway custom regional APIs and edge-optimized APIs
5988	//
5989	// Specify the applicable domain name for your API. You can get the applicable
5990	// value using the AWS CLI command get-domain-names (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html):
5991	//
5992	//    * For regional APIs, specify the value of regionalDomainName.
5993	//
5994	//    * For edge-optimized APIs, specify the value of distributionDomainName.
5995	//    This is the name of the associated CloudFront distribution, such as da1b2c3d4e5.cloudfront.net.
5996	//
5997	// The name of the record that you're creating must match a custom domain name
5998	// for your API, such as api.example.com.
5999	//
6000	// Amazon Virtual Private Cloud interface VPC endpoint
6001	//
6002	// Enter the API endpoint for the interface endpoint, such as vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com.
6003	// For edge-optimized APIs, this is the domain name for the corresponding CloudFront
6004	// distribution. You can get the value of DnsName using the AWS CLI command
6005	// describe-vpc-endpoints (https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html).
6006	//
6007	// CloudFront distribution
6008	//
6009	// Specify the domain name that CloudFront assigned when you created your distribution.
6010	//
6011	// Your CloudFront distribution must include an alternate domain name that matches
6012	// the name of the resource record set. For example, if the name of the resource
6013	// record set is acme.example.com, your CloudFront distribution must include
6014	// acme.example.com as one of the alternate domain names. For more information,
6015	// see Using Alternate Domain Names (CNAMEs) (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html)
6016	// in the Amazon CloudFront Developer Guide.
6017	//
6018	// You can't create a resource record set in a private hosted zone to route
6019	// traffic to a CloudFront distribution.
6020	//
6021	// For failover alias records, you can't specify a CloudFront distribution for
6022	// both the primary and secondary records. A distribution must include an alternate
6023	// domain name that matches the name of the record. However, the primary and
6024	// secondary records have the same name, and you can't include the same alternate
6025	// domain name in more than one distribution.
6026	//
6027	// Elastic Beanstalk environment
6028	//
6029	// If the domain name for your Elastic Beanstalk environment includes the region
6030	// that you deployed the environment in, you can create an alias record that
6031	// routes traffic to the environment. For example, the domain name my-environment.us-west-2.elasticbeanstalk.com
6032	// is a regionalized domain name.
6033	//
6034	// For environments that were created before early 2016, the domain name doesn't
6035	// include the region. To route traffic to these environments, you must create
6036	// a CNAME record instead of an alias record. Note that you can't create a CNAME
6037	// record for the root domain name. For example, if your domain name is example.com,
6038	// you can create a record that routes traffic for acme.example.com to your
6039	// Elastic Beanstalk environment, but you can't create a record that routes
6040	// traffic for example.com to your Elastic Beanstalk environment.
6041	//
6042	// For Elastic Beanstalk environments that have regionalized subdomains, specify
6043	// the CNAME attribute for the environment. You can use the following methods
6044	// to get the value of the CNAME attribute:
6045	//
6046	//    * AWS Management Console: For information about how to get the value by
6047	//    using the console, see Using Custom Domains with AWS Elastic Beanstalk
6048	//    (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html)
6049	//    in the AWS Elastic Beanstalk Developer Guide.
6050	//
6051	//    * Elastic Beanstalk API: Use the DescribeEnvironments action to get the
6052	//    value of the CNAME attribute. For more information, see DescribeEnvironments
6053	//    (http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html)
6054	//    in the AWS Elastic Beanstalk API Reference.
6055	//
6056	//    * AWS CLI: Use the describe-environments command to get the value of the
6057	//    CNAME attribute. For more information, see describe-environments (http://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html)
6058	//    in the AWS Command Line Interface Reference.
6059	//
6060	// ELB load balancer
6061	//
6062	// Specify the DNS name that is associated with the load balancer. Get the DNS
6063	// name by using the AWS Management Console, the ELB API, or the AWS CLI.
6064	//
6065	//    * AWS Management Console: Go to the EC2 page, choose Load Balancers in
6066	//    the navigation pane, choose the load balancer, choose the Description
6067	//    tab, and get the value of the DNS name field. If you're routing traffic
6068	//    to a Classic Load Balancer, get the value that begins with dualstack.
6069	//    If you're routing traffic to another type of load balancer, get the value
6070	//    that applies to the record type, A or AAAA.
6071	//
6072	//    * Elastic Load Balancing API: Use DescribeLoadBalancers to get the value
6073	//    of DNSName. For more information, see the applicable guide: Classic Load
6074	//    Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html)
6075	//    Application and Network Load Balancers: DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
6076	//
6077	//    * AWS CLI: Use describe-load-balancers to get the value of DNSName. For
6078	//    more information, see the applicable guide: Classic Load Balancers: describe-load-balancers
6079	//    (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html)
6080	//    Application and Network Load Balancers: describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html)
6081	//
6082	// Amazon S3 bucket that is configured as a static website
6083	//
6084	// Specify the domain name of the Amazon S3 website endpoint that you created
6085	// the bucket in, for example, s3-website.us-east-2.amazonaws.com. For more
6086	// information about valid values, see the table Amazon Simple Storage Service
6087	// (S3) Website Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
6088	// in the Amazon Web Services General Reference. For more information about
6089	// using S3 buckets for websites, see Getting Started with Amazon Route 53 (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html)
6090	// in the Amazon Route 53 Developer Guide.
6091	//
6092	// Another Route 53 resource record set
6093	//
6094	// Specify the value of the Name element for a resource record set in the current
6095	// hosted zone.
6096	//
6097	// If you're creating an alias record that has the same name as the hosted zone
6098	// (known as the zone apex), you can't specify the domain name for a record
6099	// for which the value of Type is CNAME. This is because the alias record must
6100	// have the same type as the record that you're routing traffic to, and creating
6101	// a CNAME record for the zone apex isn't supported even for an alias record.
6102	//
6103	// DNSName is a required field
6104	DNSName *string `type:"string" required:"true"`
6105
6106	// Applies only to alias, failover alias, geolocation alias, latency alias,
6107	// and weighted alias resource record sets: When EvaluateTargetHealth is true,
6108	// an alias resource record set inherits the health of the referenced AWS resource,
6109	// such as an ELB load balancer or another resource record set in the hosted
6110	// zone.
6111	//
6112	// Note the following:
6113	//
6114	// CloudFront distributions
6115	//
6116	// You can't set EvaluateTargetHealth to true when the alias target is a CloudFront
6117	// distribution.
6118	//
6119	// Elastic Beanstalk environments that have regionalized subdomains
6120	//
6121	// If you specify an Elastic Beanstalk environment in DNSName and the environment
6122	// contains an ELB load balancer, Elastic Load Balancing routes queries only
6123	// to the healthy Amazon EC2 instances that are registered with the load balancer.
6124	// (An environment automatically contains an ELB load balancer if it includes
6125	// more than one Amazon EC2 instance.) If you set EvaluateTargetHealth to true
6126	// and either no Amazon EC2 instances are healthy or the load balancer itself
6127	// is unhealthy, Route 53 routes queries to other available resources that are
6128	// healthy, if any.
6129	//
6130	// If the environment contains a single Amazon EC2 instance, there are no special
6131	// requirements.
6132	//
6133	// ELB load balancers
6134	//
6135	// Health checking behavior depends on the type of load balancer:
6136	//
6137	//    * Classic Load Balancers: If you specify an ELB Classic Load Balancer
6138	//    in DNSName, Elastic Load Balancing routes queries only to the healthy
6139	//    Amazon EC2 instances that are registered with the load balancer. If you
6140	//    set EvaluateTargetHealth to true and either no EC2 instances are healthy
6141	//    or the load balancer itself is unhealthy, Route 53 routes queries to other
6142	//    resources.
6143	//
6144	//    * Application and Network Load Balancers: If you specify an ELB Application
6145	//    or Network Load Balancer and you set EvaluateTargetHealth to true, Route
6146	//    53 routes queries to the load balancer based on the health of the target
6147	//    groups that are associated with the load balancer: For an Application
6148	//    or Network Load Balancer to be considered healthy, every target group
6149	//    that contains targets must contain at least one healthy target. If any
6150	//    target group contains only unhealthy targets, the load balancer is considered
6151	//    unhealthy, and Route 53 routes queries to other resources. A target group
6152	//    that has no registered targets is considered unhealthy.
6153	//
6154	// When you create a load balancer, you configure settings for Elastic Load
6155	// Balancing health checks; they're not Route 53 health checks, but they perform
6156	// a similar function. Do not create Route 53 health checks for the EC2 instances
6157	// that you register with an ELB load balancer.
6158	//
6159	// S3 buckets
6160	//
6161	// There are no special requirements for setting EvaluateTargetHealth to true
6162	// when the alias target is an S3 bucket.
6163	//
6164	// Other records in the same hosted zone
6165	//
6166	// If the AWS resource that you specify in DNSName is a record or a group of
6167	// records (for example, a group of weighted records) but is not another alias
6168	// record, we recommend that you associate a health check with all of the records
6169	// in the alias target. For more information, see What Happens When You Omit
6170	// Health Checks? (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting)
6171	// in the Amazon Route 53 Developer Guide.
6172	//
6173	// For more information and examples, see Amazon Route 53 Health Checks and
6174	// DNS Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)
6175	// in the Amazon Route 53 Developer Guide.
6176	//
6177	// EvaluateTargetHealth is a required field
6178	EvaluateTargetHealth *bool `type:"boolean" required:"true"`
6179
6180	// Alias resource records sets only: The value used depends on where you want
6181	// to route traffic:
6182	//
6183	// Amazon API Gateway custom regional APIs and edge-optimized APIs
6184	//
6185	// Specify the hosted zone ID for your API. You can get the applicable value
6186	// using the AWS CLI command get-domain-names (https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html):
6187	//
6188	//    * For regional APIs, specify the value of regionalHostedZoneId.
6189	//
6190	//    * For edge-optimized APIs, specify the value of distributionHostedZoneId.
6191	//
6192	// Amazon Virtual Private Cloud interface VPC endpoint
6193	//
6194	// Specify the hosted zone ID for your interface endpoint. You can get the value
6195	// of HostedZoneId using the AWS CLI command describe-vpc-endpoints (https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html).
6196	//
6197	// CloudFront distribution
6198	//
6199	// Specify Z2FDTNDATAQYW2.
6200	//
6201	// Alias resource record sets for CloudFront can't be created in a private zone.
6202	//
6203	// Elastic Beanstalk environment
6204	//
6205	// Specify the hosted zone ID for the region that you created the environment
6206	// in. The environment must have a regionalized subdomain. For a list of regions
6207	// and the corresponding hosted zone IDs, see AWS Elastic Beanstalk (http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region)
6208	// in the "AWS Regions and Endpoints" chapter of the Amazon Web Services General
6209	// Reference.
6210	//
6211	// ELB load balancer
6212	//
6213	// Specify the value of the hosted zone ID for the load balancer. Use the following
6214	// methods to get the hosted zone ID:
6215	//
6216	//    * Elastic Load Balancing (https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region)
6217	//    table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services
6218	//    General Reference: Use the value that corresponds with the region that
6219	//    you created your load balancer in. Note that there are separate columns
6220	//    for Application and Classic Load Balancers and for Network Load Balancers.
6221	//
6222	//    * AWS Management Console: Go to the Amazon EC2 page, choose Load Balancers
6223	//    in the navigation pane, select the load balancer, and get the value of
6224	//    the Hosted zone field on the Description tab.
6225	//
6226	//    * Elastic Load Balancing API: Use DescribeLoadBalancers to get the applicable
6227	//    value. For more information, see the applicable guide: Classic Load Balancers:
6228	//    Use DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html)
6229	//    to get the value of CanonicalHostedZoneNameId. Application and Network
6230	//    Load Balancers: Use DescribeLoadBalancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
6231	//    to get the value of CanonicalHostedZoneId.
6232	//
6233	//    * AWS CLI: Use describe-load-balancers to get the applicable value. For
6234	//    more information, see the applicable guide: Classic Load Balancers: Use
6235	//    describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html)
6236	//    to get the value of CanonicalHostedZoneNameId. Application and Network
6237	//    Load Balancers: Use describe-load-balancers (http://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html)
6238	//    to get the value of CanonicalHostedZoneId.
6239	//
6240	// An Amazon S3 bucket configured as a static website
6241	//
6242	// Specify the hosted zone ID for the region that you created the bucket in.
6243	// For more information about valid values, see the Amazon Simple Storage Service
6244	// Website Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
6245	// table in the "AWS Regions and Endpoints" chapter of the Amazon Web Services
6246	// General Reference.
6247	//
6248	// Another Route 53 resource record set in your hosted zone
6249	//
6250	// Specify the hosted zone ID of your hosted zone. (An alias resource record
6251	// set can't reference a resource record set in a different hosted zone.)
6252	//
6253	// HostedZoneId is a required field
6254	HostedZoneId *string `type:"string" required:"true"`
6255}
6256
6257// String returns the string representation
6258func (s AliasTarget) String() string {
6259	return awsutil.Prettify(s)
6260}
6261
6262// GoString returns the string representation
6263func (s AliasTarget) GoString() string {
6264	return s.String()
6265}
6266
6267// Validate inspects the fields of the type to determine if they are valid.
6268func (s *AliasTarget) Validate() error {
6269	invalidParams := request.ErrInvalidParams{Context: "AliasTarget"}
6270	if s.DNSName == nil {
6271		invalidParams.Add(request.NewErrParamRequired("DNSName"))
6272	}
6273	if s.EvaluateTargetHealth == nil {
6274		invalidParams.Add(request.NewErrParamRequired("EvaluateTargetHealth"))
6275	}
6276	if s.HostedZoneId == nil {
6277		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
6278	}
6279
6280	if invalidParams.Len() > 0 {
6281		return invalidParams
6282	}
6283	return nil
6284}
6285
6286// SetDNSName sets the DNSName field's value.
6287func (s *AliasTarget) SetDNSName(v string) *AliasTarget {
6288	s.DNSName = &v
6289	return s
6290}
6291
6292// SetEvaluateTargetHealth sets the EvaluateTargetHealth field's value.
6293func (s *AliasTarget) SetEvaluateTargetHealth(v bool) *AliasTarget {
6294	s.EvaluateTargetHealth = &v
6295	return s
6296}
6297
6298// SetHostedZoneId sets the HostedZoneId field's value.
6299func (s *AliasTarget) SetHostedZoneId(v string) *AliasTarget {
6300	s.HostedZoneId = &v
6301	return s
6302}
6303
6304// A complex type that contains information about the request to associate a
6305// VPC with a private hosted zone.
6306type AssociateVPCWithHostedZoneInput struct {
6307	_ struct{} `locationName:"AssociateVPCWithHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6308
6309	// Optional: A comment about the association request.
6310	Comment *string `type:"string"`
6311
6312	// The ID of the private hosted zone that you want to associate an Amazon VPC
6313	// with.
6314	//
6315	// Note that you can't associate a VPC with a hosted zone that doesn't have
6316	// an existing VPC association.
6317	//
6318	// HostedZoneId is a required field
6319	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6320
6321	// A complex type that contains information about the VPC that you want to associate
6322	// with a private hosted zone.
6323	//
6324	// VPC is a required field
6325	VPC *VPC `type:"structure" required:"true"`
6326}
6327
6328// String returns the string representation
6329func (s AssociateVPCWithHostedZoneInput) String() string {
6330	return awsutil.Prettify(s)
6331}
6332
6333// GoString returns the string representation
6334func (s AssociateVPCWithHostedZoneInput) GoString() string {
6335	return s.String()
6336}
6337
6338// Validate inspects the fields of the type to determine if they are valid.
6339func (s *AssociateVPCWithHostedZoneInput) Validate() error {
6340	invalidParams := request.ErrInvalidParams{Context: "AssociateVPCWithHostedZoneInput"}
6341	if s.HostedZoneId == nil {
6342		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
6343	}
6344	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
6345		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
6346	}
6347	if s.VPC == nil {
6348		invalidParams.Add(request.NewErrParamRequired("VPC"))
6349	}
6350	if s.VPC != nil {
6351		if err := s.VPC.Validate(); err != nil {
6352			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
6353		}
6354	}
6355
6356	if invalidParams.Len() > 0 {
6357		return invalidParams
6358	}
6359	return nil
6360}
6361
6362// SetComment sets the Comment field's value.
6363func (s *AssociateVPCWithHostedZoneInput) SetComment(v string) *AssociateVPCWithHostedZoneInput {
6364	s.Comment = &v
6365	return s
6366}
6367
6368// SetHostedZoneId sets the HostedZoneId field's value.
6369func (s *AssociateVPCWithHostedZoneInput) SetHostedZoneId(v string) *AssociateVPCWithHostedZoneInput {
6370	s.HostedZoneId = &v
6371	return s
6372}
6373
6374// SetVPC sets the VPC field's value.
6375func (s *AssociateVPCWithHostedZoneInput) SetVPC(v *VPC) *AssociateVPCWithHostedZoneInput {
6376	s.VPC = v
6377	return s
6378}
6379
6380// A complex type that contains the response information for the AssociateVPCWithHostedZone
6381// request.
6382type AssociateVPCWithHostedZoneOutput struct {
6383	_ struct{} `type:"structure"`
6384
6385	// A complex type that describes the changes made to your hosted zone.
6386	//
6387	// ChangeInfo is a required field
6388	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
6389}
6390
6391// String returns the string representation
6392func (s AssociateVPCWithHostedZoneOutput) String() string {
6393	return awsutil.Prettify(s)
6394}
6395
6396// GoString returns the string representation
6397func (s AssociateVPCWithHostedZoneOutput) GoString() string {
6398	return s.String()
6399}
6400
6401// SetChangeInfo sets the ChangeInfo field's value.
6402func (s *AssociateVPCWithHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *AssociateVPCWithHostedZoneOutput {
6403	s.ChangeInfo = v
6404	return s
6405}
6406
6407// The information for each resource record set that you want to change.
6408type Change struct {
6409	_ struct{} `type:"structure"`
6410
6411	// The action to perform:
6412	//
6413	//    * CREATE: Creates a resource record set that has the specified values.
6414	//
6415	//    * DELETE: Deletes a existing resource record set. To delete the resource
6416	//    record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance
6417	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteTrafficPolicyInstance.html).
6418	//    Amazon Route 53 will delete the resource record set automatically. If
6419	//    you delete the resource record set by using ChangeResourceRecordSets,
6420	//    Route 53 doesn't automatically delete the traffic policy instance, and
6421	//    you'll continue to be charged for it even though it's no longer in use.
6422	//
6423	//    * UPSERT: If a resource record set doesn't already exist, Route 53 creates
6424	//    it. If a resource record set does exist, Route 53 updates it with the
6425	//    values in the request.
6426	//
6427	// Action is a required field
6428	Action *string `type:"string" required:"true" enum:"ChangeAction"`
6429
6430	// Information about the resource record set to create, delete, or update.
6431	//
6432	// ResourceRecordSet is a required field
6433	ResourceRecordSet *ResourceRecordSet `type:"structure" required:"true"`
6434}
6435
6436// String returns the string representation
6437func (s Change) String() string {
6438	return awsutil.Prettify(s)
6439}
6440
6441// GoString returns the string representation
6442func (s Change) GoString() string {
6443	return s.String()
6444}
6445
6446// Validate inspects the fields of the type to determine if they are valid.
6447func (s *Change) Validate() error {
6448	invalidParams := request.ErrInvalidParams{Context: "Change"}
6449	if s.Action == nil {
6450		invalidParams.Add(request.NewErrParamRequired("Action"))
6451	}
6452	if s.ResourceRecordSet == nil {
6453		invalidParams.Add(request.NewErrParamRequired("ResourceRecordSet"))
6454	}
6455	if s.ResourceRecordSet != nil {
6456		if err := s.ResourceRecordSet.Validate(); err != nil {
6457			invalidParams.AddNested("ResourceRecordSet", err.(request.ErrInvalidParams))
6458		}
6459	}
6460
6461	if invalidParams.Len() > 0 {
6462		return invalidParams
6463	}
6464	return nil
6465}
6466
6467// SetAction sets the Action field's value.
6468func (s *Change) SetAction(v string) *Change {
6469	s.Action = &v
6470	return s
6471}
6472
6473// SetResourceRecordSet sets the ResourceRecordSet field's value.
6474func (s *Change) SetResourceRecordSet(v *ResourceRecordSet) *Change {
6475	s.ResourceRecordSet = v
6476	return s
6477}
6478
6479// The information for a change request.
6480type ChangeBatch struct {
6481	_ struct{} `type:"structure"`
6482
6483	// Information about the changes to make to the record sets.
6484	//
6485	// Changes is a required field
6486	Changes []*Change `locationNameList:"Change" min:"1" type:"list" required:"true"`
6487
6488	// Optional: Any comments you want to include about a change batch request.
6489	Comment *string `type:"string"`
6490}
6491
6492// String returns the string representation
6493func (s ChangeBatch) String() string {
6494	return awsutil.Prettify(s)
6495}
6496
6497// GoString returns the string representation
6498func (s ChangeBatch) GoString() string {
6499	return s.String()
6500}
6501
6502// Validate inspects the fields of the type to determine if they are valid.
6503func (s *ChangeBatch) Validate() error {
6504	invalidParams := request.ErrInvalidParams{Context: "ChangeBatch"}
6505	if s.Changes == nil {
6506		invalidParams.Add(request.NewErrParamRequired("Changes"))
6507	}
6508	if s.Changes != nil && len(s.Changes) < 1 {
6509		invalidParams.Add(request.NewErrParamMinLen("Changes", 1))
6510	}
6511	if s.Changes != nil {
6512		for i, v := range s.Changes {
6513			if v == nil {
6514				continue
6515			}
6516			if err := v.Validate(); err != nil {
6517				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Changes", i), err.(request.ErrInvalidParams))
6518			}
6519		}
6520	}
6521
6522	if invalidParams.Len() > 0 {
6523		return invalidParams
6524	}
6525	return nil
6526}
6527
6528// SetChanges sets the Changes field's value.
6529func (s *ChangeBatch) SetChanges(v []*Change) *ChangeBatch {
6530	s.Changes = v
6531	return s
6532}
6533
6534// SetComment sets the Comment field's value.
6535func (s *ChangeBatch) SetComment(v string) *ChangeBatch {
6536	s.Comment = &v
6537	return s
6538}
6539
6540// A complex type that describes change information about changes made to your
6541// hosted zone.
6542type ChangeInfo struct {
6543	_ struct{} `type:"structure"`
6544
6545	// A complex type that describes change information about changes made to your
6546	// hosted zone.
6547	//
6548	// This element contains an ID that you use when performing a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html)
6549	// action to get detailed information about the change.
6550	Comment *string `type:"string"`
6551
6552	// The ID of the request.
6553	//
6554	// Id is a required field
6555	Id *string `type:"string" required:"true"`
6556
6557	// The current state of the request. PENDING indicates that this request has
6558	// not yet been applied to all Amazon Route 53 DNS servers.
6559	//
6560	// Status is a required field
6561	Status *string `type:"string" required:"true" enum:"ChangeStatus"`
6562
6563	// The date and time that the change request was submitted in ISO 8601 format
6564	// (https://en.wikipedia.org/wiki/ISO_8601) and Coordinated Universal Time (UTC).
6565	// For example, the value 2017-03-27T17:48:16.751Z represents March 27, 2017
6566	// at 17:48:16.751 UTC.
6567	//
6568	// SubmittedAt is a required field
6569	SubmittedAt *time.Time `type:"timestamp" required:"true"`
6570}
6571
6572// String returns the string representation
6573func (s ChangeInfo) String() string {
6574	return awsutil.Prettify(s)
6575}
6576
6577// GoString returns the string representation
6578func (s ChangeInfo) GoString() string {
6579	return s.String()
6580}
6581
6582// SetComment sets the Comment field's value.
6583func (s *ChangeInfo) SetComment(v string) *ChangeInfo {
6584	s.Comment = &v
6585	return s
6586}
6587
6588// SetId sets the Id field's value.
6589func (s *ChangeInfo) SetId(v string) *ChangeInfo {
6590	s.Id = &v
6591	return s
6592}
6593
6594// SetStatus sets the Status field's value.
6595func (s *ChangeInfo) SetStatus(v string) *ChangeInfo {
6596	s.Status = &v
6597	return s
6598}
6599
6600// SetSubmittedAt sets the SubmittedAt field's value.
6601func (s *ChangeInfo) SetSubmittedAt(v time.Time) *ChangeInfo {
6602	s.SubmittedAt = &v
6603	return s
6604}
6605
6606// A complex type that contains change information for the resource record set.
6607type ChangeResourceRecordSetsInput struct {
6608	_ struct{} `locationName:"ChangeResourceRecordSetsRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6609
6610	// A complex type that contains an optional comment and the Changes element.
6611	//
6612	// ChangeBatch is a required field
6613	ChangeBatch *ChangeBatch `type:"structure" required:"true"`
6614
6615	// The ID of the hosted zone that contains the resource record sets that you
6616	// want to change.
6617	//
6618	// HostedZoneId is a required field
6619	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6620}
6621
6622// String returns the string representation
6623func (s ChangeResourceRecordSetsInput) String() string {
6624	return awsutil.Prettify(s)
6625}
6626
6627// GoString returns the string representation
6628func (s ChangeResourceRecordSetsInput) GoString() string {
6629	return s.String()
6630}
6631
6632// Validate inspects the fields of the type to determine if they are valid.
6633func (s *ChangeResourceRecordSetsInput) Validate() error {
6634	invalidParams := request.ErrInvalidParams{Context: "ChangeResourceRecordSetsInput"}
6635	if s.ChangeBatch == nil {
6636		invalidParams.Add(request.NewErrParamRequired("ChangeBatch"))
6637	}
6638	if s.HostedZoneId == nil {
6639		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
6640	}
6641	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
6642		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
6643	}
6644	if s.ChangeBatch != nil {
6645		if err := s.ChangeBatch.Validate(); err != nil {
6646			invalidParams.AddNested("ChangeBatch", err.(request.ErrInvalidParams))
6647		}
6648	}
6649
6650	if invalidParams.Len() > 0 {
6651		return invalidParams
6652	}
6653	return nil
6654}
6655
6656// SetChangeBatch sets the ChangeBatch field's value.
6657func (s *ChangeResourceRecordSetsInput) SetChangeBatch(v *ChangeBatch) *ChangeResourceRecordSetsInput {
6658	s.ChangeBatch = v
6659	return s
6660}
6661
6662// SetHostedZoneId sets the HostedZoneId field's value.
6663func (s *ChangeResourceRecordSetsInput) SetHostedZoneId(v string) *ChangeResourceRecordSetsInput {
6664	s.HostedZoneId = &v
6665	return s
6666}
6667
6668// A complex type containing the response for the request.
6669type ChangeResourceRecordSetsOutput struct {
6670	_ struct{} `type:"structure"`
6671
6672	// A complex type that contains information about changes made to your hosted
6673	// zone.
6674	//
6675	// This element contains an ID that you use when performing a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html)
6676	// action to get detailed information about the change.
6677	//
6678	// ChangeInfo is a required field
6679	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
6680}
6681
6682// String returns the string representation
6683func (s ChangeResourceRecordSetsOutput) String() string {
6684	return awsutil.Prettify(s)
6685}
6686
6687// GoString returns the string representation
6688func (s ChangeResourceRecordSetsOutput) GoString() string {
6689	return s.String()
6690}
6691
6692// SetChangeInfo sets the ChangeInfo field's value.
6693func (s *ChangeResourceRecordSetsOutput) SetChangeInfo(v *ChangeInfo) *ChangeResourceRecordSetsOutput {
6694	s.ChangeInfo = v
6695	return s
6696}
6697
6698// A complex type that contains information about the tags that you want to
6699// add, edit, or delete.
6700type ChangeTagsForResourceInput struct {
6701	_ struct{} `locationName:"ChangeTagsForResourceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6702
6703	// A complex type that contains a list of the tags that you want to add to the
6704	// specified health check or hosted zone and/or the tags that you want to edit
6705	// Value for.
6706	//
6707	// You can add a maximum of 10 tags to a health check or a hosted zone.
6708	AddTags []*Tag `locationNameList:"Tag" min:"1" type:"list"`
6709
6710	// A complex type that contains a list of the tags that you want to delete from
6711	// the specified health check or hosted zone. You can specify up to 10 keys.
6712	RemoveTagKeys []*string `locationNameList:"Key" min:"1" type:"list"`
6713
6714	// The ID of the resource for which you want to add, change, or delete tags.
6715	//
6716	// ResourceId is a required field
6717	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
6718
6719	// The type of the resource.
6720	//
6721	//    * The resource type for health checks is healthcheck.
6722	//
6723	//    * The resource type for hosted zones is hostedzone.
6724	//
6725	// ResourceType is a required field
6726	ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"TagResourceType"`
6727}
6728
6729// String returns the string representation
6730func (s ChangeTagsForResourceInput) String() string {
6731	return awsutil.Prettify(s)
6732}
6733
6734// GoString returns the string representation
6735func (s ChangeTagsForResourceInput) GoString() string {
6736	return s.String()
6737}
6738
6739// Validate inspects the fields of the type to determine if they are valid.
6740func (s *ChangeTagsForResourceInput) Validate() error {
6741	invalidParams := request.ErrInvalidParams{Context: "ChangeTagsForResourceInput"}
6742	if s.AddTags != nil && len(s.AddTags) < 1 {
6743		invalidParams.Add(request.NewErrParamMinLen("AddTags", 1))
6744	}
6745	if s.RemoveTagKeys != nil && len(s.RemoveTagKeys) < 1 {
6746		invalidParams.Add(request.NewErrParamMinLen("RemoveTagKeys", 1))
6747	}
6748	if s.ResourceId == nil {
6749		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6750	}
6751	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6752		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6753	}
6754	if s.ResourceType == nil {
6755		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
6756	}
6757	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
6758		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
6759	}
6760
6761	if invalidParams.Len() > 0 {
6762		return invalidParams
6763	}
6764	return nil
6765}
6766
6767// SetAddTags sets the AddTags field's value.
6768func (s *ChangeTagsForResourceInput) SetAddTags(v []*Tag) *ChangeTagsForResourceInput {
6769	s.AddTags = v
6770	return s
6771}
6772
6773// SetRemoveTagKeys sets the RemoveTagKeys field's value.
6774func (s *ChangeTagsForResourceInput) SetRemoveTagKeys(v []*string) *ChangeTagsForResourceInput {
6775	s.RemoveTagKeys = v
6776	return s
6777}
6778
6779// SetResourceId sets the ResourceId field's value.
6780func (s *ChangeTagsForResourceInput) SetResourceId(v string) *ChangeTagsForResourceInput {
6781	s.ResourceId = &v
6782	return s
6783}
6784
6785// SetResourceType sets the ResourceType field's value.
6786func (s *ChangeTagsForResourceInput) SetResourceType(v string) *ChangeTagsForResourceInput {
6787	s.ResourceType = &v
6788	return s
6789}
6790
6791// Empty response for the request.
6792type ChangeTagsForResourceOutput struct {
6793	_ struct{} `type:"structure"`
6794}
6795
6796// String returns the string representation
6797func (s ChangeTagsForResourceOutput) String() string {
6798	return awsutil.Prettify(s)
6799}
6800
6801// GoString returns the string representation
6802func (s ChangeTagsForResourceOutput) GoString() string {
6803	return s.String()
6804}
6805
6806// A complex type that contains information about the CloudWatch alarm that
6807// Amazon Route 53 is monitoring for this health check.
6808type CloudWatchAlarmConfiguration struct {
6809	_ struct{} `type:"structure"`
6810
6811	// For the metric that the CloudWatch alarm is associated with, the arithmetic
6812	// operation that is used for the comparison.
6813	//
6814	// ComparisonOperator is a required field
6815	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
6816
6817	// For the metric that the CloudWatch alarm is associated with, a complex type
6818	// that contains information about the dimensions for the metric. For information,
6819	// see Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html)
6820	// in the Amazon CloudWatch User Guide.
6821	Dimensions []*Dimension `locationNameList:"Dimension" type:"list"`
6822
6823	// For the metric that the CloudWatch alarm is associated with, the number of
6824	// periods that the metric is compared to the threshold.
6825	//
6826	// EvaluationPeriods is a required field
6827	EvaluationPeriods *int64 `min:"1" type:"integer" required:"true"`
6828
6829	// The name of the CloudWatch metric that the alarm is associated with.
6830	//
6831	// MetricName is a required field
6832	MetricName *string `min:"1" type:"string" required:"true"`
6833
6834	// The namespace of the metric that the alarm is associated with. For more information,
6835	// see Amazon CloudWatch Namespaces, Dimensions, and Metrics Reference (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html)
6836	// in the Amazon CloudWatch User Guide.
6837	//
6838	// Namespace is a required field
6839	Namespace *string `min:"1" type:"string" required:"true"`
6840
6841	// For the metric that the CloudWatch alarm is associated with, the duration
6842	// of one evaluation period in seconds.
6843	//
6844	// Period is a required field
6845	Period *int64 `min:"60" type:"integer" required:"true"`
6846
6847	// For the metric that the CloudWatch alarm is associated with, the statistic
6848	// that is applied to the metric.
6849	//
6850	// Statistic is a required field
6851	Statistic *string `type:"string" required:"true" enum:"Statistic"`
6852
6853	// For the metric that the CloudWatch alarm is associated with, the value the
6854	// metric is compared with.
6855	//
6856	// Threshold is a required field
6857	Threshold *float64 `type:"double" required:"true"`
6858}
6859
6860// String returns the string representation
6861func (s CloudWatchAlarmConfiguration) String() string {
6862	return awsutil.Prettify(s)
6863}
6864
6865// GoString returns the string representation
6866func (s CloudWatchAlarmConfiguration) GoString() string {
6867	return s.String()
6868}
6869
6870// SetComparisonOperator sets the ComparisonOperator field's value.
6871func (s *CloudWatchAlarmConfiguration) SetComparisonOperator(v string) *CloudWatchAlarmConfiguration {
6872	s.ComparisonOperator = &v
6873	return s
6874}
6875
6876// SetDimensions sets the Dimensions field's value.
6877func (s *CloudWatchAlarmConfiguration) SetDimensions(v []*Dimension) *CloudWatchAlarmConfiguration {
6878	s.Dimensions = v
6879	return s
6880}
6881
6882// SetEvaluationPeriods sets the EvaluationPeriods field's value.
6883func (s *CloudWatchAlarmConfiguration) SetEvaluationPeriods(v int64) *CloudWatchAlarmConfiguration {
6884	s.EvaluationPeriods = &v
6885	return s
6886}
6887
6888// SetMetricName sets the MetricName field's value.
6889func (s *CloudWatchAlarmConfiguration) SetMetricName(v string) *CloudWatchAlarmConfiguration {
6890	s.MetricName = &v
6891	return s
6892}
6893
6894// SetNamespace sets the Namespace field's value.
6895func (s *CloudWatchAlarmConfiguration) SetNamespace(v string) *CloudWatchAlarmConfiguration {
6896	s.Namespace = &v
6897	return s
6898}
6899
6900// SetPeriod sets the Period field's value.
6901func (s *CloudWatchAlarmConfiguration) SetPeriod(v int64) *CloudWatchAlarmConfiguration {
6902	s.Period = &v
6903	return s
6904}
6905
6906// SetStatistic sets the Statistic field's value.
6907func (s *CloudWatchAlarmConfiguration) SetStatistic(v string) *CloudWatchAlarmConfiguration {
6908	s.Statistic = &v
6909	return s
6910}
6911
6912// SetThreshold sets the Threshold field's value.
6913func (s *CloudWatchAlarmConfiguration) SetThreshold(v float64) *CloudWatchAlarmConfiguration {
6914	s.Threshold = &v
6915	return s
6916}
6917
6918// A complex type that contains the health check request information.
6919type CreateHealthCheckInput struct {
6920	_ struct{} `locationName:"CreateHealthCheckRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
6921
6922	// A unique string that identifies the request and that allows you to retry
6923	// a failed CreateHealthCheck request without the risk of creating two identical
6924	// health checks:
6925	//
6926	//    * If you send a CreateHealthCheck request with the same CallerReference
6927	//    and settings as a previous request, and if the health check doesn't exist,
6928	//    Amazon Route 53 creates the health check. If the health check does exist,
6929	//    Route 53 returns the settings for the existing health check.
6930	//
6931	//    * If you send a CreateHealthCheck request with the same CallerReference
6932	//    as a deleted health check, regardless of the settings, Route 53 returns
6933	//    a HealthCheckAlreadyExists error.
6934	//
6935	//    * If you send a CreateHealthCheck request with the same CallerReference
6936	//    as an existing health check but with different settings, Route 53 returns
6937	//    a HealthCheckAlreadyExists error.
6938	//
6939	//    * If you send a CreateHealthCheck request with a unique CallerReference
6940	//    but settings identical to an existing health check, Route 53 creates the
6941	//    health check.
6942	//
6943	// CallerReference is a required field
6944	CallerReference *string `min:"1" type:"string" required:"true"`
6945
6946	// A complex type that contains settings for a new health check.
6947	//
6948	// HealthCheckConfig is a required field
6949	HealthCheckConfig *HealthCheckConfig `type:"structure" required:"true"`
6950}
6951
6952// String returns the string representation
6953func (s CreateHealthCheckInput) String() string {
6954	return awsutil.Prettify(s)
6955}
6956
6957// GoString returns the string representation
6958func (s CreateHealthCheckInput) GoString() string {
6959	return s.String()
6960}
6961
6962// Validate inspects the fields of the type to determine if they are valid.
6963func (s *CreateHealthCheckInput) Validate() error {
6964	invalidParams := request.ErrInvalidParams{Context: "CreateHealthCheckInput"}
6965	if s.CallerReference == nil {
6966		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
6967	}
6968	if s.CallerReference != nil && len(*s.CallerReference) < 1 {
6969		invalidParams.Add(request.NewErrParamMinLen("CallerReference", 1))
6970	}
6971	if s.HealthCheckConfig == nil {
6972		invalidParams.Add(request.NewErrParamRequired("HealthCheckConfig"))
6973	}
6974	if s.HealthCheckConfig != nil {
6975		if err := s.HealthCheckConfig.Validate(); err != nil {
6976			invalidParams.AddNested("HealthCheckConfig", err.(request.ErrInvalidParams))
6977		}
6978	}
6979
6980	if invalidParams.Len() > 0 {
6981		return invalidParams
6982	}
6983	return nil
6984}
6985
6986// SetCallerReference sets the CallerReference field's value.
6987func (s *CreateHealthCheckInput) SetCallerReference(v string) *CreateHealthCheckInput {
6988	s.CallerReference = &v
6989	return s
6990}
6991
6992// SetHealthCheckConfig sets the HealthCheckConfig field's value.
6993func (s *CreateHealthCheckInput) SetHealthCheckConfig(v *HealthCheckConfig) *CreateHealthCheckInput {
6994	s.HealthCheckConfig = v
6995	return s
6996}
6997
6998// A complex type containing the response information for the new health check.
6999type CreateHealthCheckOutput struct {
7000	_ struct{} `type:"structure"`
7001
7002	// A complex type that contains identifying information about the health check.
7003	//
7004	// HealthCheck is a required field
7005	HealthCheck *HealthCheck `type:"structure" required:"true"`
7006
7007	// The unique URL representing the new health check.
7008	//
7009	// Location is a required field
7010	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7011}
7012
7013// String returns the string representation
7014func (s CreateHealthCheckOutput) String() string {
7015	return awsutil.Prettify(s)
7016}
7017
7018// GoString returns the string representation
7019func (s CreateHealthCheckOutput) GoString() string {
7020	return s.String()
7021}
7022
7023// SetHealthCheck sets the HealthCheck field's value.
7024func (s *CreateHealthCheckOutput) SetHealthCheck(v *HealthCheck) *CreateHealthCheckOutput {
7025	s.HealthCheck = v
7026	return s
7027}
7028
7029// SetLocation sets the Location field's value.
7030func (s *CreateHealthCheckOutput) SetLocation(v string) *CreateHealthCheckOutput {
7031	s.Location = &v
7032	return s
7033}
7034
7035// A complex type that contains information about the request to create a public
7036// or private hosted zone.
7037type CreateHostedZoneInput struct {
7038	_ struct{} `locationName:"CreateHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7039
7040	// A unique string that identifies the request and that allows failed CreateHostedZone
7041	// requests to be retried without the risk of executing the operation twice.
7042	// You must use a unique CallerReference string every time you submit a CreateHostedZone
7043	// request. CallerReference can be any unique string, for example, a date/time
7044	// stamp.
7045	//
7046	// CallerReference is a required field
7047	CallerReference *string `min:"1" type:"string" required:"true"`
7048
7049	// If you want to associate a reusable delegation set with this hosted zone,
7050	// the ID that Amazon Route 53 assigned to the reusable delegation set when
7051	// you created it. For more information about reusable delegation sets, see
7052	// CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html).
7053	DelegationSetId *string `type:"string"`
7054
7055	// (Optional) A complex type that contains the following optional values:
7056	//
7057	//    * For public and private hosted zones, an optional comment
7058	//
7059	//    * For private hosted zones, an optional PrivateZone element
7060	//
7061	// If you don't specify a comment or the PrivateZone element, omit HostedZoneConfig
7062	// and the other elements.
7063	HostedZoneConfig *HostedZoneConfig `type:"structure"`
7064
7065	// The name of the domain. Specify a fully qualified domain name, for example,
7066	// www.example.com. The trailing dot is optional; Amazon Route 53 assumes that
7067	// the domain name is fully qualified. This means that Route 53 treats www.example.com
7068	// (without a trailing dot) and www.example.com. (with a trailing dot) as identical.
7069	//
7070	// If you're creating a public hosted zone, this is the name you have registered
7071	// with your DNS registrar. If your domain name is registered with a registrar
7072	// other than Route 53, change the name servers for your domain to the set of
7073	// NameServers that CreateHostedZone returns in DelegationSet.
7074	//
7075	// Name is a required field
7076	Name *string `type:"string" required:"true"`
7077
7078	// (Private hosted zones only) A complex type that contains information about
7079	// the Amazon VPC that you're associating with this hosted zone.
7080	//
7081	// You can specify only one Amazon VPC when you create a private hosted zone.
7082	// To associate additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone
7083	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html)
7084	// after you create a hosted zone.
7085	VPC *VPC `type:"structure"`
7086}
7087
7088// String returns the string representation
7089func (s CreateHostedZoneInput) String() string {
7090	return awsutil.Prettify(s)
7091}
7092
7093// GoString returns the string representation
7094func (s CreateHostedZoneInput) GoString() string {
7095	return s.String()
7096}
7097
7098// Validate inspects the fields of the type to determine if they are valid.
7099func (s *CreateHostedZoneInput) Validate() error {
7100	invalidParams := request.ErrInvalidParams{Context: "CreateHostedZoneInput"}
7101	if s.CallerReference == nil {
7102		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
7103	}
7104	if s.CallerReference != nil && len(*s.CallerReference) < 1 {
7105		invalidParams.Add(request.NewErrParamMinLen("CallerReference", 1))
7106	}
7107	if s.Name == nil {
7108		invalidParams.Add(request.NewErrParamRequired("Name"))
7109	}
7110	if s.VPC != nil {
7111		if err := s.VPC.Validate(); err != nil {
7112			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
7113		}
7114	}
7115
7116	if invalidParams.Len() > 0 {
7117		return invalidParams
7118	}
7119	return nil
7120}
7121
7122// SetCallerReference sets the CallerReference field's value.
7123func (s *CreateHostedZoneInput) SetCallerReference(v string) *CreateHostedZoneInput {
7124	s.CallerReference = &v
7125	return s
7126}
7127
7128// SetDelegationSetId sets the DelegationSetId field's value.
7129func (s *CreateHostedZoneInput) SetDelegationSetId(v string) *CreateHostedZoneInput {
7130	s.DelegationSetId = &v
7131	return s
7132}
7133
7134// SetHostedZoneConfig sets the HostedZoneConfig field's value.
7135func (s *CreateHostedZoneInput) SetHostedZoneConfig(v *HostedZoneConfig) *CreateHostedZoneInput {
7136	s.HostedZoneConfig = v
7137	return s
7138}
7139
7140// SetName sets the Name field's value.
7141func (s *CreateHostedZoneInput) SetName(v string) *CreateHostedZoneInput {
7142	s.Name = &v
7143	return s
7144}
7145
7146// SetVPC sets the VPC field's value.
7147func (s *CreateHostedZoneInput) SetVPC(v *VPC) *CreateHostedZoneInput {
7148	s.VPC = v
7149	return s
7150}
7151
7152// A complex type containing the response information for the hosted zone.
7153type CreateHostedZoneOutput struct {
7154	_ struct{} `type:"structure"`
7155
7156	// A complex type that contains information about the CreateHostedZone request.
7157	//
7158	// ChangeInfo is a required field
7159	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
7160
7161	// A complex type that describes the name servers for this hosted zone.
7162	//
7163	// DelegationSet is a required field
7164	DelegationSet *DelegationSet `type:"structure" required:"true"`
7165
7166	// A complex type that contains general information about the hosted zone.
7167	//
7168	// HostedZone is a required field
7169	HostedZone *HostedZone `type:"structure" required:"true"`
7170
7171	// The unique URL representing the new hosted zone.
7172	//
7173	// Location is a required field
7174	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7175
7176	// A complex type that contains information about an Amazon VPC that you associated
7177	// with this hosted zone.
7178	VPC *VPC `type:"structure"`
7179}
7180
7181// String returns the string representation
7182func (s CreateHostedZoneOutput) String() string {
7183	return awsutil.Prettify(s)
7184}
7185
7186// GoString returns the string representation
7187func (s CreateHostedZoneOutput) GoString() string {
7188	return s.String()
7189}
7190
7191// SetChangeInfo sets the ChangeInfo field's value.
7192func (s *CreateHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *CreateHostedZoneOutput {
7193	s.ChangeInfo = v
7194	return s
7195}
7196
7197// SetDelegationSet sets the DelegationSet field's value.
7198func (s *CreateHostedZoneOutput) SetDelegationSet(v *DelegationSet) *CreateHostedZoneOutput {
7199	s.DelegationSet = v
7200	return s
7201}
7202
7203// SetHostedZone sets the HostedZone field's value.
7204func (s *CreateHostedZoneOutput) SetHostedZone(v *HostedZone) *CreateHostedZoneOutput {
7205	s.HostedZone = v
7206	return s
7207}
7208
7209// SetLocation sets the Location field's value.
7210func (s *CreateHostedZoneOutput) SetLocation(v string) *CreateHostedZoneOutput {
7211	s.Location = &v
7212	return s
7213}
7214
7215// SetVPC sets the VPC field's value.
7216func (s *CreateHostedZoneOutput) SetVPC(v *VPC) *CreateHostedZoneOutput {
7217	s.VPC = v
7218	return s
7219}
7220
7221type CreateQueryLoggingConfigInput struct {
7222	_ struct{} `locationName:"CreateQueryLoggingConfigRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7223
7224	// The Amazon Resource Name (ARN) for the log group that you want to Amazon
7225	// Route 53 to send query logs to. This is the format of the ARN:
7226	//
7227	// arn:aws:logs:region:account-id:log-group:log_group_name
7228	//
7229	// To get the ARN for a log group, you can use the CloudWatch console, the DescribeLogGroups
7230	// (https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DescribeLogGroups.html)
7231	// API action, the describe-log-groups (https://docs.aws.amazon.com/cli/latest/reference/logs/describe-log-groups.html)
7232	// command, or the applicable command in one of the AWS SDKs.
7233	//
7234	// CloudWatchLogsLogGroupArn is a required field
7235	CloudWatchLogsLogGroupArn *string `type:"string" required:"true"`
7236
7237	// The ID of the hosted zone that you want to log queries for. You can log queries
7238	// only for public hosted zones.
7239	//
7240	// HostedZoneId is a required field
7241	HostedZoneId *string `type:"string" required:"true"`
7242}
7243
7244// String returns the string representation
7245func (s CreateQueryLoggingConfigInput) String() string {
7246	return awsutil.Prettify(s)
7247}
7248
7249// GoString returns the string representation
7250func (s CreateQueryLoggingConfigInput) GoString() string {
7251	return s.String()
7252}
7253
7254// Validate inspects the fields of the type to determine if they are valid.
7255func (s *CreateQueryLoggingConfigInput) Validate() error {
7256	invalidParams := request.ErrInvalidParams{Context: "CreateQueryLoggingConfigInput"}
7257	if s.CloudWatchLogsLogGroupArn == nil {
7258		invalidParams.Add(request.NewErrParamRequired("CloudWatchLogsLogGroupArn"))
7259	}
7260	if s.HostedZoneId == nil {
7261		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
7262	}
7263
7264	if invalidParams.Len() > 0 {
7265		return invalidParams
7266	}
7267	return nil
7268}
7269
7270// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value.
7271func (s *CreateQueryLoggingConfigInput) SetCloudWatchLogsLogGroupArn(v string) *CreateQueryLoggingConfigInput {
7272	s.CloudWatchLogsLogGroupArn = &v
7273	return s
7274}
7275
7276// SetHostedZoneId sets the HostedZoneId field's value.
7277func (s *CreateQueryLoggingConfigInput) SetHostedZoneId(v string) *CreateQueryLoggingConfigInput {
7278	s.HostedZoneId = &v
7279	return s
7280}
7281
7282type CreateQueryLoggingConfigOutput struct {
7283	_ struct{} `type:"structure"`
7284
7285	// The unique URL representing the new query logging configuration.
7286	//
7287	// Location is a required field
7288	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7289
7290	// A complex type that contains the ID for a query logging configuration, the
7291	// ID of the hosted zone that you want to log queries for, and the ARN for the
7292	// log group that you want Amazon Route 53 to send query logs to.
7293	//
7294	// QueryLoggingConfig is a required field
7295	QueryLoggingConfig *QueryLoggingConfig `type:"structure" required:"true"`
7296}
7297
7298// String returns the string representation
7299func (s CreateQueryLoggingConfigOutput) String() string {
7300	return awsutil.Prettify(s)
7301}
7302
7303// GoString returns the string representation
7304func (s CreateQueryLoggingConfigOutput) GoString() string {
7305	return s.String()
7306}
7307
7308// SetLocation sets the Location field's value.
7309func (s *CreateQueryLoggingConfigOutput) SetLocation(v string) *CreateQueryLoggingConfigOutput {
7310	s.Location = &v
7311	return s
7312}
7313
7314// SetQueryLoggingConfig sets the QueryLoggingConfig field's value.
7315func (s *CreateQueryLoggingConfigOutput) SetQueryLoggingConfig(v *QueryLoggingConfig) *CreateQueryLoggingConfigOutput {
7316	s.QueryLoggingConfig = v
7317	return s
7318}
7319
7320type CreateReusableDelegationSetInput struct {
7321	_ struct{} `locationName:"CreateReusableDelegationSetRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7322
7323	// A unique string that identifies the request, and that allows you to retry
7324	// failed CreateReusableDelegationSet requests without the risk of executing
7325	// the operation twice. You must use a unique CallerReference string every time
7326	// you submit a CreateReusableDelegationSet request. CallerReference can be
7327	// any unique string, for example a date/time stamp.
7328	//
7329	// CallerReference is a required field
7330	CallerReference *string `min:"1" type:"string" required:"true"`
7331
7332	// If you want to mark the delegation set for an existing hosted zone as reusable,
7333	// the ID for that hosted zone.
7334	HostedZoneId *string `type:"string"`
7335}
7336
7337// String returns the string representation
7338func (s CreateReusableDelegationSetInput) String() string {
7339	return awsutil.Prettify(s)
7340}
7341
7342// GoString returns the string representation
7343func (s CreateReusableDelegationSetInput) GoString() string {
7344	return s.String()
7345}
7346
7347// Validate inspects the fields of the type to determine if they are valid.
7348func (s *CreateReusableDelegationSetInput) Validate() error {
7349	invalidParams := request.ErrInvalidParams{Context: "CreateReusableDelegationSetInput"}
7350	if s.CallerReference == nil {
7351		invalidParams.Add(request.NewErrParamRequired("CallerReference"))
7352	}
7353	if s.CallerReference != nil && len(*s.CallerReference) < 1 {
7354		invalidParams.Add(request.NewErrParamMinLen("CallerReference", 1))
7355	}
7356
7357	if invalidParams.Len() > 0 {
7358		return invalidParams
7359	}
7360	return nil
7361}
7362
7363// SetCallerReference sets the CallerReference field's value.
7364func (s *CreateReusableDelegationSetInput) SetCallerReference(v string) *CreateReusableDelegationSetInput {
7365	s.CallerReference = &v
7366	return s
7367}
7368
7369// SetHostedZoneId sets the HostedZoneId field's value.
7370func (s *CreateReusableDelegationSetInput) SetHostedZoneId(v string) *CreateReusableDelegationSetInput {
7371	s.HostedZoneId = &v
7372	return s
7373}
7374
7375type CreateReusableDelegationSetOutput struct {
7376	_ struct{} `type:"structure"`
7377
7378	// A complex type that contains name server information.
7379	//
7380	// DelegationSet is a required field
7381	DelegationSet *DelegationSet `type:"structure" required:"true"`
7382
7383	// The unique URL representing the new reusable delegation set.
7384	//
7385	// Location is a required field
7386	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7387}
7388
7389// String returns the string representation
7390func (s CreateReusableDelegationSetOutput) String() string {
7391	return awsutil.Prettify(s)
7392}
7393
7394// GoString returns the string representation
7395func (s CreateReusableDelegationSetOutput) GoString() string {
7396	return s.String()
7397}
7398
7399// SetDelegationSet sets the DelegationSet field's value.
7400func (s *CreateReusableDelegationSetOutput) SetDelegationSet(v *DelegationSet) *CreateReusableDelegationSetOutput {
7401	s.DelegationSet = v
7402	return s
7403}
7404
7405// SetLocation sets the Location field's value.
7406func (s *CreateReusableDelegationSetOutput) SetLocation(v string) *CreateReusableDelegationSetOutput {
7407	s.Location = &v
7408	return s
7409}
7410
7411// A complex type that contains information about the traffic policy that you
7412// want to create.
7413type CreateTrafficPolicyInput struct {
7414	_ struct{} `locationName:"CreateTrafficPolicyRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7415
7416	// (Optional) Any comments that you want to include about the traffic policy.
7417	Comment *string `type:"string"`
7418
7419	// The definition of this traffic policy in JSON format. For more information,
7420	// see Traffic Policy Document Format (https://docs.aws.amazon.com/Route53/latest/APIReference/api-policies-traffic-policy-document-format.html).
7421	//
7422	// Document is a required field
7423	Document *string `type:"string" required:"true"`
7424
7425	// The name of the traffic policy.
7426	//
7427	// Name is a required field
7428	Name *string `type:"string" required:"true"`
7429}
7430
7431// String returns the string representation
7432func (s CreateTrafficPolicyInput) String() string {
7433	return awsutil.Prettify(s)
7434}
7435
7436// GoString returns the string representation
7437func (s CreateTrafficPolicyInput) GoString() string {
7438	return s.String()
7439}
7440
7441// Validate inspects the fields of the type to determine if they are valid.
7442func (s *CreateTrafficPolicyInput) Validate() error {
7443	invalidParams := request.ErrInvalidParams{Context: "CreateTrafficPolicyInput"}
7444	if s.Document == nil {
7445		invalidParams.Add(request.NewErrParamRequired("Document"))
7446	}
7447	if s.Name == nil {
7448		invalidParams.Add(request.NewErrParamRequired("Name"))
7449	}
7450
7451	if invalidParams.Len() > 0 {
7452		return invalidParams
7453	}
7454	return nil
7455}
7456
7457// SetComment sets the Comment field's value.
7458func (s *CreateTrafficPolicyInput) SetComment(v string) *CreateTrafficPolicyInput {
7459	s.Comment = &v
7460	return s
7461}
7462
7463// SetDocument sets the Document field's value.
7464func (s *CreateTrafficPolicyInput) SetDocument(v string) *CreateTrafficPolicyInput {
7465	s.Document = &v
7466	return s
7467}
7468
7469// SetName sets the Name field's value.
7470func (s *CreateTrafficPolicyInput) SetName(v string) *CreateTrafficPolicyInput {
7471	s.Name = &v
7472	return s
7473}
7474
7475// A complex type that contains information about the resource record sets that
7476// you want to create based on a specified traffic policy.
7477type CreateTrafficPolicyInstanceInput struct {
7478	_ struct{} `locationName:"CreateTrafficPolicyInstanceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7479
7480	// The ID of the hosted zone that you want Amazon Route 53 to create resource
7481	// record sets in by using the configuration in a traffic policy.
7482	//
7483	// HostedZoneId is a required field
7484	HostedZoneId *string `type:"string" required:"true"`
7485
7486	// The domain name (such as example.com) or subdomain name (such as www.example.com)
7487	// for which Amazon Route 53 responds to DNS queries by using the resource record
7488	// sets that Route 53 creates for this traffic policy instance.
7489	//
7490	// Name is a required field
7491	Name *string `type:"string" required:"true"`
7492
7493	// (Optional) The TTL that you want Amazon Route 53 to assign to all of the
7494	// resource record sets that it creates in the specified hosted zone.
7495	//
7496	// TTL is a required field
7497	TTL *int64 `type:"long" required:"true"`
7498
7499	// The ID of the traffic policy that you want to use to create resource record
7500	// sets in the specified hosted zone.
7501	//
7502	// TrafficPolicyId is a required field
7503	TrafficPolicyId *string `min:"1" type:"string" required:"true"`
7504
7505	// The version of the traffic policy that you want to use to create resource
7506	// record sets in the specified hosted zone.
7507	//
7508	// TrafficPolicyVersion is a required field
7509	TrafficPolicyVersion *int64 `min:"1" type:"integer" required:"true"`
7510}
7511
7512// String returns the string representation
7513func (s CreateTrafficPolicyInstanceInput) String() string {
7514	return awsutil.Prettify(s)
7515}
7516
7517// GoString returns the string representation
7518func (s CreateTrafficPolicyInstanceInput) GoString() string {
7519	return s.String()
7520}
7521
7522// Validate inspects the fields of the type to determine if they are valid.
7523func (s *CreateTrafficPolicyInstanceInput) Validate() error {
7524	invalidParams := request.ErrInvalidParams{Context: "CreateTrafficPolicyInstanceInput"}
7525	if s.HostedZoneId == nil {
7526		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
7527	}
7528	if s.Name == nil {
7529		invalidParams.Add(request.NewErrParamRequired("Name"))
7530	}
7531	if s.TTL == nil {
7532		invalidParams.Add(request.NewErrParamRequired("TTL"))
7533	}
7534	if s.TrafficPolicyId == nil {
7535		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyId"))
7536	}
7537	if s.TrafficPolicyId != nil && len(*s.TrafficPolicyId) < 1 {
7538		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyId", 1))
7539	}
7540	if s.TrafficPolicyVersion == nil {
7541		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyVersion"))
7542	}
7543	if s.TrafficPolicyVersion != nil && *s.TrafficPolicyVersion < 1 {
7544		invalidParams.Add(request.NewErrParamMinValue("TrafficPolicyVersion", 1))
7545	}
7546
7547	if invalidParams.Len() > 0 {
7548		return invalidParams
7549	}
7550	return nil
7551}
7552
7553// SetHostedZoneId sets the HostedZoneId field's value.
7554func (s *CreateTrafficPolicyInstanceInput) SetHostedZoneId(v string) *CreateTrafficPolicyInstanceInput {
7555	s.HostedZoneId = &v
7556	return s
7557}
7558
7559// SetName sets the Name field's value.
7560func (s *CreateTrafficPolicyInstanceInput) SetName(v string) *CreateTrafficPolicyInstanceInput {
7561	s.Name = &v
7562	return s
7563}
7564
7565// SetTTL sets the TTL field's value.
7566func (s *CreateTrafficPolicyInstanceInput) SetTTL(v int64) *CreateTrafficPolicyInstanceInput {
7567	s.TTL = &v
7568	return s
7569}
7570
7571// SetTrafficPolicyId sets the TrafficPolicyId field's value.
7572func (s *CreateTrafficPolicyInstanceInput) SetTrafficPolicyId(v string) *CreateTrafficPolicyInstanceInput {
7573	s.TrafficPolicyId = &v
7574	return s
7575}
7576
7577// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
7578func (s *CreateTrafficPolicyInstanceInput) SetTrafficPolicyVersion(v int64) *CreateTrafficPolicyInstanceInput {
7579	s.TrafficPolicyVersion = &v
7580	return s
7581}
7582
7583// A complex type that contains the response information for the CreateTrafficPolicyInstance
7584// request.
7585type CreateTrafficPolicyInstanceOutput struct {
7586	_ struct{} `type:"structure"`
7587
7588	// A unique URL that represents a new traffic policy instance.
7589	//
7590	// Location is a required field
7591	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7592
7593	// A complex type that contains settings for the new traffic policy instance.
7594	//
7595	// TrafficPolicyInstance is a required field
7596	TrafficPolicyInstance *TrafficPolicyInstance `type:"structure" required:"true"`
7597}
7598
7599// String returns the string representation
7600func (s CreateTrafficPolicyInstanceOutput) String() string {
7601	return awsutil.Prettify(s)
7602}
7603
7604// GoString returns the string representation
7605func (s CreateTrafficPolicyInstanceOutput) GoString() string {
7606	return s.String()
7607}
7608
7609// SetLocation sets the Location field's value.
7610func (s *CreateTrafficPolicyInstanceOutput) SetLocation(v string) *CreateTrafficPolicyInstanceOutput {
7611	s.Location = &v
7612	return s
7613}
7614
7615// SetTrafficPolicyInstance sets the TrafficPolicyInstance field's value.
7616func (s *CreateTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPolicyInstance) *CreateTrafficPolicyInstanceOutput {
7617	s.TrafficPolicyInstance = v
7618	return s
7619}
7620
7621// A complex type that contains the response information for the CreateTrafficPolicy
7622// request.
7623type CreateTrafficPolicyOutput struct {
7624	_ struct{} `type:"structure"`
7625
7626	// A unique URL that represents a new traffic policy.
7627	//
7628	// Location is a required field
7629	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7630
7631	// A complex type that contains settings for the new traffic policy.
7632	//
7633	// TrafficPolicy is a required field
7634	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
7635}
7636
7637// String returns the string representation
7638func (s CreateTrafficPolicyOutput) String() string {
7639	return awsutil.Prettify(s)
7640}
7641
7642// GoString returns the string representation
7643func (s CreateTrafficPolicyOutput) GoString() string {
7644	return s.String()
7645}
7646
7647// SetLocation sets the Location field's value.
7648func (s *CreateTrafficPolicyOutput) SetLocation(v string) *CreateTrafficPolicyOutput {
7649	s.Location = &v
7650	return s
7651}
7652
7653// SetTrafficPolicy sets the TrafficPolicy field's value.
7654func (s *CreateTrafficPolicyOutput) SetTrafficPolicy(v *TrafficPolicy) *CreateTrafficPolicyOutput {
7655	s.TrafficPolicy = v
7656	return s
7657}
7658
7659// A complex type that contains information about the traffic policy that you
7660// want to create a new version for.
7661type CreateTrafficPolicyVersionInput struct {
7662	_ struct{} `locationName:"CreateTrafficPolicyVersionRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7663
7664	// The comment that you specified in the CreateTrafficPolicyVersion request,
7665	// if any.
7666	Comment *string `type:"string"`
7667
7668	// The definition of this version of the traffic policy, in JSON format. You
7669	// specified the JSON in the CreateTrafficPolicyVersion request. For more information
7670	// about the JSON format, see CreateTrafficPolicy (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateTrafficPolicy.html).
7671	//
7672	// Document is a required field
7673	Document *string `type:"string" required:"true"`
7674
7675	// The ID of the traffic policy for which you want to create a new version.
7676	//
7677	// Id is a required field
7678	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
7679}
7680
7681// String returns the string representation
7682func (s CreateTrafficPolicyVersionInput) String() string {
7683	return awsutil.Prettify(s)
7684}
7685
7686// GoString returns the string representation
7687func (s CreateTrafficPolicyVersionInput) GoString() string {
7688	return s.String()
7689}
7690
7691// Validate inspects the fields of the type to determine if they are valid.
7692func (s *CreateTrafficPolicyVersionInput) Validate() error {
7693	invalidParams := request.ErrInvalidParams{Context: "CreateTrafficPolicyVersionInput"}
7694	if s.Document == nil {
7695		invalidParams.Add(request.NewErrParamRequired("Document"))
7696	}
7697	if s.Id == nil {
7698		invalidParams.Add(request.NewErrParamRequired("Id"))
7699	}
7700	if s.Id != nil && len(*s.Id) < 1 {
7701		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7702	}
7703
7704	if invalidParams.Len() > 0 {
7705		return invalidParams
7706	}
7707	return nil
7708}
7709
7710// SetComment sets the Comment field's value.
7711func (s *CreateTrafficPolicyVersionInput) SetComment(v string) *CreateTrafficPolicyVersionInput {
7712	s.Comment = &v
7713	return s
7714}
7715
7716// SetDocument sets the Document field's value.
7717func (s *CreateTrafficPolicyVersionInput) SetDocument(v string) *CreateTrafficPolicyVersionInput {
7718	s.Document = &v
7719	return s
7720}
7721
7722// SetId sets the Id field's value.
7723func (s *CreateTrafficPolicyVersionInput) SetId(v string) *CreateTrafficPolicyVersionInput {
7724	s.Id = &v
7725	return s
7726}
7727
7728// A complex type that contains the response information for the CreateTrafficPolicyVersion
7729// request.
7730type CreateTrafficPolicyVersionOutput struct {
7731	_ struct{} `type:"structure"`
7732
7733	// A unique URL that represents a new traffic policy version.
7734	//
7735	// Location is a required field
7736	Location *string `location:"header" locationName:"Location" type:"string" required:"true"`
7737
7738	// A complex type that contains settings for the new version of the traffic
7739	// policy.
7740	//
7741	// TrafficPolicy is a required field
7742	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
7743}
7744
7745// String returns the string representation
7746func (s CreateTrafficPolicyVersionOutput) String() string {
7747	return awsutil.Prettify(s)
7748}
7749
7750// GoString returns the string representation
7751func (s CreateTrafficPolicyVersionOutput) GoString() string {
7752	return s.String()
7753}
7754
7755// SetLocation sets the Location field's value.
7756func (s *CreateTrafficPolicyVersionOutput) SetLocation(v string) *CreateTrafficPolicyVersionOutput {
7757	s.Location = &v
7758	return s
7759}
7760
7761// SetTrafficPolicy sets the TrafficPolicy field's value.
7762func (s *CreateTrafficPolicyVersionOutput) SetTrafficPolicy(v *TrafficPolicy) *CreateTrafficPolicyVersionOutput {
7763	s.TrafficPolicy = v
7764	return s
7765}
7766
7767// A complex type that contains information about the request to authorize associating
7768// a VPC with your private hosted zone. Authorization is only required when
7769// a private hosted zone and a VPC were created by using different accounts.
7770type CreateVPCAssociationAuthorizationInput struct {
7771	_ struct{} `locationName:"CreateVPCAssociationAuthorizationRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
7772
7773	// The ID of the private hosted zone that you want to authorize associating
7774	// a VPC with.
7775	//
7776	// HostedZoneId is a required field
7777	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7778
7779	// A complex type that contains the VPC ID and region for the VPC that you want
7780	// to authorize associating with your hosted zone.
7781	//
7782	// VPC is a required field
7783	VPC *VPC `type:"structure" required:"true"`
7784}
7785
7786// String returns the string representation
7787func (s CreateVPCAssociationAuthorizationInput) String() string {
7788	return awsutil.Prettify(s)
7789}
7790
7791// GoString returns the string representation
7792func (s CreateVPCAssociationAuthorizationInput) GoString() string {
7793	return s.String()
7794}
7795
7796// Validate inspects the fields of the type to determine if they are valid.
7797func (s *CreateVPCAssociationAuthorizationInput) Validate() error {
7798	invalidParams := request.ErrInvalidParams{Context: "CreateVPCAssociationAuthorizationInput"}
7799	if s.HostedZoneId == nil {
7800		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
7801	}
7802	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
7803		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
7804	}
7805	if s.VPC == nil {
7806		invalidParams.Add(request.NewErrParamRequired("VPC"))
7807	}
7808	if s.VPC != nil {
7809		if err := s.VPC.Validate(); err != nil {
7810			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
7811		}
7812	}
7813
7814	if invalidParams.Len() > 0 {
7815		return invalidParams
7816	}
7817	return nil
7818}
7819
7820// SetHostedZoneId sets the HostedZoneId field's value.
7821func (s *CreateVPCAssociationAuthorizationInput) SetHostedZoneId(v string) *CreateVPCAssociationAuthorizationInput {
7822	s.HostedZoneId = &v
7823	return s
7824}
7825
7826// SetVPC sets the VPC field's value.
7827func (s *CreateVPCAssociationAuthorizationInput) SetVPC(v *VPC) *CreateVPCAssociationAuthorizationInput {
7828	s.VPC = v
7829	return s
7830}
7831
7832// A complex type that contains the response information from a CreateVPCAssociationAuthorization
7833// request.
7834type CreateVPCAssociationAuthorizationOutput struct {
7835	_ struct{} `type:"structure"`
7836
7837	// The ID of the hosted zone that you authorized associating a VPC with.
7838	//
7839	// HostedZoneId is a required field
7840	HostedZoneId *string `type:"string" required:"true"`
7841
7842	// The VPC that you authorized associating with a hosted zone.
7843	//
7844	// VPC is a required field
7845	VPC *VPC `type:"structure" required:"true"`
7846}
7847
7848// String returns the string representation
7849func (s CreateVPCAssociationAuthorizationOutput) String() string {
7850	return awsutil.Prettify(s)
7851}
7852
7853// GoString returns the string representation
7854func (s CreateVPCAssociationAuthorizationOutput) GoString() string {
7855	return s.String()
7856}
7857
7858// SetHostedZoneId sets the HostedZoneId field's value.
7859func (s *CreateVPCAssociationAuthorizationOutput) SetHostedZoneId(v string) *CreateVPCAssociationAuthorizationOutput {
7860	s.HostedZoneId = &v
7861	return s
7862}
7863
7864// SetVPC sets the VPC field's value.
7865func (s *CreateVPCAssociationAuthorizationOutput) SetVPC(v *VPC) *CreateVPCAssociationAuthorizationOutput {
7866	s.VPC = v
7867	return s
7868}
7869
7870// A complex type that lists the name servers in a delegation set, as well as
7871// the CallerReference and the ID for the delegation set.
7872type DelegationSet struct {
7873	_ struct{} `type:"structure"`
7874
7875	// The value that you specified for CallerReference when you created the reusable
7876	// delegation set.
7877	CallerReference *string `min:"1" type:"string"`
7878
7879	// The ID that Amazon Route 53 assigns to a reusable delegation set.
7880	Id *string `type:"string"`
7881
7882	// A complex type that contains a list of the authoritative name servers for
7883	// a hosted zone or for a reusable delegation set.
7884	//
7885	// NameServers is a required field
7886	NameServers []*string `locationNameList:"NameServer" min:"1" type:"list" required:"true"`
7887}
7888
7889// String returns the string representation
7890func (s DelegationSet) String() string {
7891	return awsutil.Prettify(s)
7892}
7893
7894// GoString returns the string representation
7895func (s DelegationSet) GoString() string {
7896	return s.String()
7897}
7898
7899// SetCallerReference sets the CallerReference field's value.
7900func (s *DelegationSet) SetCallerReference(v string) *DelegationSet {
7901	s.CallerReference = &v
7902	return s
7903}
7904
7905// SetId sets the Id field's value.
7906func (s *DelegationSet) SetId(v string) *DelegationSet {
7907	s.Id = &v
7908	return s
7909}
7910
7911// SetNameServers sets the NameServers field's value.
7912func (s *DelegationSet) SetNameServers(v []*string) *DelegationSet {
7913	s.NameServers = v
7914	return s
7915}
7916
7917// This action deletes a health check.
7918type DeleteHealthCheckInput struct {
7919	_ struct{} `type:"structure"`
7920
7921	// The ID of the health check that you want to delete.
7922	//
7923	// HealthCheckId is a required field
7924	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
7925}
7926
7927// String returns the string representation
7928func (s DeleteHealthCheckInput) String() string {
7929	return awsutil.Prettify(s)
7930}
7931
7932// GoString returns the string representation
7933func (s DeleteHealthCheckInput) GoString() string {
7934	return s.String()
7935}
7936
7937// Validate inspects the fields of the type to determine if they are valid.
7938func (s *DeleteHealthCheckInput) Validate() error {
7939	invalidParams := request.ErrInvalidParams{Context: "DeleteHealthCheckInput"}
7940	if s.HealthCheckId == nil {
7941		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
7942	}
7943	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
7944		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
7945	}
7946
7947	if invalidParams.Len() > 0 {
7948		return invalidParams
7949	}
7950	return nil
7951}
7952
7953// SetHealthCheckId sets the HealthCheckId field's value.
7954func (s *DeleteHealthCheckInput) SetHealthCheckId(v string) *DeleteHealthCheckInput {
7955	s.HealthCheckId = &v
7956	return s
7957}
7958
7959// An empty element.
7960type DeleteHealthCheckOutput struct {
7961	_ struct{} `type:"structure"`
7962}
7963
7964// String returns the string representation
7965func (s DeleteHealthCheckOutput) String() string {
7966	return awsutil.Prettify(s)
7967}
7968
7969// GoString returns the string representation
7970func (s DeleteHealthCheckOutput) GoString() string {
7971	return s.String()
7972}
7973
7974// A request to delete a hosted zone.
7975type DeleteHostedZoneInput struct {
7976	_ struct{} `type:"structure"`
7977
7978	// The ID of the hosted zone you want to delete.
7979	//
7980	// Id is a required field
7981	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7982}
7983
7984// String returns the string representation
7985func (s DeleteHostedZoneInput) String() string {
7986	return awsutil.Prettify(s)
7987}
7988
7989// GoString returns the string representation
7990func (s DeleteHostedZoneInput) GoString() string {
7991	return s.String()
7992}
7993
7994// Validate inspects the fields of the type to determine if they are valid.
7995func (s *DeleteHostedZoneInput) Validate() error {
7996	invalidParams := request.ErrInvalidParams{Context: "DeleteHostedZoneInput"}
7997	if s.Id == nil {
7998		invalidParams.Add(request.NewErrParamRequired("Id"))
7999	}
8000	if s.Id != nil && len(*s.Id) < 1 {
8001		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8002	}
8003
8004	if invalidParams.Len() > 0 {
8005		return invalidParams
8006	}
8007	return nil
8008}
8009
8010// SetId sets the Id field's value.
8011func (s *DeleteHostedZoneInput) SetId(v string) *DeleteHostedZoneInput {
8012	s.Id = &v
8013	return s
8014}
8015
8016// A complex type that contains the response to a DeleteHostedZone request.
8017type DeleteHostedZoneOutput struct {
8018	_ struct{} `type:"structure"`
8019
8020	// A complex type that contains the ID, the status, and the date and time of
8021	// a request to delete a hosted zone.
8022	//
8023	// ChangeInfo is a required field
8024	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
8025}
8026
8027// String returns the string representation
8028func (s DeleteHostedZoneOutput) String() string {
8029	return awsutil.Prettify(s)
8030}
8031
8032// GoString returns the string representation
8033func (s DeleteHostedZoneOutput) GoString() string {
8034	return s.String()
8035}
8036
8037// SetChangeInfo sets the ChangeInfo field's value.
8038func (s *DeleteHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *DeleteHostedZoneOutput {
8039	s.ChangeInfo = v
8040	return s
8041}
8042
8043type DeleteQueryLoggingConfigInput struct {
8044	_ struct{} `type:"structure"`
8045
8046	// The ID of the configuration that you want to delete.
8047	//
8048	// Id is a required field
8049	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
8050}
8051
8052// String returns the string representation
8053func (s DeleteQueryLoggingConfigInput) String() string {
8054	return awsutil.Prettify(s)
8055}
8056
8057// GoString returns the string representation
8058func (s DeleteQueryLoggingConfigInput) GoString() string {
8059	return s.String()
8060}
8061
8062// Validate inspects the fields of the type to determine if they are valid.
8063func (s *DeleteQueryLoggingConfigInput) Validate() error {
8064	invalidParams := request.ErrInvalidParams{Context: "DeleteQueryLoggingConfigInput"}
8065	if s.Id == nil {
8066		invalidParams.Add(request.NewErrParamRequired("Id"))
8067	}
8068	if s.Id != nil && len(*s.Id) < 1 {
8069		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8070	}
8071
8072	if invalidParams.Len() > 0 {
8073		return invalidParams
8074	}
8075	return nil
8076}
8077
8078// SetId sets the Id field's value.
8079func (s *DeleteQueryLoggingConfigInput) SetId(v string) *DeleteQueryLoggingConfigInput {
8080	s.Id = &v
8081	return s
8082}
8083
8084type DeleteQueryLoggingConfigOutput struct {
8085	_ struct{} `type:"structure"`
8086}
8087
8088// String returns the string representation
8089func (s DeleteQueryLoggingConfigOutput) String() string {
8090	return awsutil.Prettify(s)
8091}
8092
8093// GoString returns the string representation
8094func (s DeleteQueryLoggingConfigOutput) GoString() string {
8095	return s.String()
8096}
8097
8098// A request to delete a reusable delegation set.
8099type DeleteReusableDelegationSetInput struct {
8100	_ struct{} `type:"structure"`
8101
8102	// The ID of the reusable delegation set that you want to delete.
8103	//
8104	// Id is a required field
8105	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8106}
8107
8108// String returns the string representation
8109func (s DeleteReusableDelegationSetInput) String() string {
8110	return awsutil.Prettify(s)
8111}
8112
8113// GoString returns the string representation
8114func (s DeleteReusableDelegationSetInput) GoString() string {
8115	return s.String()
8116}
8117
8118// Validate inspects the fields of the type to determine if they are valid.
8119func (s *DeleteReusableDelegationSetInput) Validate() error {
8120	invalidParams := request.ErrInvalidParams{Context: "DeleteReusableDelegationSetInput"}
8121	if s.Id == nil {
8122		invalidParams.Add(request.NewErrParamRequired("Id"))
8123	}
8124	if s.Id != nil && len(*s.Id) < 1 {
8125		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8126	}
8127
8128	if invalidParams.Len() > 0 {
8129		return invalidParams
8130	}
8131	return nil
8132}
8133
8134// SetId sets the Id field's value.
8135func (s *DeleteReusableDelegationSetInput) SetId(v string) *DeleteReusableDelegationSetInput {
8136	s.Id = &v
8137	return s
8138}
8139
8140// An empty element.
8141type DeleteReusableDelegationSetOutput struct {
8142	_ struct{} `type:"structure"`
8143}
8144
8145// String returns the string representation
8146func (s DeleteReusableDelegationSetOutput) String() string {
8147	return awsutil.Prettify(s)
8148}
8149
8150// GoString returns the string representation
8151func (s DeleteReusableDelegationSetOutput) GoString() string {
8152	return s.String()
8153}
8154
8155// A request to delete a specified traffic policy version.
8156type DeleteTrafficPolicyInput struct {
8157	_ struct{} `type:"structure"`
8158
8159	// The ID of the traffic policy that you want to delete.
8160	//
8161	// Id is a required field
8162	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
8163
8164	// The version number of the traffic policy that you want to delete.
8165	//
8166	// Version is a required field
8167	Version *int64 `location:"uri" locationName:"Version" min:"1" type:"integer" required:"true"`
8168}
8169
8170// String returns the string representation
8171func (s DeleteTrafficPolicyInput) String() string {
8172	return awsutil.Prettify(s)
8173}
8174
8175// GoString returns the string representation
8176func (s DeleteTrafficPolicyInput) GoString() string {
8177	return s.String()
8178}
8179
8180// Validate inspects the fields of the type to determine if they are valid.
8181func (s *DeleteTrafficPolicyInput) Validate() error {
8182	invalidParams := request.ErrInvalidParams{Context: "DeleteTrafficPolicyInput"}
8183	if s.Id == nil {
8184		invalidParams.Add(request.NewErrParamRequired("Id"))
8185	}
8186	if s.Id != nil && len(*s.Id) < 1 {
8187		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8188	}
8189	if s.Version == nil {
8190		invalidParams.Add(request.NewErrParamRequired("Version"))
8191	}
8192	if s.Version != nil && *s.Version < 1 {
8193		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
8194	}
8195
8196	if invalidParams.Len() > 0 {
8197		return invalidParams
8198	}
8199	return nil
8200}
8201
8202// SetId sets the Id field's value.
8203func (s *DeleteTrafficPolicyInput) SetId(v string) *DeleteTrafficPolicyInput {
8204	s.Id = &v
8205	return s
8206}
8207
8208// SetVersion sets the Version field's value.
8209func (s *DeleteTrafficPolicyInput) SetVersion(v int64) *DeleteTrafficPolicyInput {
8210	s.Version = &v
8211	return s
8212}
8213
8214// A request to delete a specified traffic policy instance.
8215type DeleteTrafficPolicyInstanceInput struct {
8216	_ struct{} `type:"structure"`
8217
8218	// The ID of the traffic policy instance that you want to delete.
8219	//
8220	// When you delete a traffic policy instance, Amazon Route 53 also deletes all
8221	// of the resource record sets that were created when you created the traffic
8222	// policy instance.
8223	//
8224	// Id is a required field
8225	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
8226}
8227
8228// String returns the string representation
8229func (s DeleteTrafficPolicyInstanceInput) String() string {
8230	return awsutil.Prettify(s)
8231}
8232
8233// GoString returns the string representation
8234func (s DeleteTrafficPolicyInstanceInput) GoString() string {
8235	return s.String()
8236}
8237
8238// Validate inspects the fields of the type to determine if they are valid.
8239func (s *DeleteTrafficPolicyInstanceInput) Validate() error {
8240	invalidParams := request.ErrInvalidParams{Context: "DeleteTrafficPolicyInstanceInput"}
8241	if s.Id == nil {
8242		invalidParams.Add(request.NewErrParamRequired("Id"))
8243	}
8244	if s.Id != nil && len(*s.Id) < 1 {
8245		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8246	}
8247
8248	if invalidParams.Len() > 0 {
8249		return invalidParams
8250	}
8251	return nil
8252}
8253
8254// SetId sets the Id field's value.
8255func (s *DeleteTrafficPolicyInstanceInput) SetId(v string) *DeleteTrafficPolicyInstanceInput {
8256	s.Id = &v
8257	return s
8258}
8259
8260// An empty element.
8261type DeleteTrafficPolicyInstanceOutput struct {
8262	_ struct{} `type:"structure"`
8263}
8264
8265// String returns the string representation
8266func (s DeleteTrafficPolicyInstanceOutput) String() string {
8267	return awsutil.Prettify(s)
8268}
8269
8270// GoString returns the string representation
8271func (s DeleteTrafficPolicyInstanceOutput) GoString() string {
8272	return s.String()
8273}
8274
8275// An empty element.
8276type DeleteTrafficPolicyOutput struct {
8277	_ struct{} `type:"structure"`
8278}
8279
8280// String returns the string representation
8281func (s DeleteTrafficPolicyOutput) String() string {
8282	return awsutil.Prettify(s)
8283}
8284
8285// GoString returns the string representation
8286func (s DeleteTrafficPolicyOutput) GoString() string {
8287	return s.String()
8288}
8289
8290// A complex type that contains information about the request to remove authorization
8291// to associate a VPC that was created by one AWS account with a hosted zone
8292// that was created with a different AWS account.
8293type DeleteVPCAssociationAuthorizationInput struct {
8294	_ struct{} `locationName:"DeleteVPCAssociationAuthorizationRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
8295
8296	// When removing authorization to associate a VPC that was created by one AWS
8297	// account with a hosted zone that was created with a different AWS account,
8298	// the ID of the hosted zone.
8299	//
8300	// HostedZoneId is a required field
8301	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8302
8303	// When removing authorization to associate a VPC that was created by one AWS
8304	// account with a hosted zone that was created with a different AWS account,
8305	// a complex type that includes the ID and region of the VPC.
8306	//
8307	// VPC is a required field
8308	VPC *VPC `type:"structure" required:"true"`
8309}
8310
8311// String returns the string representation
8312func (s DeleteVPCAssociationAuthorizationInput) String() string {
8313	return awsutil.Prettify(s)
8314}
8315
8316// GoString returns the string representation
8317func (s DeleteVPCAssociationAuthorizationInput) GoString() string {
8318	return s.String()
8319}
8320
8321// Validate inspects the fields of the type to determine if they are valid.
8322func (s *DeleteVPCAssociationAuthorizationInput) Validate() error {
8323	invalidParams := request.ErrInvalidParams{Context: "DeleteVPCAssociationAuthorizationInput"}
8324	if s.HostedZoneId == nil {
8325		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
8326	}
8327	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
8328		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
8329	}
8330	if s.VPC == nil {
8331		invalidParams.Add(request.NewErrParamRequired("VPC"))
8332	}
8333	if s.VPC != nil {
8334		if err := s.VPC.Validate(); err != nil {
8335			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
8336		}
8337	}
8338
8339	if invalidParams.Len() > 0 {
8340		return invalidParams
8341	}
8342	return nil
8343}
8344
8345// SetHostedZoneId sets the HostedZoneId field's value.
8346func (s *DeleteVPCAssociationAuthorizationInput) SetHostedZoneId(v string) *DeleteVPCAssociationAuthorizationInput {
8347	s.HostedZoneId = &v
8348	return s
8349}
8350
8351// SetVPC sets the VPC field's value.
8352func (s *DeleteVPCAssociationAuthorizationInput) SetVPC(v *VPC) *DeleteVPCAssociationAuthorizationInput {
8353	s.VPC = v
8354	return s
8355}
8356
8357// Empty response for the request.
8358type DeleteVPCAssociationAuthorizationOutput struct {
8359	_ struct{} `type:"structure"`
8360}
8361
8362// String returns the string representation
8363func (s DeleteVPCAssociationAuthorizationOutput) String() string {
8364	return awsutil.Prettify(s)
8365}
8366
8367// GoString returns the string representation
8368func (s DeleteVPCAssociationAuthorizationOutput) GoString() string {
8369	return s.String()
8370}
8371
8372// For the metric that the CloudWatch alarm is associated with, a complex type
8373// that contains information about one dimension.
8374type Dimension struct {
8375	_ struct{} `type:"structure"`
8376
8377	// For the metric that the CloudWatch alarm is associated with, the name of
8378	// one dimension.
8379	//
8380	// Name is a required field
8381	Name *string `min:"1" type:"string" required:"true"`
8382
8383	// For the metric that the CloudWatch alarm is associated with, the value of
8384	// one dimension.
8385	//
8386	// Value is a required field
8387	Value *string `min:"1" type:"string" required:"true"`
8388}
8389
8390// String returns the string representation
8391func (s Dimension) String() string {
8392	return awsutil.Prettify(s)
8393}
8394
8395// GoString returns the string representation
8396func (s Dimension) GoString() string {
8397	return s.String()
8398}
8399
8400// SetName sets the Name field's value.
8401func (s *Dimension) SetName(v string) *Dimension {
8402	s.Name = &v
8403	return s
8404}
8405
8406// SetValue sets the Value field's value.
8407func (s *Dimension) SetValue(v string) *Dimension {
8408	s.Value = &v
8409	return s
8410}
8411
8412// A complex type that contains information about the VPC that you want to disassociate
8413// from a specified private hosted zone.
8414type DisassociateVPCFromHostedZoneInput struct {
8415	_ struct{} `locationName:"DisassociateVPCFromHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
8416
8417	// Optional: A comment about the disassociation request.
8418	Comment *string `type:"string"`
8419
8420	// The ID of the private hosted zone that you want to disassociate a VPC from.
8421	//
8422	// HostedZoneId is a required field
8423	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8424
8425	// A complex type that contains information about the VPC that you're disassociating
8426	// from the specified hosted zone.
8427	//
8428	// VPC is a required field
8429	VPC *VPC `type:"structure" required:"true"`
8430}
8431
8432// String returns the string representation
8433func (s DisassociateVPCFromHostedZoneInput) String() string {
8434	return awsutil.Prettify(s)
8435}
8436
8437// GoString returns the string representation
8438func (s DisassociateVPCFromHostedZoneInput) GoString() string {
8439	return s.String()
8440}
8441
8442// Validate inspects the fields of the type to determine if they are valid.
8443func (s *DisassociateVPCFromHostedZoneInput) Validate() error {
8444	invalidParams := request.ErrInvalidParams{Context: "DisassociateVPCFromHostedZoneInput"}
8445	if s.HostedZoneId == nil {
8446		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
8447	}
8448	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
8449		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
8450	}
8451	if s.VPC == nil {
8452		invalidParams.Add(request.NewErrParamRequired("VPC"))
8453	}
8454	if s.VPC != nil {
8455		if err := s.VPC.Validate(); err != nil {
8456			invalidParams.AddNested("VPC", err.(request.ErrInvalidParams))
8457		}
8458	}
8459
8460	if invalidParams.Len() > 0 {
8461		return invalidParams
8462	}
8463	return nil
8464}
8465
8466// SetComment sets the Comment field's value.
8467func (s *DisassociateVPCFromHostedZoneInput) SetComment(v string) *DisassociateVPCFromHostedZoneInput {
8468	s.Comment = &v
8469	return s
8470}
8471
8472// SetHostedZoneId sets the HostedZoneId field's value.
8473func (s *DisassociateVPCFromHostedZoneInput) SetHostedZoneId(v string) *DisassociateVPCFromHostedZoneInput {
8474	s.HostedZoneId = &v
8475	return s
8476}
8477
8478// SetVPC sets the VPC field's value.
8479func (s *DisassociateVPCFromHostedZoneInput) SetVPC(v *VPC) *DisassociateVPCFromHostedZoneInput {
8480	s.VPC = v
8481	return s
8482}
8483
8484// A complex type that contains the response information for the disassociate
8485// request.
8486type DisassociateVPCFromHostedZoneOutput struct {
8487	_ struct{} `type:"structure"`
8488
8489	// A complex type that describes the changes made to the specified private hosted
8490	// zone.
8491	//
8492	// ChangeInfo is a required field
8493	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
8494}
8495
8496// String returns the string representation
8497func (s DisassociateVPCFromHostedZoneOutput) String() string {
8498	return awsutil.Prettify(s)
8499}
8500
8501// GoString returns the string representation
8502func (s DisassociateVPCFromHostedZoneOutput) GoString() string {
8503	return s.String()
8504}
8505
8506// SetChangeInfo sets the ChangeInfo field's value.
8507func (s *DisassociateVPCFromHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *DisassociateVPCFromHostedZoneOutput {
8508	s.ChangeInfo = v
8509	return s
8510}
8511
8512// A complex type that contains information about a geographic location.
8513type GeoLocation struct {
8514	_ struct{} `type:"structure"`
8515
8516	// The two-letter code for the continent.
8517	//
8518	// Valid values: AF | AN | AS | EU | OC | NA | SA
8519	//
8520	// Constraint: Specifying ContinentCode with either CountryCode or SubdivisionCode
8521	// returns an InvalidInput error.
8522	ContinentCode *string `min:"2" type:"string"`
8523
8524	// The two-letter code for the country.
8525	CountryCode *string `min:"1" type:"string"`
8526
8527	// The code for the subdivision. Route 53 currently supports only states in
8528	// the United States.
8529	SubdivisionCode *string `min:"1" type:"string"`
8530}
8531
8532// String returns the string representation
8533func (s GeoLocation) String() string {
8534	return awsutil.Prettify(s)
8535}
8536
8537// GoString returns the string representation
8538func (s GeoLocation) GoString() string {
8539	return s.String()
8540}
8541
8542// Validate inspects the fields of the type to determine if they are valid.
8543func (s *GeoLocation) Validate() error {
8544	invalidParams := request.ErrInvalidParams{Context: "GeoLocation"}
8545	if s.ContinentCode != nil && len(*s.ContinentCode) < 2 {
8546		invalidParams.Add(request.NewErrParamMinLen("ContinentCode", 2))
8547	}
8548	if s.CountryCode != nil && len(*s.CountryCode) < 1 {
8549		invalidParams.Add(request.NewErrParamMinLen("CountryCode", 1))
8550	}
8551	if s.SubdivisionCode != nil && len(*s.SubdivisionCode) < 1 {
8552		invalidParams.Add(request.NewErrParamMinLen("SubdivisionCode", 1))
8553	}
8554
8555	if invalidParams.Len() > 0 {
8556		return invalidParams
8557	}
8558	return nil
8559}
8560
8561// SetContinentCode sets the ContinentCode field's value.
8562func (s *GeoLocation) SetContinentCode(v string) *GeoLocation {
8563	s.ContinentCode = &v
8564	return s
8565}
8566
8567// SetCountryCode sets the CountryCode field's value.
8568func (s *GeoLocation) SetCountryCode(v string) *GeoLocation {
8569	s.CountryCode = &v
8570	return s
8571}
8572
8573// SetSubdivisionCode sets the SubdivisionCode field's value.
8574func (s *GeoLocation) SetSubdivisionCode(v string) *GeoLocation {
8575	s.SubdivisionCode = &v
8576	return s
8577}
8578
8579// A complex type that contains the codes and full continent, country, and subdivision
8580// names for the specified geolocation code.
8581type GeoLocationDetails struct {
8582	_ struct{} `type:"structure"`
8583
8584	// The two-letter code for the continent.
8585	ContinentCode *string `min:"2" type:"string"`
8586
8587	// The full name of the continent.
8588	ContinentName *string `min:"1" type:"string"`
8589
8590	// The two-letter code for the country.
8591	CountryCode *string `min:"1" type:"string"`
8592
8593	// The name of the country.
8594	CountryName *string `min:"1" type:"string"`
8595
8596	// The code for the subdivision. Route 53 currently supports only states in
8597	// the United States.
8598	SubdivisionCode *string `min:"1" type:"string"`
8599
8600	// The full name of the subdivision. Route 53 currently supports only states
8601	// in the United States.
8602	SubdivisionName *string `min:"1" type:"string"`
8603}
8604
8605// String returns the string representation
8606func (s GeoLocationDetails) String() string {
8607	return awsutil.Prettify(s)
8608}
8609
8610// GoString returns the string representation
8611func (s GeoLocationDetails) GoString() string {
8612	return s.String()
8613}
8614
8615// SetContinentCode sets the ContinentCode field's value.
8616func (s *GeoLocationDetails) SetContinentCode(v string) *GeoLocationDetails {
8617	s.ContinentCode = &v
8618	return s
8619}
8620
8621// SetContinentName sets the ContinentName field's value.
8622func (s *GeoLocationDetails) SetContinentName(v string) *GeoLocationDetails {
8623	s.ContinentName = &v
8624	return s
8625}
8626
8627// SetCountryCode sets the CountryCode field's value.
8628func (s *GeoLocationDetails) SetCountryCode(v string) *GeoLocationDetails {
8629	s.CountryCode = &v
8630	return s
8631}
8632
8633// SetCountryName sets the CountryName field's value.
8634func (s *GeoLocationDetails) SetCountryName(v string) *GeoLocationDetails {
8635	s.CountryName = &v
8636	return s
8637}
8638
8639// SetSubdivisionCode sets the SubdivisionCode field's value.
8640func (s *GeoLocationDetails) SetSubdivisionCode(v string) *GeoLocationDetails {
8641	s.SubdivisionCode = &v
8642	return s
8643}
8644
8645// SetSubdivisionName sets the SubdivisionName field's value.
8646func (s *GeoLocationDetails) SetSubdivisionName(v string) *GeoLocationDetails {
8647	s.SubdivisionName = &v
8648	return s
8649}
8650
8651// A complex type that contains information about the request to create a hosted
8652// zone.
8653type GetAccountLimitInput struct {
8654	_ struct{} `type:"structure"`
8655
8656	// The limit that you want to get. Valid values include the following:
8657	//
8658	//    * MAX_HEALTH_CHECKS_BY_OWNER: The maximum number of health checks that
8659	//    you can create using the current account.
8660	//
8661	//    * MAX_HOSTED_ZONES_BY_OWNER: The maximum number of hosted zones that you
8662	//    can create using the current account.
8663	//
8664	//    * MAX_REUSABLE_DELEGATION_SETS_BY_OWNER: The maximum number of reusable
8665	//    delegation sets that you can create using the current account.
8666	//
8667	//    * MAX_TRAFFIC_POLICIES_BY_OWNER: The maximum number of traffic policies
8668	//    that you can create using the current account.
8669	//
8670	//    * MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER: The maximum number of traffic
8671	//    policy instances that you can create using the current account. (Traffic
8672	//    policy instances are referred to as traffic flow policy records in the
8673	//    Amazon Route 53 console.)
8674	//
8675	// Type is a required field
8676	Type *string `location:"uri" locationName:"Type" type:"string" required:"true" enum:"AccountLimitType"`
8677}
8678
8679// String returns the string representation
8680func (s GetAccountLimitInput) String() string {
8681	return awsutil.Prettify(s)
8682}
8683
8684// GoString returns the string representation
8685func (s GetAccountLimitInput) GoString() string {
8686	return s.String()
8687}
8688
8689// Validate inspects the fields of the type to determine if they are valid.
8690func (s *GetAccountLimitInput) Validate() error {
8691	invalidParams := request.ErrInvalidParams{Context: "GetAccountLimitInput"}
8692	if s.Type == nil {
8693		invalidParams.Add(request.NewErrParamRequired("Type"))
8694	}
8695	if s.Type != nil && len(*s.Type) < 1 {
8696		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
8697	}
8698
8699	if invalidParams.Len() > 0 {
8700		return invalidParams
8701	}
8702	return nil
8703}
8704
8705// SetType sets the Type field's value.
8706func (s *GetAccountLimitInput) SetType(v string) *GetAccountLimitInput {
8707	s.Type = &v
8708	return s
8709}
8710
8711// A complex type that contains the requested limit.
8712type GetAccountLimitOutput struct {
8713	_ struct{} `type:"structure"`
8714
8715	// The current number of entities that you have created of the specified type.
8716	// For example, if you specified MAX_HEALTH_CHECKS_BY_OWNER for the value of
8717	// Type in the request, the value of Count is the current number of health checks
8718	// that you have created using the current account.
8719	//
8720	// Count is a required field
8721	Count *int64 `type:"long" required:"true"`
8722
8723	// The current setting for the specified limit. For example, if you specified
8724	// MAX_HEALTH_CHECKS_BY_OWNER for the value of Type in the request, the value
8725	// of Limit is the maximum number of health checks that you can create using
8726	// the current account.
8727	//
8728	// Limit is a required field
8729	Limit *AccountLimit `type:"structure" required:"true"`
8730}
8731
8732// String returns the string representation
8733func (s GetAccountLimitOutput) String() string {
8734	return awsutil.Prettify(s)
8735}
8736
8737// GoString returns the string representation
8738func (s GetAccountLimitOutput) GoString() string {
8739	return s.String()
8740}
8741
8742// SetCount sets the Count field's value.
8743func (s *GetAccountLimitOutput) SetCount(v int64) *GetAccountLimitOutput {
8744	s.Count = &v
8745	return s
8746}
8747
8748// SetLimit sets the Limit field's value.
8749func (s *GetAccountLimitOutput) SetLimit(v *AccountLimit) *GetAccountLimitOutput {
8750	s.Limit = v
8751	return s
8752}
8753
8754// The input for a GetChange request.
8755type GetChangeInput struct {
8756	_ struct{} `type:"structure"`
8757
8758	// The ID of the change batch request. The value that you specify here is the
8759	// value that ChangeResourceRecordSets returned in the Id element when you submitted
8760	// the request.
8761	//
8762	// Id is a required field
8763	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8764}
8765
8766// String returns the string representation
8767func (s GetChangeInput) String() string {
8768	return awsutil.Prettify(s)
8769}
8770
8771// GoString returns the string representation
8772func (s GetChangeInput) GoString() string {
8773	return s.String()
8774}
8775
8776// Validate inspects the fields of the type to determine if they are valid.
8777func (s *GetChangeInput) Validate() error {
8778	invalidParams := request.ErrInvalidParams{Context: "GetChangeInput"}
8779	if s.Id == nil {
8780		invalidParams.Add(request.NewErrParamRequired("Id"))
8781	}
8782	if s.Id != nil && len(*s.Id) < 1 {
8783		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8784	}
8785
8786	if invalidParams.Len() > 0 {
8787		return invalidParams
8788	}
8789	return nil
8790}
8791
8792// SetId sets the Id field's value.
8793func (s *GetChangeInput) SetId(v string) *GetChangeInput {
8794	s.Id = &v
8795	return s
8796}
8797
8798// A complex type that contains the ChangeInfo element.
8799type GetChangeOutput struct {
8800	_ struct{} `type:"structure"`
8801
8802	// A complex type that contains information about the specified change batch.
8803	//
8804	// ChangeInfo is a required field
8805	ChangeInfo *ChangeInfo `type:"structure" required:"true"`
8806}
8807
8808// String returns the string representation
8809func (s GetChangeOutput) String() string {
8810	return awsutil.Prettify(s)
8811}
8812
8813// GoString returns the string representation
8814func (s GetChangeOutput) GoString() string {
8815	return s.String()
8816}
8817
8818// SetChangeInfo sets the ChangeInfo field's value.
8819func (s *GetChangeOutput) SetChangeInfo(v *ChangeInfo) *GetChangeOutput {
8820	s.ChangeInfo = v
8821	return s
8822}
8823
8824// Empty request.
8825type GetCheckerIpRangesInput struct {
8826	_ struct{} `type:"structure"`
8827}
8828
8829// String returns the string representation
8830func (s GetCheckerIpRangesInput) String() string {
8831	return awsutil.Prettify(s)
8832}
8833
8834// GoString returns the string representation
8835func (s GetCheckerIpRangesInput) GoString() string {
8836	return s.String()
8837}
8838
8839// A complex type that contains the CheckerIpRanges element.
8840type GetCheckerIpRangesOutput struct {
8841	_ struct{} `type:"structure"`
8842
8843	// A complex type that contains sorted list of IP ranges in CIDR format for
8844	// Amazon Route 53 health checkers.
8845	//
8846	// CheckerIpRanges is a required field
8847	CheckerIpRanges []*string `type:"list" required:"true"`
8848}
8849
8850// String returns the string representation
8851func (s GetCheckerIpRangesOutput) String() string {
8852	return awsutil.Prettify(s)
8853}
8854
8855// GoString returns the string representation
8856func (s GetCheckerIpRangesOutput) GoString() string {
8857	return s.String()
8858}
8859
8860// SetCheckerIpRanges sets the CheckerIpRanges field's value.
8861func (s *GetCheckerIpRangesOutput) SetCheckerIpRanges(v []*string) *GetCheckerIpRangesOutput {
8862	s.CheckerIpRanges = v
8863	return s
8864}
8865
8866// A request for information about whether a specified geographic location is
8867// supported for Amazon Route 53 geolocation resource record sets.
8868type GetGeoLocationInput struct {
8869	_ struct{} `type:"structure"`
8870
8871	// Amazon Route 53 supports the following continent codes:
8872	//
8873	//    * AF: Africa
8874	//
8875	//    * AN: Antarctica
8876	//
8877	//    * AS: Asia
8878	//
8879	//    * EU: Europe
8880	//
8881	//    * OC: Oceania
8882	//
8883	//    * NA: North America
8884	//
8885	//    * SA: South America
8886	ContinentCode *string `location:"querystring" locationName:"continentcode" min:"2" type:"string"`
8887
8888	// Amazon Route 53 uses the two-letter country codes that are specified in ISO
8889	// standard 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
8890	CountryCode *string `location:"querystring" locationName:"countrycode" min:"1" type:"string"`
8891
8892	// Amazon Route 53 uses the one- to three-letter subdivision codes that are
8893	// specified in ISO standard 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
8894	// Route 53 doesn't support subdivision codes for all countries. If you specify
8895	// subdivisioncode, you must also specify countrycode.
8896	SubdivisionCode *string `location:"querystring" locationName:"subdivisioncode" min:"1" type:"string"`
8897}
8898
8899// String returns the string representation
8900func (s GetGeoLocationInput) String() string {
8901	return awsutil.Prettify(s)
8902}
8903
8904// GoString returns the string representation
8905func (s GetGeoLocationInput) GoString() string {
8906	return s.String()
8907}
8908
8909// Validate inspects the fields of the type to determine if they are valid.
8910func (s *GetGeoLocationInput) Validate() error {
8911	invalidParams := request.ErrInvalidParams{Context: "GetGeoLocationInput"}
8912	if s.ContinentCode != nil && len(*s.ContinentCode) < 2 {
8913		invalidParams.Add(request.NewErrParamMinLen("ContinentCode", 2))
8914	}
8915	if s.CountryCode != nil && len(*s.CountryCode) < 1 {
8916		invalidParams.Add(request.NewErrParamMinLen("CountryCode", 1))
8917	}
8918	if s.SubdivisionCode != nil && len(*s.SubdivisionCode) < 1 {
8919		invalidParams.Add(request.NewErrParamMinLen("SubdivisionCode", 1))
8920	}
8921
8922	if invalidParams.Len() > 0 {
8923		return invalidParams
8924	}
8925	return nil
8926}
8927
8928// SetContinentCode sets the ContinentCode field's value.
8929func (s *GetGeoLocationInput) SetContinentCode(v string) *GetGeoLocationInput {
8930	s.ContinentCode = &v
8931	return s
8932}
8933
8934// SetCountryCode sets the CountryCode field's value.
8935func (s *GetGeoLocationInput) SetCountryCode(v string) *GetGeoLocationInput {
8936	s.CountryCode = &v
8937	return s
8938}
8939
8940// SetSubdivisionCode sets the SubdivisionCode field's value.
8941func (s *GetGeoLocationInput) SetSubdivisionCode(v string) *GetGeoLocationInput {
8942	s.SubdivisionCode = &v
8943	return s
8944}
8945
8946// A complex type that contains the response information for the specified geolocation
8947// code.
8948type GetGeoLocationOutput struct {
8949	_ struct{} `type:"structure"`
8950
8951	// A complex type that contains the codes and full continent, country, and subdivision
8952	// names for the specified geolocation code.
8953	//
8954	// GeoLocationDetails is a required field
8955	GeoLocationDetails *GeoLocationDetails `type:"structure" required:"true"`
8956}
8957
8958// String returns the string representation
8959func (s GetGeoLocationOutput) String() string {
8960	return awsutil.Prettify(s)
8961}
8962
8963// GoString returns the string representation
8964func (s GetGeoLocationOutput) GoString() string {
8965	return s.String()
8966}
8967
8968// SetGeoLocationDetails sets the GeoLocationDetails field's value.
8969func (s *GetGeoLocationOutput) SetGeoLocationDetails(v *GeoLocationDetails) *GetGeoLocationOutput {
8970	s.GeoLocationDetails = v
8971	return s
8972}
8973
8974// A request for the number of health checks that are associated with the current
8975// AWS account.
8976type GetHealthCheckCountInput struct {
8977	_ struct{} `type:"structure"`
8978}
8979
8980// String returns the string representation
8981func (s GetHealthCheckCountInput) String() string {
8982	return awsutil.Prettify(s)
8983}
8984
8985// GoString returns the string representation
8986func (s GetHealthCheckCountInput) GoString() string {
8987	return s.String()
8988}
8989
8990// A complex type that contains the response to a GetHealthCheckCount request.
8991type GetHealthCheckCountOutput struct {
8992	_ struct{} `type:"structure"`
8993
8994	// The number of health checks associated with the current AWS account.
8995	//
8996	// HealthCheckCount is a required field
8997	HealthCheckCount *int64 `type:"long" required:"true"`
8998}
8999
9000// String returns the string representation
9001func (s GetHealthCheckCountOutput) String() string {
9002	return awsutil.Prettify(s)
9003}
9004
9005// GoString returns the string representation
9006func (s GetHealthCheckCountOutput) GoString() string {
9007	return s.String()
9008}
9009
9010// SetHealthCheckCount sets the HealthCheckCount field's value.
9011func (s *GetHealthCheckCountOutput) SetHealthCheckCount(v int64) *GetHealthCheckCountOutput {
9012	s.HealthCheckCount = &v
9013	return s
9014}
9015
9016// A request to get information about a specified health check.
9017type GetHealthCheckInput struct {
9018	_ struct{} `type:"structure"`
9019
9020	// The identifier that Amazon Route 53 assigned to the health check when you
9021	// created it. When you add or update a resource record set, you use this value
9022	// to specify which health check to use. The value can be up to 64 characters
9023	// long.
9024	//
9025	// HealthCheckId is a required field
9026	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
9027}
9028
9029// String returns the string representation
9030func (s GetHealthCheckInput) String() string {
9031	return awsutil.Prettify(s)
9032}
9033
9034// GoString returns the string representation
9035func (s GetHealthCheckInput) GoString() string {
9036	return s.String()
9037}
9038
9039// Validate inspects the fields of the type to determine if they are valid.
9040func (s *GetHealthCheckInput) Validate() error {
9041	invalidParams := request.ErrInvalidParams{Context: "GetHealthCheckInput"}
9042	if s.HealthCheckId == nil {
9043		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
9044	}
9045	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
9046		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
9047	}
9048
9049	if invalidParams.Len() > 0 {
9050		return invalidParams
9051	}
9052	return nil
9053}
9054
9055// SetHealthCheckId sets the HealthCheckId field's value.
9056func (s *GetHealthCheckInput) SetHealthCheckId(v string) *GetHealthCheckInput {
9057	s.HealthCheckId = &v
9058	return s
9059}
9060
9061// A request for the reason that a health check failed most recently.
9062type GetHealthCheckLastFailureReasonInput struct {
9063	_ struct{} `type:"structure"`
9064
9065	// The ID for the health check for which you want the last failure reason. When
9066	// you created the health check, CreateHealthCheck returned the ID in the response,
9067	// in the HealthCheckId element.
9068	//
9069	// If you want to get the last failure reason for a calculated health check,
9070	// you must use the Amazon Route 53 console or the CloudWatch console. You can't
9071	// use GetHealthCheckLastFailureReason for a calculated health check.
9072	//
9073	// HealthCheckId is a required field
9074	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
9075}
9076
9077// String returns the string representation
9078func (s GetHealthCheckLastFailureReasonInput) String() string {
9079	return awsutil.Prettify(s)
9080}
9081
9082// GoString returns the string representation
9083func (s GetHealthCheckLastFailureReasonInput) GoString() string {
9084	return s.String()
9085}
9086
9087// Validate inspects the fields of the type to determine if they are valid.
9088func (s *GetHealthCheckLastFailureReasonInput) Validate() error {
9089	invalidParams := request.ErrInvalidParams{Context: "GetHealthCheckLastFailureReasonInput"}
9090	if s.HealthCheckId == nil {
9091		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
9092	}
9093	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
9094		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
9095	}
9096
9097	if invalidParams.Len() > 0 {
9098		return invalidParams
9099	}
9100	return nil
9101}
9102
9103// SetHealthCheckId sets the HealthCheckId field's value.
9104func (s *GetHealthCheckLastFailureReasonInput) SetHealthCheckId(v string) *GetHealthCheckLastFailureReasonInput {
9105	s.HealthCheckId = &v
9106	return s
9107}
9108
9109// A complex type that contains the response to a GetHealthCheckLastFailureReason
9110// request.
9111type GetHealthCheckLastFailureReasonOutput struct {
9112	_ struct{} `type:"structure"`
9113
9114	// A list that contains one Observation element for each Amazon Route 53 health
9115	// checker that is reporting a last failure reason.
9116	//
9117	// HealthCheckObservations is a required field
9118	HealthCheckObservations []*HealthCheckObservation `locationNameList:"HealthCheckObservation" type:"list" required:"true"`
9119}
9120
9121// String returns the string representation
9122func (s GetHealthCheckLastFailureReasonOutput) String() string {
9123	return awsutil.Prettify(s)
9124}
9125
9126// GoString returns the string representation
9127func (s GetHealthCheckLastFailureReasonOutput) GoString() string {
9128	return s.String()
9129}
9130
9131// SetHealthCheckObservations sets the HealthCheckObservations field's value.
9132func (s *GetHealthCheckLastFailureReasonOutput) SetHealthCheckObservations(v []*HealthCheckObservation) *GetHealthCheckLastFailureReasonOutput {
9133	s.HealthCheckObservations = v
9134	return s
9135}
9136
9137// A complex type that contains the response to a GetHealthCheck request.
9138type GetHealthCheckOutput struct {
9139	_ struct{} `type:"structure"`
9140
9141	// A complex type that contains information about one health check that is associated
9142	// with the current AWS account.
9143	//
9144	// HealthCheck is a required field
9145	HealthCheck *HealthCheck `type:"structure" required:"true"`
9146}
9147
9148// String returns the string representation
9149func (s GetHealthCheckOutput) String() string {
9150	return awsutil.Prettify(s)
9151}
9152
9153// GoString returns the string representation
9154func (s GetHealthCheckOutput) GoString() string {
9155	return s.String()
9156}
9157
9158// SetHealthCheck sets the HealthCheck field's value.
9159func (s *GetHealthCheckOutput) SetHealthCheck(v *HealthCheck) *GetHealthCheckOutput {
9160	s.HealthCheck = v
9161	return s
9162}
9163
9164// A request to get the status for a health check.
9165type GetHealthCheckStatusInput struct {
9166	_ struct{} `type:"structure"`
9167
9168	// The ID for the health check that you want the current status for. When you
9169	// created the health check, CreateHealthCheck returned the ID in the response,
9170	// in the HealthCheckId element.
9171	//
9172	// If you want to check the status of a calculated health check, you must use
9173	// the Amazon Route 53 console or the CloudWatch console. You can't use GetHealthCheckStatus
9174	// to get the status of a calculated health check.
9175	//
9176	// HealthCheckId is a required field
9177	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
9178}
9179
9180// String returns the string representation
9181func (s GetHealthCheckStatusInput) String() string {
9182	return awsutil.Prettify(s)
9183}
9184
9185// GoString returns the string representation
9186func (s GetHealthCheckStatusInput) GoString() string {
9187	return s.String()
9188}
9189
9190// Validate inspects the fields of the type to determine if they are valid.
9191func (s *GetHealthCheckStatusInput) Validate() error {
9192	invalidParams := request.ErrInvalidParams{Context: "GetHealthCheckStatusInput"}
9193	if s.HealthCheckId == nil {
9194		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
9195	}
9196	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
9197		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
9198	}
9199
9200	if invalidParams.Len() > 0 {
9201		return invalidParams
9202	}
9203	return nil
9204}
9205
9206// SetHealthCheckId sets the HealthCheckId field's value.
9207func (s *GetHealthCheckStatusInput) SetHealthCheckId(v string) *GetHealthCheckStatusInput {
9208	s.HealthCheckId = &v
9209	return s
9210}
9211
9212// A complex type that contains the response to a GetHealthCheck request.
9213type GetHealthCheckStatusOutput struct {
9214	_ struct{} `type:"structure"`
9215
9216	// A list that contains one HealthCheckObservation element for each Amazon Route
9217	// 53 health checker that is reporting a status about the health check endpoint.
9218	//
9219	// HealthCheckObservations is a required field
9220	HealthCheckObservations []*HealthCheckObservation `locationNameList:"HealthCheckObservation" type:"list" required:"true"`
9221}
9222
9223// String returns the string representation
9224func (s GetHealthCheckStatusOutput) String() string {
9225	return awsutil.Prettify(s)
9226}
9227
9228// GoString returns the string representation
9229func (s GetHealthCheckStatusOutput) GoString() string {
9230	return s.String()
9231}
9232
9233// SetHealthCheckObservations sets the HealthCheckObservations field's value.
9234func (s *GetHealthCheckStatusOutput) SetHealthCheckObservations(v []*HealthCheckObservation) *GetHealthCheckStatusOutput {
9235	s.HealthCheckObservations = v
9236	return s
9237}
9238
9239// A request to retrieve a count of all the hosted zones that are associated
9240// with the current AWS account.
9241type GetHostedZoneCountInput struct {
9242	_ struct{} `type:"structure"`
9243}
9244
9245// String returns the string representation
9246func (s GetHostedZoneCountInput) String() string {
9247	return awsutil.Prettify(s)
9248}
9249
9250// GoString returns the string representation
9251func (s GetHostedZoneCountInput) GoString() string {
9252	return s.String()
9253}
9254
9255// A complex type that contains the response to a GetHostedZoneCount request.
9256type GetHostedZoneCountOutput struct {
9257	_ struct{} `type:"structure"`
9258
9259	// The total number of public and private hosted zones that are associated with
9260	// the current AWS account.
9261	//
9262	// HostedZoneCount is a required field
9263	HostedZoneCount *int64 `type:"long" required:"true"`
9264}
9265
9266// String returns the string representation
9267func (s GetHostedZoneCountOutput) String() string {
9268	return awsutil.Prettify(s)
9269}
9270
9271// GoString returns the string representation
9272func (s GetHostedZoneCountOutput) GoString() string {
9273	return s.String()
9274}
9275
9276// SetHostedZoneCount sets the HostedZoneCount field's value.
9277func (s *GetHostedZoneCountOutput) SetHostedZoneCount(v int64) *GetHostedZoneCountOutput {
9278	s.HostedZoneCount = &v
9279	return s
9280}
9281
9282// A request to get information about a specified hosted zone.
9283type GetHostedZoneInput struct {
9284	_ struct{} `type:"structure"`
9285
9286	// The ID of the hosted zone that you want to get information about.
9287	//
9288	// Id is a required field
9289	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9290}
9291
9292// String returns the string representation
9293func (s GetHostedZoneInput) String() string {
9294	return awsutil.Prettify(s)
9295}
9296
9297// GoString returns the string representation
9298func (s GetHostedZoneInput) GoString() string {
9299	return s.String()
9300}
9301
9302// Validate inspects the fields of the type to determine if they are valid.
9303func (s *GetHostedZoneInput) Validate() error {
9304	invalidParams := request.ErrInvalidParams{Context: "GetHostedZoneInput"}
9305	if s.Id == nil {
9306		invalidParams.Add(request.NewErrParamRequired("Id"))
9307	}
9308	if s.Id != nil && len(*s.Id) < 1 {
9309		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9310	}
9311
9312	if invalidParams.Len() > 0 {
9313		return invalidParams
9314	}
9315	return nil
9316}
9317
9318// SetId sets the Id field's value.
9319func (s *GetHostedZoneInput) SetId(v string) *GetHostedZoneInput {
9320	s.Id = &v
9321	return s
9322}
9323
9324// A complex type that contains information about the request to create a hosted
9325// zone.
9326type GetHostedZoneLimitInput struct {
9327	_ struct{} `type:"structure"`
9328
9329	// The ID of the hosted zone that you want to get a limit for.
9330	//
9331	// HostedZoneId is a required field
9332	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9333
9334	// The limit that you want to get. Valid values include the following:
9335	//
9336	//    * MAX_RRSETS_BY_ZONE: The maximum number of records that you can create
9337	//    in the specified hosted zone.
9338	//
9339	//    * MAX_VPCS_ASSOCIATED_BY_ZONE: The maximum number of Amazon VPCs that
9340	//    you can associate with the specified private hosted zone.
9341	//
9342	// Type is a required field
9343	Type *string `location:"uri" locationName:"Type" type:"string" required:"true" enum:"HostedZoneLimitType"`
9344}
9345
9346// String returns the string representation
9347func (s GetHostedZoneLimitInput) String() string {
9348	return awsutil.Prettify(s)
9349}
9350
9351// GoString returns the string representation
9352func (s GetHostedZoneLimitInput) GoString() string {
9353	return s.String()
9354}
9355
9356// Validate inspects the fields of the type to determine if they are valid.
9357func (s *GetHostedZoneLimitInput) Validate() error {
9358	invalidParams := request.ErrInvalidParams{Context: "GetHostedZoneLimitInput"}
9359	if s.HostedZoneId == nil {
9360		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
9361	}
9362	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
9363		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
9364	}
9365	if s.Type == nil {
9366		invalidParams.Add(request.NewErrParamRequired("Type"))
9367	}
9368	if s.Type != nil && len(*s.Type) < 1 {
9369		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
9370	}
9371
9372	if invalidParams.Len() > 0 {
9373		return invalidParams
9374	}
9375	return nil
9376}
9377
9378// SetHostedZoneId sets the HostedZoneId field's value.
9379func (s *GetHostedZoneLimitInput) SetHostedZoneId(v string) *GetHostedZoneLimitInput {
9380	s.HostedZoneId = &v
9381	return s
9382}
9383
9384// SetType sets the Type field's value.
9385func (s *GetHostedZoneLimitInput) SetType(v string) *GetHostedZoneLimitInput {
9386	s.Type = &v
9387	return s
9388}
9389
9390// A complex type that contains the requested limit.
9391type GetHostedZoneLimitOutput struct {
9392	_ struct{} `type:"structure"`
9393
9394	// The current number of entities that you have created of the specified type.
9395	// For example, if you specified MAX_RRSETS_BY_ZONE for the value of Type in
9396	// the request, the value of Count is the current number of records that you
9397	// have created in the specified hosted zone.
9398	//
9399	// Count is a required field
9400	Count *int64 `type:"long" required:"true"`
9401
9402	// The current setting for the specified limit. For example, if you specified
9403	// MAX_RRSETS_BY_ZONE for the value of Type in the request, the value of Limit
9404	// is the maximum number of records that you can create in the specified hosted
9405	// zone.
9406	//
9407	// Limit is a required field
9408	Limit *HostedZoneLimit `type:"structure" required:"true"`
9409}
9410
9411// String returns the string representation
9412func (s GetHostedZoneLimitOutput) String() string {
9413	return awsutil.Prettify(s)
9414}
9415
9416// GoString returns the string representation
9417func (s GetHostedZoneLimitOutput) GoString() string {
9418	return s.String()
9419}
9420
9421// SetCount sets the Count field's value.
9422func (s *GetHostedZoneLimitOutput) SetCount(v int64) *GetHostedZoneLimitOutput {
9423	s.Count = &v
9424	return s
9425}
9426
9427// SetLimit sets the Limit field's value.
9428func (s *GetHostedZoneLimitOutput) SetLimit(v *HostedZoneLimit) *GetHostedZoneLimitOutput {
9429	s.Limit = v
9430	return s
9431}
9432
9433// A complex type that contain the response to a GetHostedZone request.
9434type GetHostedZoneOutput struct {
9435	_ struct{} `type:"structure"`
9436
9437	// A complex type that lists the Amazon Route 53 name servers for the specified
9438	// hosted zone.
9439	DelegationSet *DelegationSet `type:"structure"`
9440
9441	// A complex type that contains general information about the specified hosted
9442	// zone.
9443	//
9444	// HostedZone is a required field
9445	HostedZone *HostedZone `type:"structure" required:"true"`
9446
9447	// A complex type that contains information about the VPCs that are associated
9448	// with the specified hosted zone.
9449	VPCs []*VPC `locationNameList:"VPC" min:"1" type:"list"`
9450}
9451
9452// String returns the string representation
9453func (s GetHostedZoneOutput) String() string {
9454	return awsutil.Prettify(s)
9455}
9456
9457// GoString returns the string representation
9458func (s GetHostedZoneOutput) GoString() string {
9459	return s.String()
9460}
9461
9462// SetDelegationSet sets the DelegationSet field's value.
9463func (s *GetHostedZoneOutput) SetDelegationSet(v *DelegationSet) *GetHostedZoneOutput {
9464	s.DelegationSet = v
9465	return s
9466}
9467
9468// SetHostedZone sets the HostedZone field's value.
9469func (s *GetHostedZoneOutput) SetHostedZone(v *HostedZone) *GetHostedZoneOutput {
9470	s.HostedZone = v
9471	return s
9472}
9473
9474// SetVPCs sets the VPCs field's value.
9475func (s *GetHostedZoneOutput) SetVPCs(v []*VPC) *GetHostedZoneOutput {
9476	s.VPCs = v
9477	return s
9478}
9479
9480type GetQueryLoggingConfigInput struct {
9481	_ struct{} `type:"structure"`
9482
9483	// The ID of the configuration for DNS query logging that you want to get information
9484	// about.
9485	//
9486	// Id is a required field
9487	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
9488}
9489
9490// String returns the string representation
9491func (s GetQueryLoggingConfigInput) String() string {
9492	return awsutil.Prettify(s)
9493}
9494
9495// GoString returns the string representation
9496func (s GetQueryLoggingConfigInput) GoString() string {
9497	return s.String()
9498}
9499
9500// Validate inspects the fields of the type to determine if they are valid.
9501func (s *GetQueryLoggingConfigInput) Validate() error {
9502	invalidParams := request.ErrInvalidParams{Context: "GetQueryLoggingConfigInput"}
9503	if s.Id == nil {
9504		invalidParams.Add(request.NewErrParamRequired("Id"))
9505	}
9506	if s.Id != nil && len(*s.Id) < 1 {
9507		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9508	}
9509
9510	if invalidParams.Len() > 0 {
9511		return invalidParams
9512	}
9513	return nil
9514}
9515
9516// SetId sets the Id field's value.
9517func (s *GetQueryLoggingConfigInput) SetId(v string) *GetQueryLoggingConfigInput {
9518	s.Id = &v
9519	return s
9520}
9521
9522type GetQueryLoggingConfigOutput struct {
9523	_ struct{} `type:"structure"`
9524
9525	// A complex type that contains information about the query logging configuration
9526	// that you specified in a GetQueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetQueryLoggingConfig.html)
9527	// request.
9528	//
9529	// QueryLoggingConfig is a required field
9530	QueryLoggingConfig *QueryLoggingConfig `type:"structure" required:"true"`
9531}
9532
9533// String returns the string representation
9534func (s GetQueryLoggingConfigOutput) String() string {
9535	return awsutil.Prettify(s)
9536}
9537
9538// GoString returns the string representation
9539func (s GetQueryLoggingConfigOutput) GoString() string {
9540	return s.String()
9541}
9542
9543// SetQueryLoggingConfig sets the QueryLoggingConfig field's value.
9544func (s *GetQueryLoggingConfigOutput) SetQueryLoggingConfig(v *QueryLoggingConfig) *GetQueryLoggingConfigOutput {
9545	s.QueryLoggingConfig = v
9546	return s
9547}
9548
9549// A request to get information about a specified reusable delegation set.
9550type GetReusableDelegationSetInput struct {
9551	_ struct{} `type:"structure"`
9552
9553	// The ID of the reusable delegation set that you want to get a list of name
9554	// servers for.
9555	//
9556	// Id is a required field
9557	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9558}
9559
9560// String returns the string representation
9561func (s GetReusableDelegationSetInput) String() string {
9562	return awsutil.Prettify(s)
9563}
9564
9565// GoString returns the string representation
9566func (s GetReusableDelegationSetInput) GoString() string {
9567	return s.String()
9568}
9569
9570// Validate inspects the fields of the type to determine if they are valid.
9571func (s *GetReusableDelegationSetInput) Validate() error {
9572	invalidParams := request.ErrInvalidParams{Context: "GetReusableDelegationSetInput"}
9573	if s.Id == nil {
9574		invalidParams.Add(request.NewErrParamRequired("Id"))
9575	}
9576	if s.Id != nil && len(*s.Id) < 1 {
9577		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9578	}
9579
9580	if invalidParams.Len() > 0 {
9581		return invalidParams
9582	}
9583	return nil
9584}
9585
9586// SetId sets the Id field's value.
9587func (s *GetReusableDelegationSetInput) SetId(v string) *GetReusableDelegationSetInput {
9588	s.Id = &v
9589	return s
9590}
9591
9592// A complex type that contains information about the request to create a hosted
9593// zone.
9594type GetReusableDelegationSetLimitInput struct {
9595	_ struct{} `type:"structure"`
9596
9597	// The ID of the delegation set that you want to get the limit for.
9598	//
9599	// DelegationSetId is a required field
9600	DelegationSetId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
9601
9602	// Specify MAX_ZONES_BY_REUSABLE_DELEGATION_SET to get the maximum number of
9603	// hosted zones that you can associate with the specified reusable delegation
9604	// set.
9605	//
9606	// Type is a required field
9607	Type *string `location:"uri" locationName:"Type" type:"string" required:"true" enum:"ReusableDelegationSetLimitType"`
9608}
9609
9610// String returns the string representation
9611func (s GetReusableDelegationSetLimitInput) String() string {
9612	return awsutil.Prettify(s)
9613}
9614
9615// GoString returns the string representation
9616func (s GetReusableDelegationSetLimitInput) GoString() string {
9617	return s.String()
9618}
9619
9620// Validate inspects the fields of the type to determine if they are valid.
9621func (s *GetReusableDelegationSetLimitInput) Validate() error {
9622	invalidParams := request.ErrInvalidParams{Context: "GetReusableDelegationSetLimitInput"}
9623	if s.DelegationSetId == nil {
9624		invalidParams.Add(request.NewErrParamRequired("DelegationSetId"))
9625	}
9626	if s.DelegationSetId != nil && len(*s.DelegationSetId) < 1 {
9627		invalidParams.Add(request.NewErrParamMinLen("DelegationSetId", 1))
9628	}
9629	if s.Type == nil {
9630		invalidParams.Add(request.NewErrParamRequired("Type"))
9631	}
9632	if s.Type != nil && len(*s.Type) < 1 {
9633		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
9634	}
9635
9636	if invalidParams.Len() > 0 {
9637		return invalidParams
9638	}
9639	return nil
9640}
9641
9642// SetDelegationSetId sets the DelegationSetId field's value.
9643func (s *GetReusableDelegationSetLimitInput) SetDelegationSetId(v string) *GetReusableDelegationSetLimitInput {
9644	s.DelegationSetId = &v
9645	return s
9646}
9647
9648// SetType sets the Type field's value.
9649func (s *GetReusableDelegationSetLimitInput) SetType(v string) *GetReusableDelegationSetLimitInput {
9650	s.Type = &v
9651	return s
9652}
9653
9654// A complex type that contains the requested limit.
9655type GetReusableDelegationSetLimitOutput struct {
9656	_ struct{} `type:"structure"`
9657
9658	// The current number of hosted zones that you can associate with the specified
9659	// reusable delegation set.
9660	//
9661	// Count is a required field
9662	Count *int64 `type:"long" required:"true"`
9663
9664	// The current setting for the limit on hosted zones that you can associate
9665	// with the specified reusable delegation set.
9666	//
9667	// Limit is a required field
9668	Limit *ReusableDelegationSetLimit `type:"structure" required:"true"`
9669}
9670
9671// String returns the string representation
9672func (s GetReusableDelegationSetLimitOutput) String() string {
9673	return awsutil.Prettify(s)
9674}
9675
9676// GoString returns the string representation
9677func (s GetReusableDelegationSetLimitOutput) GoString() string {
9678	return s.String()
9679}
9680
9681// SetCount sets the Count field's value.
9682func (s *GetReusableDelegationSetLimitOutput) SetCount(v int64) *GetReusableDelegationSetLimitOutput {
9683	s.Count = &v
9684	return s
9685}
9686
9687// SetLimit sets the Limit field's value.
9688func (s *GetReusableDelegationSetLimitOutput) SetLimit(v *ReusableDelegationSetLimit) *GetReusableDelegationSetLimitOutput {
9689	s.Limit = v
9690	return s
9691}
9692
9693// A complex type that contains the response to the GetReusableDelegationSet
9694// request.
9695type GetReusableDelegationSetOutput struct {
9696	_ struct{} `type:"structure"`
9697
9698	// A complex type that contains information about the reusable delegation set.
9699	//
9700	// DelegationSet is a required field
9701	DelegationSet *DelegationSet `type:"structure" required:"true"`
9702}
9703
9704// String returns the string representation
9705func (s GetReusableDelegationSetOutput) String() string {
9706	return awsutil.Prettify(s)
9707}
9708
9709// GoString returns the string representation
9710func (s GetReusableDelegationSetOutput) GoString() string {
9711	return s.String()
9712}
9713
9714// SetDelegationSet sets the DelegationSet field's value.
9715func (s *GetReusableDelegationSetOutput) SetDelegationSet(v *DelegationSet) *GetReusableDelegationSetOutput {
9716	s.DelegationSet = v
9717	return s
9718}
9719
9720// Gets information about a specific traffic policy version.
9721type GetTrafficPolicyInput struct {
9722	_ struct{} `type:"structure"`
9723
9724	// The ID of the traffic policy that you want to get information about.
9725	//
9726	// Id is a required field
9727	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
9728
9729	// The version number of the traffic policy that you want to get information
9730	// about.
9731	//
9732	// Version is a required field
9733	Version *int64 `location:"uri" locationName:"Version" min:"1" type:"integer" required:"true"`
9734}
9735
9736// String returns the string representation
9737func (s GetTrafficPolicyInput) String() string {
9738	return awsutil.Prettify(s)
9739}
9740
9741// GoString returns the string representation
9742func (s GetTrafficPolicyInput) GoString() string {
9743	return s.String()
9744}
9745
9746// Validate inspects the fields of the type to determine if they are valid.
9747func (s *GetTrafficPolicyInput) Validate() error {
9748	invalidParams := request.ErrInvalidParams{Context: "GetTrafficPolicyInput"}
9749	if s.Id == nil {
9750		invalidParams.Add(request.NewErrParamRequired("Id"))
9751	}
9752	if s.Id != nil && len(*s.Id) < 1 {
9753		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9754	}
9755	if s.Version == nil {
9756		invalidParams.Add(request.NewErrParamRequired("Version"))
9757	}
9758	if s.Version != nil && *s.Version < 1 {
9759		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
9760	}
9761
9762	if invalidParams.Len() > 0 {
9763		return invalidParams
9764	}
9765	return nil
9766}
9767
9768// SetId sets the Id field's value.
9769func (s *GetTrafficPolicyInput) SetId(v string) *GetTrafficPolicyInput {
9770	s.Id = &v
9771	return s
9772}
9773
9774// SetVersion sets the Version field's value.
9775func (s *GetTrafficPolicyInput) SetVersion(v int64) *GetTrafficPolicyInput {
9776	s.Version = &v
9777	return s
9778}
9779
9780// Request to get the number of traffic policy instances that are associated
9781// with the current AWS account.
9782type GetTrafficPolicyInstanceCountInput struct {
9783	_ struct{} `type:"structure"`
9784}
9785
9786// String returns the string representation
9787func (s GetTrafficPolicyInstanceCountInput) String() string {
9788	return awsutil.Prettify(s)
9789}
9790
9791// GoString returns the string representation
9792func (s GetTrafficPolicyInstanceCountInput) GoString() string {
9793	return s.String()
9794}
9795
9796// A complex type that contains information about the resource record sets that
9797// Amazon Route 53 created based on a specified traffic policy.
9798type GetTrafficPolicyInstanceCountOutput struct {
9799	_ struct{} `type:"structure"`
9800
9801	// The number of traffic policy instances that are associated with the current
9802	// AWS account.
9803	//
9804	// TrafficPolicyInstanceCount is a required field
9805	TrafficPolicyInstanceCount *int64 `type:"integer" required:"true"`
9806}
9807
9808// String returns the string representation
9809func (s GetTrafficPolicyInstanceCountOutput) String() string {
9810	return awsutil.Prettify(s)
9811}
9812
9813// GoString returns the string representation
9814func (s GetTrafficPolicyInstanceCountOutput) GoString() string {
9815	return s.String()
9816}
9817
9818// SetTrafficPolicyInstanceCount sets the TrafficPolicyInstanceCount field's value.
9819func (s *GetTrafficPolicyInstanceCountOutput) SetTrafficPolicyInstanceCount(v int64) *GetTrafficPolicyInstanceCountOutput {
9820	s.TrafficPolicyInstanceCount = &v
9821	return s
9822}
9823
9824// Gets information about a specified traffic policy instance.
9825type GetTrafficPolicyInstanceInput struct {
9826	_ struct{} `type:"structure"`
9827
9828	// The ID of the traffic policy instance that you want to get information about.
9829	//
9830	// Id is a required field
9831	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
9832}
9833
9834// String returns the string representation
9835func (s GetTrafficPolicyInstanceInput) String() string {
9836	return awsutil.Prettify(s)
9837}
9838
9839// GoString returns the string representation
9840func (s GetTrafficPolicyInstanceInput) GoString() string {
9841	return s.String()
9842}
9843
9844// Validate inspects the fields of the type to determine if they are valid.
9845func (s *GetTrafficPolicyInstanceInput) Validate() error {
9846	invalidParams := request.ErrInvalidParams{Context: "GetTrafficPolicyInstanceInput"}
9847	if s.Id == nil {
9848		invalidParams.Add(request.NewErrParamRequired("Id"))
9849	}
9850	if s.Id != nil && len(*s.Id) < 1 {
9851		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9852	}
9853
9854	if invalidParams.Len() > 0 {
9855		return invalidParams
9856	}
9857	return nil
9858}
9859
9860// SetId sets the Id field's value.
9861func (s *GetTrafficPolicyInstanceInput) SetId(v string) *GetTrafficPolicyInstanceInput {
9862	s.Id = &v
9863	return s
9864}
9865
9866// A complex type that contains information about the resource record sets that
9867// Amazon Route 53 created based on a specified traffic policy.
9868type GetTrafficPolicyInstanceOutput struct {
9869	_ struct{} `type:"structure"`
9870
9871	// A complex type that contains settings for the traffic policy instance.
9872	//
9873	// TrafficPolicyInstance is a required field
9874	TrafficPolicyInstance *TrafficPolicyInstance `type:"structure" required:"true"`
9875}
9876
9877// String returns the string representation
9878func (s GetTrafficPolicyInstanceOutput) String() string {
9879	return awsutil.Prettify(s)
9880}
9881
9882// GoString returns the string representation
9883func (s GetTrafficPolicyInstanceOutput) GoString() string {
9884	return s.String()
9885}
9886
9887// SetTrafficPolicyInstance sets the TrafficPolicyInstance field's value.
9888func (s *GetTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPolicyInstance) *GetTrafficPolicyInstanceOutput {
9889	s.TrafficPolicyInstance = v
9890	return s
9891}
9892
9893// A complex type that contains the response information for the request.
9894type GetTrafficPolicyOutput struct {
9895	_ struct{} `type:"structure"`
9896
9897	// A complex type that contains settings for the specified traffic policy.
9898	//
9899	// TrafficPolicy is a required field
9900	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
9901}
9902
9903// String returns the string representation
9904func (s GetTrafficPolicyOutput) String() string {
9905	return awsutil.Prettify(s)
9906}
9907
9908// GoString returns the string representation
9909func (s GetTrafficPolicyOutput) GoString() string {
9910	return s.String()
9911}
9912
9913// SetTrafficPolicy sets the TrafficPolicy field's value.
9914func (s *GetTrafficPolicyOutput) SetTrafficPolicy(v *TrafficPolicy) *GetTrafficPolicyOutput {
9915	s.TrafficPolicy = v
9916	return s
9917}
9918
9919// A complex type that contains information about one health check that is associated
9920// with the current AWS account.
9921type HealthCheck struct {
9922	_ struct{} `type:"structure"`
9923
9924	// A unique string that you specified when you created the health check.
9925	//
9926	// CallerReference is a required field
9927	CallerReference *string `min:"1" type:"string" required:"true"`
9928
9929	// A complex type that contains information about the CloudWatch alarm that
9930	// Amazon Route 53 is monitoring for this health check.
9931	CloudWatchAlarmConfiguration *CloudWatchAlarmConfiguration `type:"structure"`
9932
9933	// A complex type that contains detailed information about one health check.
9934	//
9935	// HealthCheckConfig is a required field
9936	HealthCheckConfig *HealthCheckConfig `type:"structure" required:"true"`
9937
9938	// The version of the health check. You can optionally pass this value in a
9939	// call to UpdateHealthCheck to prevent overwriting another change to the health
9940	// check.
9941	//
9942	// HealthCheckVersion is a required field
9943	HealthCheckVersion *int64 `min:"1" type:"long" required:"true"`
9944
9945	// The identifier that Amazon Route 53assigned to the health check when you
9946	// created it. When you add or update a resource record set, you use this value
9947	// to specify which health check to use. The value can be up to 64 characters
9948	// long.
9949	//
9950	// Id is a required field
9951	Id *string `type:"string" required:"true"`
9952
9953	// If the health check was created by another service, the service that created
9954	// the health check. When a health check is created by another service, you
9955	// can't edit or delete it using Amazon Route 53.
9956	LinkedService *LinkedService `type:"structure"`
9957}
9958
9959// String returns the string representation
9960func (s HealthCheck) String() string {
9961	return awsutil.Prettify(s)
9962}
9963
9964// GoString returns the string representation
9965func (s HealthCheck) GoString() string {
9966	return s.String()
9967}
9968
9969// SetCallerReference sets the CallerReference field's value.
9970func (s *HealthCheck) SetCallerReference(v string) *HealthCheck {
9971	s.CallerReference = &v
9972	return s
9973}
9974
9975// SetCloudWatchAlarmConfiguration sets the CloudWatchAlarmConfiguration field's value.
9976func (s *HealthCheck) SetCloudWatchAlarmConfiguration(v *CloudWatchAlarmConfiguration) *HealthCheck {
9977	s.CloudWatchAlarmConfiguration = v
9978	return s
9979}
9980
9981// SetHealthCheckConfig sets the HealthCheckConfig field's value.
9982func (s *HealthCheck) SetHealthCheckConfig(v *HealthCheckConfig) *HealthCheck {
9983	s.HealthCheckConfig = v
9984	return s
9985}
9986
9987// SetHealthCheckVersion sets the HealthCheckVersion field's value.
9988func (s *HealthCheck) SetHealthCheckVersion(v int64) *HealthCheck {
9989	s.HealthCheckVersion = &v
9990	return s
9991}
9992
9993// SetId sets the Id field's value.
9994func (s *HealthCheck) SetId(v string) *HealthCheck {
9995	s.Id = &v
9996	return s
9997}
9998
9999// SetLinkedService sets the LinkedService field's value.
10000func (s *HealthCheck) SetLinkedService(v *LinkedService) *HealthCheck {
10001	s.LinkedService = v
10002	return s
10003}
10004
10005// A complex type that contains information about the health check.
10006type HealthCheckConfig struct {
10007	_ struct{} `type:"structure"`
10008
10009	// A complex type that identifies the CloudWatch alarm that you want Amazon
10010	// Route 53 health checkers to use to determine whether the specified health
10011	// check is healthy.
10012	AlarmIdentifier *AlarmIdentifier `type:"structure"`
10013
10014	// (CALCULATED Health Checks Only) A complex type that contains one ChildHealthCheck
10015	// element for each health check that you want to associate with a CALCULATED
10016	// health check.
10017	ChildHealthChecks []*string `locationNameList:"ChildHealthCheck" type:"list"`
10018
10019	// Stops Route 53 from performing health checks. When you disable a health check,
10020	// here's what happens:
10021	//
10022	//    * Health checks that check the health of endpoints: Route 53 stops submitting
10023	//    requests to your application, server, or other resource.
10024	//
10025	//    * Calculated health checks: Route 53 stops aggregating the status of the
10026	//    referenced health checks.
10027	//
10028	//    * Health checks that monitor CloudWatch alarms: Route 53 stops monitoring
10029	//    the corresponding CloudWatch metrics.
10030	//
10031	// After you disable a health check, Route 53 considers the status of the health
10032	// check to always be healthy. If you configured DNS failover, Route 53 continues
10033	// to route traffic to the corresponding resources. If you want to stop routing
10034	// traffic to a resource, change the value of Inverted (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted).
10035	//
10036	// Charges for a health check still apply when the health check is disabled.
10037	// For more information, see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
10038	Disabled *bool `type:"boolean"`
10039
10040	// Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName
10041	// to the endpoint in the client_hello message during TLS negotiation. This
10042	// allows the endpoint to respond to HTTPS health check requests with the applicable
10043	// SSL/TLS certificate.
10044	//
10045	// Some endpoints require that HTTPS requests include the host name in the client_hello
10046	// message. If you don't enable SNI, the status of the health check will be
10047	// SSL alert handshake_failure. A health check can also have that status for
10048	// other reasons. If SNI is enabled and you're still getting the error, check
10049	// the SSL/TLS configuration on your endpoint and confirm that your certificate
10050	// is valid.
10051	//
10052	// The SSL/TLS certificate on your endpoint includes a domain name in the Common
10053	// Name field and possibly several more in the Subject Alternative Names field.
10054	// One of the domain names in the certificate should match the value that you
10055	// specify for FullyQualifiedDomainName. If the endpoint responds to the client_hello
10056	// message with a certificate that does not include the domain name that you
10057	// specified in FullyQualifiedDomainName, a health checker will retry the handshake.
10058	// In the second attempt, the health checker will omit FullyQualifiedDomainName
10059	// from the client_hello message.
10060	EnableSNI *bool `type:"boolean"`
10061
10062	// The number of consecutive health checks that an endpoint must pass or fail
10063	// for Amazon Route 53 to change the current status of the endpoint from unhealthy
10064	// to healthy or vice versa. For more information, see How Amazon Route 53 Determines
10065	// Whether an Endpoint Is Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
10066	// in the Amazon Route 53 Developer Guide.
10067	//
10068	// If you don't specify a value for FailureThreshold, the default value is three
10069	// health checks.
10070	FailureThreshold *int64 `min:"1" type:"integer"`
10071
10072	// Amazon Route 53 behavior depends on whether you specify a value for IPAddress.
10073	//
10074	// If you specify a value for IPAddress:
10075	//
10076	// Amazon Route 53 sends health check requests to the specified IPv4 or IPv6
10077	// address and passes the value of FullyQualifiedDomainName in the Host header
10078	// for all health checks except TCP health checks. This is typically the fully
10079	// qualified DNS name of the endpoint on which you want Route 53 to perform
10080	// health checks.
10081	//
10082	// When Route 53 checks the health of an endpoint, here is how it constructs
10083	// the Host header:
10084	//
10085	//    * If you specify a value of 80 for Port and HTTP or HTTP_STR_MATCH for
10086	//    Type, Route 53 passes the value of FullyQualifiedDomainName to the endpoint
10087	//    in the Host header.
10088	//
10089	//    * If you specify a value of 443 for Port and HTTPS or HTTPS_STR_MATCH
10090	//    for Type, Route 53 passes the value of FullyQualifiedDomainName to the
10091	//    endpoint in the Host header.
10092	//
10093	//    * If you specify another value for Port and any value except TCP for Type,
10094	//    Route 53 passes FullyQualifiedDomainName:Port to the endpoint in the Host
10095	//    header.
10096	//
10097	// If you don't specify a value for FullyQualifiedDomainName, Route 53 substitutes
10098	// the value of IPAddress in the Host header in each of the preceding cases.
10099	//
10100	// If you don't specify a value for IPAddress :
10101	//
10102	// Route 53 sends a DNS request to the domain that you specify for FullyQualifiedDomainName
10103	// at the interval that you specify for RequestInterval. Using an IPv4 address
10104	// that DNS returns, Route 53 then checks the health of the endpoint.
10105	//
10106	// If you don't specify a value for IPAddress, Route 53 uses only IPv4 to send
10107	// health checks to the endpoint. If there's no resource record set with a type
10108	// of A for the name that you specify for FullyQualifiedDomainName, the health
10109	// check fails with a "DNS resolution failed" error.
10110	//
10111	// If you want to check the health of weighted, latency, or failover resource
10112	// record sets and you choose to specify the endpoint only by FullyQualifiedDomainName,
10113	// we recommend that you create a separate health check for each endpoint. For
10114	// example, create a health check for each HTTP server that is serving content
10115	// for www.example.com. For the value of FullyQualifiedDomainName, specify the
10116	// domain name of the server (such as us-east-2-www.example.com), not the name
10117	// of the resource record sets (www.example.com).
10118	//
10119	// In this configuration, if you create a health check for which the value of
10120	// FullyQualifiedDomainName matches the name of the resource record sets and
10121	// you then associate the health check with those resource record sets, health
10122	// check results will be unpredictable.
10123	//
10124	// In addition, if the value that you specify for Type is HTTP, HTTPS, HTTP_STR_MATCH,
10125	// or HTTPS_STR_MATCH, Route 53 passes the value of FullyQualifiedDomainName
10126	// in the Host header, as it does when you specify a value for IPAddress. If
10127	// the value of Type is TCP, Route 53 doesn't pass a Host header.
10128	FullyQualifiedDomainName *string `type:"string"`
10129
10130	// The number of child health checks that are associated with a CALCULATED health
10131	// check that Amazon Route 53 must consider healthy for the CALCULATED health
10132	// check to be considered healthy. To specify the child health checks that you
10133	// want to associate with a CALCULATED health check, use the ChildHealthChecks
10134	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks)
10135	// element.
10136	//
10137	// Note the following:
10138	//
10139	//    * If you specify a number greater than the number of child health checks,
10140	//    Route 53 always considers this health check to be unhealthy.
10141	//
10142	//    * If you specify 0, Route 53 always considers this health check to be
10143	//    healthy.
10144	HealthThreshold *int64 `type:"integer"`
10145
10146	// The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53
10147	// to perform health checks on. If you don't specify a value for IPAddress,
10148	// Route 53 sends a DNS request to resolve the domain name that you specify
10149	// in FullyQualifiedDomainName at the interval that you specify in RequestInterval.
10150	// Using an IP address returned by DNS, Route 53 then checks the health of the
10151	// endpoint.
10152	//
10153	// Use one of the following formats for the value of IPAddress:
10154	//
10155	//    * IPv4 address: four values between 0 and 255, separated by periods (.),
10156	//    for example, 192.0.2.44.
10157	//
10158	//    * IPv6 address: eight groups of four hexadecimal values, separated by
10159	//    colons (:), for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. You
10160	//    can also shorten IPv6 addresses as described in RFC 5952, for example,
10161	//    2001:db8:85a3::abcd:1:2345.
10162	//
10163	// If the endpoint is an EC2 instance, we recommend that you create an Elastic
10164	// IP address, associate it with your EC2 instance, and specify the Elastic
10165	// IP address for IPAddress. This ensures that the IP address of your instance
10166	// will never change.
10167	//
10168	// For more information, see FullyQualifiedDomainName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName).
10169	//
10170	// Constraints: Route 53 can't check the health of endpoints for which the IP
10171	// address is in local, private, non-routable, or multicast ranges. For more
10172	// information about IP addresses for which you can't create health checks,
10173	// see the following documents:
10174	//
10175	//    * RFC 5735, Special Use IPv4 Addresses (https://tools.ietf.org/html/rfc5735)
10176	//
10177	//    * RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space (https://tools.ietf.org/html/rfc6598)
10178	//
10179	//    * RFC 5156, Special-Use IPv6 Addresses (https://tools.ietf.org/html/rfc5156)
10180	//
10181	// When the value of Type is CALCULATED or CLOUDWATCH_METRIC, omit IPAddress.
10182	IPAddress *string `type:"string"`
10183
10184	// When CloudWatch has insufficient data about the metric to determine the alarm
10185	// state, the status that you want Amazon Route 53 to assign to the health check:
10186	//
10187	//    * Healthy: Route 53 considers the health check to be healthy.
10188	//
10189	//    * Unhealthy: Route 53 considers the health check to be unhealthy.
10190	//
10191	//    * LastKnownStatus: Route 53 uses the status of the health check from the
10192	//    last time that CloudWatch had sufficient data to determine the alarm state.
10193	//    For new health checks that have no last known status, the default status
10194	//    for the health check is healthy.
10195	InsufficientDataHealthStatus *string `type:"string" enum:"InsufficientDataHealthStatus"`
10196
10197	// Specify whether you want Amazon Route 53 to invert the status of a health
10198	// check, for example, to consider a health check unhealthy when it otherwise
10199	// would be considered healthy.
10200	Inverted *bool `type:"boolean"`
10201
10202	// Specify whether you want Amazon Route 53 to measure the latency between health
10203	// checkers in multiple AWS regions and your endpoint, and to display CloudWatch
10204	// latency graphs on the Health Checks page in the Route 53 console.
10205	//
10206	// You can't change the value of MeasureLatency after you create a health check.
10207	MeasureLatency *bool `type:"boolean"`
10208
10209	// The port on the endpoint on which you want Amazon Route 53 to perform health
10210	// checks. Specify a value for Port only when you specify a value for IPAddress.
10211	Port *int64 `min:"1" type:"integer"`
10212
10213	// A complex type that contains one Region element for each region from which
10214	// you want Amazon Route 53 health checkers to check the specified endpoint.
10215	//
10216	// If you don't specify any regions, Route 53 health checkers automatically
10217	// performs checks from all of the regions that are listed under Valid Values.
10218	//
10219	// If you update a health check to remove a region that has been performing
10220	// health checks, Route 53 will briefly continue to perform checks from that
10221	// region to ensure that some health checkers are always checking the endpoint
10222	// (for example, if you replace three regions with four different regions).
10223	Regions []*string `locationNameList:"Region" min:"3" type:"list"`
10224
10225	// The number of seconds between the time that Amazon Route 53 gets a response
10226	// from your endpoint and the time that it sends the next health check request.
10227	// Each Route 53 health checker makes requests at this interval.
10228	//
10229	// You can't change the value of RequestInterval after you create a health check.
10230	//
10231	// If you don't specify a value for RequestInterval, the default value is 30
10232	// seconds.
10233	RequestInterval *int64 `min:"10" type:"integer"`
10234
10235	// The path, if any, that you want Amazon Route 53 to request when performing
10236	// health checks. The path can be any value for which your endpoint will return
10237	// an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example,
10238	// the file /docs/route53-health-check.html. You can also include query string
10239	// parameters, for example, /welcome.html?language=jp&login=y.
10240	ResourcePath *string `type:"string"`
10241
10242	// If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that
10243	// you want Amazon Route 53 to search for in the response body from the specified
10244	// resource. If the string appears in the response body, Route 53 considers
10245	// the resource healthy.
10246	//
10247	// Route 53 considers case when searching for SearchString in the response body.
10248	SearchString *string `type:"string"`
10249
10250	// The type of health check that you want to create, which indicates how Amazon
10251	// Route 53 determines whether an endpoint is healthy.
10252	//
10253	// You can't change the value of Type after you create a health check.
10254	//
10255	// You can create the following types of health checks:
10256	//
10257	//    * HTTP: Route 53 tries to establish a TCP connection. If successful, Route
10258	//    53 submits an HTTP request and waits for an HTTP status code of 200 or
10259	//    greater and less than 400.
10260	//
10261	//    * HTTPS: Route 53 tries to establish a TCP connection. If successful,
10262	//    Route 53 submits an HTTPS request and waits for an HTTP status code of
10263	//    200 or greater and less than 400. If you specify HTTPS for the value of
10264	//    Type, the endpoint must support TLS v1.0 or later.
10265	//
10266	//    * HTTP_STR_MATCH: Route 53 tries to establish a TCP connection. If successful,
10267	//    Route 53 submits an HTTP request and searches the first 5,120 bytes of
10268	//    the response body for the string that you specify in SearchString.
10269	//
10270	//    * HTTPS_STR_MATCH: Route 53 tries to establish a TCP connection. If successful,
10271	//    Route 53 submits an HTTPS request and searches the first 5,120 bytes of
10272	//    the response body for the string that you specify in SearchString.
10273	//
10274	//    * TCP: Route 53 tries to establish a TCP connection.
10275	//
10276	//    * CLOUDWATCH_METRIC: The health check is associated with a CloudWatch
10277	//    alarm. If the state of the alarm is OK, the health check is considered
10278	//    healthy. If the state is ALARM, the health check is considered unhealthy.
10279	//    If CloudWatch doesn't have sufficient data to determine whether the state
10280	//    is OK or ALARM, the health check status depends on the setting for InsufficientDataHealthStatus:
10281	//    Healthy, Unhealthy, or LastKnownStatus.
10282	//
10283	//    * CALCULATED: For health checks that monitor the status of other health
10284	//    checks, Route 53 adds up the number of health checks that Route 53 health
10285	//    checkers consider to be healthy and compares that number with the value
10286	//    of HealthThreshold.
10287	//
10288	// For more information, see How Route 53 Determines Whether an Endpoint Is
10289	// Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
10290	// in the Amazon Route 53 Developer Guide.
10291	//
10292	// Type is a required field
10293	Type *string `type:"string" required:"true" enum:"HealthCheckType"`
10294}
10295
10296// String returns the string representation
10297func (s HealthCheckConfig) String() string {
10298	return awsutil.Prettify(s)
10299}
10300
10301// GoString returns the string representation
10302func (s HealthCheckConfig) GoString() string {
10303	return s.String()
10304}
10305
10306// Validate inspects the fields of the type to determine if they are valid.
10307func (s *HealthCheckConfig) Validate() error {
10308	invalidParams := request.ErrInvalidParams{Context: "HealthCheckConfig"}
10309	if s.FailureThreshold != nil && *s.FailureThreshold < 1 {
10310		invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1))
10311	}
10312	if s.Port != nil && *s.Port < 1 {
10313		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
10314	}
10315	if s.Regions != nil && len(s.Regions) < 3 {
10316		invalidParams.Add(request.NewErrParamMinLen("Regions", 3))
10317	}
10318	if s.RequestInterval != nil && *s.RequestInterval < 10 {
10319		invalidParams.Add(request.NewErrParamMinValue("RequestInterval", 10))
10320	}
10321	if s.Type == nil {
10322		invalidParams.Add(request.NewErrParamRequired("Type"))
10323	}
10324	if s.AlarmIdentifier != nil {
10325		if err := s.AlarmIdentifier.Validate(); err != nil {
10326			invalidParams.AddNested("AlarmIdentifier", err.(request.ErrInvalidParams))
10327		}
10328	}
10329
10330	if invalidParams.Len() > 0 {
10331		return invalidParams
10332	}
10333	return nil
10334}
10335
10336// SetAlarmIdentifier sets the AlarmIdentifier field's value.
10337func (s *HealthCheckConfig) SetAlarmIdentifier(v *AlarmIdentifier) *HealthCheckConfig {
10338	s.AlarmIdentifier = v
10339	return s
10340}
10341
10342// SetChildHealthChecks sets the ChildHealthChecks field's value.
10343func (s *HealthCheckConfig) SetChildHealthChecks(v []*string) *HealthCheckConfig {
10344	s.ChildHealthChecks = v
10345	return s
10346}
10347
10348// SetDisabled sets the Disabled field's value.
10349func (s *HealthCheckConfig) SetDisabled(v bool) *HealthCheckConfig {
10350	s.Disabled = &v
10351	return s
10352}
10353
10354// SetEnableSNI sets the EnableSNI field's value.
10355func (s *HealthCheckConfig) SetEnableSNI(v bool) *HealthCheckConfig {
10356	s.EnableSNI = &v
10357	return s
10358}
10359
10360// SetFailureThreshold sets the FailureThreshold field's value.
10361func (s *HealthCheckConfig) SetFailureThreshold(v int64) *HealthCheckConfig {
10362	s.FailureThreshold = &v
10363	return s
10364}
10365
10366// SetFullyQualifiedDomainName sets the FullyQualifiedDomainName field's value.
10367func (s *HealthCheckConfig) SetFullyQualifiedDomainName(v string) *HealthCheckConfig {
10368	s.FullyQualifiedDomainName = &v
10369	return s
10370}
10371
10372// SetHealthThreshold sets the HealthThreshold field's value.
10373func (s *HealthCheckConfig) SetHealthThreshold(v int64) *HealthCheckConfig {
10374	s.HealthThreshold = &v
10375	return s
10376}
10377
10378// SetIPAddress sets the IPAddress field's value.
10379func (s *HealthCheckConfig) SetIPAddress(v string) *HealthCheckConfig {
10380	s.IPAddress = &v
10381	return s
10382}
10383
10384// SetInsufficientDataHealthStatus sets the InsufficientDataHealthStatus field's value.
10385func (s *HealthCheckConfig) SetInsufficientDataHealthStatus(v string) *HealthCheckConfig {
10386	s.InsufficientDataHealthStatus = &v
10387	return s
10388}
10389
10390// SetInverted sets the Inverted field's value.
10391func (s *HealthCheckConfig) SetInverted(v bool) *HealthCheckConfig {
10392	s.Inverted = &v
10393	return s
10394}
10395
10396// SetMeasureLatency sets the MeasureLatency field's value.
10397func (s *HealthCheckConfig) SetMeasureLatency(v bool) *HealthCheckConfig {
10398	s.MeasureLatency = &v
10399	return s
10400}
10401
10402// SetPort sets the Port field's value.
10403func (s *HealthCheckConfig) SetPort(v int64) *HealthCheckConfig {
10404	s.Port = &v
10405	return s
10406}
10407
10408// SetRegions sets the Regions field's value.
10409func (s *HealthCheckConfig) SetRegions(v []*string) *HealthCheckConfig {
10410	s.Regions = v
10411	return s
10412}
10413
10414// SetRequestInterval sets the RequestInterval field's value.
10415func (s *HealthCheckConfig) SetRequestInterval(v int64) *HealthCheckConfig {
10416	s.RequestInterval = &v
10417	return s
10418}
10419
10420// SetResourcePath sets the ResourcePath field's value.
10421func (s *HealthCheckConfig) SetResourcePath(v string) *HealthCheckConfig {
10422	s.ResourcePath = &v
10423	return s
10424}
10425
10426// SetSearchString sets the SearchString field's value.
10427func (s *HealthCheckConfig) SetSearchString(v string) *HealthCheckConfig {
10428	s.SearchString = &v
10429	return s
10430}
10431
10432// SetType sets the Type field's value.
10433func (s *HealthCheckConfig) SetType(v string) *HealthCheckConfig {
10434	s.Type = &v
10435	return s
10436}
10437
10438// A complex type that contains the last failure reason as reported by one Amazon
10439// Route 53 health checker.
10440type HealthCheckObservation struct {
10441	_ struct{} `type:"structure"`
10442
10443	// The IP address of the Amazon Route 53 health checker that provided the failure
10444	// reason in StatusReport.
10445	IPAddress *string `type:"string"`
10446
10447	// The region of the Amazon Route 53 health checker that provided the status
10448	// in StatusReport.
10449	Region *string `min:"1" type:"string" enum:"HealthCheckRegion"`
10450
10451	// A complex type that contains the last failure reason as reported by one Amazon
10452	// Route 53 health checker and the time of the failed health check.
10453	StatusReport *StatusReport `type:"structure"`
10454}
10455
10456// String returns the string representation
10457func (s HealthCheckObservation) String() string {
10458	return awsutil.Prettify(s)
10459}
10460
10461// GoString returns the string representation
10462func (s HealthCheckObservation) GoString() string {
10463	return s.String()
10464}
10465
10466// SetIPAddress sets the IPAddress field's value.
10467func (s *HealthCheckObservation) SetIPAddress(v string) *HealthCheckObservation {
10468	s.IPAddress = &v
10469	return s
10470}
10471
10472// SetRegion sets the Region field's value.
10473func (s *HealthCheckObservation) SetRegion(v string) *HealthCheckObservation {
10474	s.Region = &v
10475	return s
10476}
10477
10478// SetStatusReport sets the StatusReport field's value.
10479func (s *HealthCheckObservation) SetStatusReport(v *StatusReport) *HealthCheckObservation {
10480	s.StatusReport = v
10481	return s
10482}
10483
10484// A complex type that contains general information about the hosted zone.
10485type HostedZone struct {
10486	_ struct{} `type:"structure"`
10487
10488	// The value that you specified for CallerReference when you created the hosted
10489	// zone.
10490	//
10491	// CallerReference is a required field
10492	CallerReference *string `min:"1" type:"string" required:"true"`
10493
10494	// A complex type that includes the Comment and PrivateZone elements. If you
10495	// omitted the HostedZoneConfig and Comment elements from the request, the Config
10496	// and Comment elements don't appear in the response.
10497	Config *HostedZoneConfig `type:"structure"`
10498
10499	// The ID that Amazon Route 53 assigned to the hosted zone when you created
10500	// it.
10501	//
10502	// Id is a required field
10503	Id *string `type:"string" required:"true"`
10504
10505	// If the hosted zone was created by another service, the service that created
10506	// the hosted zone. When a hosted zone is created by another service, you can't
10507	// edit or delete it using Route 53.
10508	LinkedService *LinkedService `type:"structure"`
10509
10510	// The name of the domain. For public hosted zones, this is the name that you
10511	// have registered with your DNS registrar.
10512	//
10513	// For information about how to specify characters other than a-z, 0-9, and
10514	// - (hyphen) and how to specify internationalized domain names, see CreateHostedZone
10515	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html).
10516	//
10517	// Name is a required field
10518	Name *string `type:"string" required:"true"`
10519
10520	// The number of resource record sets in the hosted zone.
10521	ResourceRecordSetCount *int64 `type:"long"`
10522}
10523
10524// String returns the string representation
10525func (s HostedZone) String() string {
10526	return awsutil.Prettify(s)
10527}
10528
10529// GoString returns the string representation
10530func (s HostedZone) GoString() string {
10531	return s.String()
10532}
10533
10534// SetCallerReference sets the CallerReference field's value.
10535func (s *HostedZone) SetCallerReference(v string) *HostedZone {
10536	s.CallerReference = &v
10537	return s
10538}
10539
10540// SetConfig sets the Config field's value.
10541func (s *HostedZone) SetConfig(v *HostedZoneConfig) *HostedZone {
10542	s.Config = v
10543	return s
10544}
10545
10546// SetId sets the Id field's value.
10547func (s *HostedZone) SetId(v string) *HostedZone {
10548	s.Id = &v
10549	return s
10550}
10551
10552// SetLinkedService sets the LinkedService field's value.
10553func (s *HostedZone) SetLinkedService(v *LinkedService) *HostedZone {
10554	s.LinkedService = v
10555	return s
10556}
10557
10558// SetName sets the Name field's value.
10559func (s *HostedZone) SetName(v string) *HostedZone {
10560	s.Name = &v
10561	return s
10562}
10563
10564// SetResourceRecordSetCount sets the ResourceRecordSetCount field's value.
10565func (s *HostedZone) SetResourceRecordSetCount(v int64) *HostedZone {
10566	s.ResourceRecordSetCount = &v
10567	return s
10568}
10569
10570// A complex type that contains an optional comment about your hosted zone.
10571// If you don't want to specify a comment, omit both the HostedZoneConfig and
10572// Comment elements.
10573type HostedZoneConfig struct {
10574	_ struct{} `type:"structure"`
10575
10576	// Any comments that you want to include about the hosted zone.
10577	Comment *string `type:"string"`
10578
10579	// A value that indicates whether this is a private hosted zone.
10580	PrivateZone *bool `type:"boolean"`
10581}
10582
10583// String returns the string representation
10584func (s HostedZoneConfig) String() string {
10585	return awsutil.Prettify(s)
10586}
10587
10588// GoString returns the string representation
10589func (s HostedZoneConfig) GoString() string {
10590	return s.String()
10591}
10592
10593// SetComment sets the Comment field's value.
10594func (s *HostedZoneConfig) SetComment(v string) *HostedZoneConfig {
10595	s.Comment = &v
10596	return s
10597}
10598
10599// SetPrivateZone sets the PrivateZone field's value.
10600func (s *HostedZoneConfig) SetPrivateZone(v bool) *HostedZoneConfig {
10601	s.PrivateZone = &v
10602	return s
10603}
10604
10605// A complex type that contains the type of limit that you specified in the
10606// request and the current value for that limit.
10607type HostedZoneLimit struct {
10608	_ struct{} `type:"structure"`
10609
10610	// The limit that you requested. Valid values include the following:
10611	//
10612	//    * MAX_RRSETS_BY_ZONE: The maximum number of records that you can create
10613	//    in the specified hosted zone.
10614	//
10615	//    * MAX_VPCS_ASSOCIATED_BY_ZONE: The maximum number of Amazon VPCs that
10616	//    you can associate with the specified private hosted zone.
10617	//
10618	// Type is a required field
10619	Type *string `type:"string" required:"true" enum:"HostedZoneLimitType"`
10620
10621	// The current value for the limit that is specified by Type.
10622	//
10623	// Value is a required field
10624	Value *int64 `min:"1" type:"long" required:"true"`
10625}
10626
10627// String returns the string representation
10628func (s HostedZoneLimit) String() string {
10629	return awsutil.Prettify(s)
10630}
10631
10632// GoString returns the string representation
10633func (s HostedZoneLimit) GoString() string {
10634	return s.String()
10635}
10636
10637// SetType sets the Type field's value.
10638func (s *HostedZoneLimit) SetType(v string) *HostedZoneLimit {
10639	s.Type = &v
10640	return s
10641}
10642
10643// SetValue sets the Value field's value.
10644func (s *HostedZoneLimit) SetValue(v int64) *HostedZoneLimit {
10645	s.Value = &v
10646	return s
10647}
10648
10649// If a health check or hosted zone was created by another service, LinkedService
10650// is a complex type that describes the service that created the resource. When
10651// a resource is created by another service, you can't edit or delete it using
10652// Amazon Route 53.
10653type LinkedService struct {
10654	_ struct{} `type:"structure"`
10655
10656	// If the health check or hosted zone was created by another service, an optional
10657	// description that can be provided by the other service. When a resource is
10658	// created by another service, you can't edit or delete it using Amazon Route
10659	// 53.
10660	Description *string `type:"string"`
10661
10662	// If the health check or hosted zone was created by another service, the service
10663	// that created the resource. When a resource is created by another service,
10664	// you can't edit or delete it using Amazon Route 53.
10665	ServicePrincipal *string `type:"string"`
10666}
10667
10668// String returns the string representation
10669func (s LinkedService) String() string {
10670	return awsutil.Prettify(s)
10671}
10672
10673// GoString returns the string representation
10674func (s LinkedService) GoString() string {
10675	return s.String()
10676}
10677
10678// SetDescription sets the Description field's value.
10679func (s *LinkedService) SetDescription(v string) *LinkedService {
10680	s.Description = &v
10681	return s
10682}
10683
10684// SetServicePrincipal sets the ServicePrincipal field's value.
10685func (s *LinkedService) SetServicePrincipal(v string) *LinkedService {
10686	s.ServicePrincipal = &v
10687	return s
10688}
10689
10690// A request to get a list of geographic locations that Amazon Route 53 supports
10691// for geolocation resource record sets.
10692type ListGeoLocationsInput struct {
10693	_ struct{} `type:"structure"`
10694
10695	// (Optional) The maximum number of geolocations to be included in the response
10696	// body for this request. If more than maxitems geolocations remain to be listed,
10697	// then the value of the IsTruncated element in the response is true.
10698	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
10699
10700	// The code for the continent with which you want to start listing locations
10701	// that Amazon Route 53 supports for geolocation. If Route 53 has already returned
10702	// a page or more of results, if IsTruncated is true, and if NextContinentCode
10703	// from the previous response has a value, enter that value in startcontinentcode
10704	// to return the next page of results.
10705	//
10706	// Include startcontinentcode only if you want to list continents. Don't include
10707	// startcontinentcode when you're listing countries or countries with their
10708	// subdivisions.
10709	StartContinentCode *string `location:"querystring" locationName:"startcontinentcode" min:"2" type:"string"`
10710
10711	// The code for the country with which you want to start listing locations that
10712	// Amazon Route 53 supports for geolocation. If Route 53 has already returned
10713	// a page or more of results, if IsTruncated is true, and if NextCountryCode
10714	// from the previous response has a value, enter that value in startcountrycode
10715	// to return the next page of results.
10716	//
10717	// Route 53 uses the two-letter country codes that are specified in ISO standard
10718	// 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
10719	StartCountryCode *string `location:"querystring" locationName:"startcountrycode" min:"1" type:"string"`
10720
10721	// The code for the subdivision (for example, state or province) with which
10722	// you want to start listing locations that Amazon Route 53 supports for geolocation.
10723	// If Route 53 has already returned a page or more of results, if IsTruncated
10724	// is true, and if NextSubdivisionCode from the previous response has a value,
10725	// enter that value in startsubdivisioncode to return the next page of results.
10726	//
10727	// To list subdivisions of a country, you must include both startcountrycode
10728	// and startsubdivisioncode.
10729	StartSubdivisionCode *string `location:"querystring" locationName:"startsubdivisioncode" min:"1" type:"string"`
10730}
10731
10732// String returns the string representation
10733func (s ListGeoLocationsInput) String() string {
10734	return awsutil.Prettify(s)
10735}
10736
10737// GoString returns the string representation
10738func (s ListGeoLocationsInput) GoString() string {
10739	return s.String()
10740}
10741
10742// Validate inspects the fields of the type to determine if they are valid.
10743func (s *ListGeoLocationsInput) Validate() error {
10744	invalidParams := request.ErrInvalidParams{Context: "ListGeoLocationsInput"}
10745	if s.StartContinentCode != nil && len(*s.StartContinentCode) < 2 {
10746		invalidParams.Add(request.NewErrParamMinLen("StartContinentCode", 2))
10747	}
10748	if s.StartCountryCode != nil && len(*s.StartCountryCode) < 1 {
10749		invalidParams.Add(request.NewErrParamMinLen("StartCountryCode", 1))
10750	}
10751	if s.StartSubdivisionCode != nil && len(*s.StartSubdivisionCode) < 1 {
10752		invalidParams.Add(request.NewErrParamMinLen("StartSubdivisionCode", 1))
10753	}
10754
10755	if invalidParams.Len() > 0 {
10756		return invalidParams
10757	}
10758	return nil
10759}
10760
10761// SetMaxItems sets the MaxItems field's value.
10762func (s *ListGeoLocationsInput) SetMaxItems(v string) *ListGeoLocationsInput {
10763	s.MaxItems = &v
10764	return s
10765}
10766
10767// SetStartContinentCode sets the StartContinentCode field's value.
10768func (s *ListGeoLocationsInput) SetStartContinentCode(v string) *ListGeoLocationsInput {
10769	s.StartContinentCode = &v
10770	return s
10771}
10772
10773// SetStartCountryCode sets the StartCountryCode field's value.
10774func (s *ListGeoLocationsInput) SetStartCountryCode(v string) *ListGeoLocationsInput {
10775	s.StartCountryCode = &v
10776	return s
10777}
10778
10779// SetStartSubdivisionCode sets the StartSubdivisionCode field's value.
10780func (s *ListGeoLocationsInput) SetStartSubdivisionCode(v string) *ListGeoLocationsInput {
10781	s.StartSubdivisionCode = &v
10782	return s
10783}
10784
10785// A complex type containing the response information for the request.
10786type ListGeoLocationsOutput struct {
10787	_ struct{} `type:"structure"`
10788
10789	// A complex type that contains one GeoLocationDetails element for each location
10790	// that Amazon Route 53 supports for geolocation.
10791	//
10792	// GeoLocationDetailsList is a required field
10793	GeoLocationDetailsList []*GeoLocationDetails `locationNameList:"GeoLocationDetails" type:"list" required:"true"`
10794
10795	// A value that indicates whether more locations remain to be listed after the
10796	// last location in this response. If so, the value of IsTruncated is true.
10797	// To get more values, submit another request and include the values of NextContinentCode,
10798	// NextCountryCode, and NextSubdivisionCode in the startcontinentcode, startcountrycode,
10799	// and startsubdivisioncode, as applicable.
10800	//
10801	// IsTruncated is a required field
10802	IsTruncated *bool `type:"boolean" required:"true"`
10803
10804	// The value that you specified for MaxItems in the request.
10805	//
10806	// MaxItems is a required field
10807	MaxItems *string `type:"string" required:"true"`
10808
10809	// If IsTruncated is true, you can make a follow-up request to display more
10810	// locations. Enter the value of NextContinentCode in the startcontinentcode
10811	// parameter in another ListGeoLocations request.
10812	NextContinentCode *string `min:"2" type:"string"`
10813
10814	// If IsTruncated is true, you can make a follow-up request to display more
10815	// locations. Enter the value of NextCountryCode in the startcountrycode parameter
10816	// in another ListGeoLocations request.
10817	NextCountryCode *string `min:"1" type:"string"`
10818
10819	// If IsTruncated is true, you can make a follow-up request to display more
10820	// locations. Enter the value of NextSubdivisionCode in the startsubdivisioncode
10821	// parameter in another ListGeoLocations request.
10822	NextSubdivisionCode *string `min:"1" type:"string"`
10823}
10824
10825// String returns the string representation
10826func (s ListGeoLocationsOutput) String() string {
10827	return awsutil.Prettify(s)
10828}
10829
10830// GoString returns the string representation
10831func (s ListGeoLocationsOutput) GoString() string {
10832	return s.String()
10833}
10834
10835// SetGeoLocationDetailsList sets the GeoLocationDetailsList field's value.
10836func (s *ListGeoLocationsOutput) SetGeoLocationDetailsList(v []*GeoLocationDetails) *ListGeoLocationsOutput {
10837	s.GeoLocationDetailsList = v
10838	return s
10839}
10840
10841// SetIsTruncated sets the IsTruncated field's value.
10842func (s *ListGeoLocationsOutput) SetIsTruncated(v bool) *ListGeoLocationsOutput {
10843	s.IsTruncated = &v
10844	return s
10845}
10846
10847// SetMaxItems sets the MaxItems field's value.
10848func (s *ListGeoLocationsOutput) SetMaxItems(v string) *ListGeoLocationsOutput {
10849	s.MaxItems = &v
10850	return s
10851}
10852
10853// SetNextContinentCode sets the NextContinentCode field's value.
10854func (s *ListGeoLocationsOutput) SetNextContinentCode(v string) *ListGeoLocationsOutput {
10855	s.NextContinentCode = &v
10856	return s
10857}
10858
10859// SetNextCountryCode sets the NextCountryCode field's value.
10860func (s *ListGeoLocationsOutput) SetNextCountryCode(v string) *ListGeoLocationsOutput {
10861	s.NextCountryCode = &v
10862	return s
10863}
10864
10865// SetNextSubdivisionCode sets the NextSubdivisionCode field's value.
10866func (s *ListGeoLocationsOutput) SetNextSubdivisionCode(v string) *ListGeoLocationsOutput {
10867	s.NextSubdivisionCode = &v
10868	return s
10869}
10870
10871// A request to retrieve a list of the health checks that are associated with
10872// the current AWS account.
10873type ListHealthChecksInput struct {
10874	_ struct{} `type:"structure"`
10875
10876	// If the value of IsTruncated in the previous response was true, you have more
10877	// health checks. To get another group, submit another ListHealthChecks request.
10878	//
10879	// For the value of marker, specify the value of NextMarker from the previous
10880	// response, which is the ID of the first health check that Amazon Route 53
10881	// will return if you submit another request.
10882	//
10883	// If the value of IsTruncated in the previous response was false, there are
10884	// no more health checks to get.
10885	Marker *string `location:"querystring" locationName:"marker" type:"string"`
10886
10887	// The maximum number of health checks that you want ListHealthChecks to return
10888	// in response to the current request. Amazon Route 53 returns a maximum of
10889	// 100 items. If you set MaxItems to a value greater than 100, Route 53 returns
10890	// only the first 100 health checks.
10891	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
10892}
10893
10894// String returns the string representation
10895func (s ListHealthChecksInput) String() string {
10896	return awsutil.Prettify(s)
10897}
10898
10899// GoString returns the string representation
10900func (s ListHealthChecksInput) GoString() string {
10901	return s.String()
10902}
10903
10904// SetMarker sets the Marker field's value.
10905func (s *ListHealthChecksInput) SetMarker(v string) *ListHealthChecksInput {
10906	s.Marker = &v
10907	return s
10908}
10909
10910// SetMaxItems sets the MaxItems field's value.
10911func (s *ListHealthChecksInput) SetMaxItems(v string) *ListHealthChecksInput {
10912	s.MaxItems = &v
10913	return s
10914}
10915
10916// A complex type that contains the response to a ListHealthChecks request.
10917type ListHealthChecksOutput struct {
10918	_ struct{} `type:"structure"`
10919
10920	// A complex type that contains one HealthCheck element for each health check
10921	// that is associated with the current AWS account.
10922	//
10923	// HealthChecks is a required field
10924	HealthChecks []*HealthCheck `locationNameList:"HealthCheck" type:"list" required:"true"`
10925
10926	// A flag that indicates whether there are more health checks to be listed.
10927	// If the response was truncated, you can get the next group of health checks
10928	// by submitting another ListHealthChecks request and specifying the value of
10929	// NextMarker in the marker parameter.
10930	//
10931	// IsTruncated is a required field
10932	IsTruncated *bool `type:"boolean" required:"true"`
10933
10934	// For the second and subsequent calls to ListHealthChecks, Marker is the value
10935	// that you specified for the marker parameter in the previous request.
10936	//
10937	// Marker is a required field
10938	Marker *string `type:"string" required:"true"`
10939
10940	// The value that you specified for the maxitems parameter in the call to ListHealthChecks
10941	// that produced the current response.
10942	//
10943	// MaxItems is a required field
10944	MaxItems *string `type:"string" required:"true"`
10945
10946	// If IsTruncated is true, the value of NextMarker identifies the first health
10947	// check that Amazon Route 53 returns if you submit another ListHealthChecks
10948	// request and specify the value of NextMarker in the marker parameter.
10949	NextMarker *string `type:"string"`
10950}
10951
10952// String returns the string representation
10953func (s ListHealthChecksOutput) String() string {
10954	return awsutil.Prettify(s)
10955}
10956
10957// GoString returns the string representation
10958func (s ListHealthChecksOutput) GoString() string {
10959	return s.String()
10960}
10961
10962// SetHealthChecks sets the HealthChecks field's value.
10963func (s *ListHealthChecksOutput) SetHealthChecks(v []*HealthCheck) *ListHealthChecksOutput {
10964	s.HealthChecks = v
10965	return s
10966}
10967
10968// SetIsTruncated sets the IsTruncated field's value.
10969func (s *ListHealthChecksOutput) SetIsTruncated(v bool) *ListHealthChecksOutput {
10970	s.IsTruncated = &v
10971	return s
10972}
10973
10974// SetMarker sets the Marker field's value.
10975func (s *ListHealthChecksOutput) SetMarker(v string) *ListHealthChecksOutput {
10976	s.Marker = &v
10977	return s
10978}
10979
10980// SetMaxItems sets the MaxItems field's value.
10981func (s *ListHealthChecksOutput) SetMaxItems(v string) *ListHealthChecksOutput {
10982	s.MaxItems = &v
10983	return s
10984}
10985
10986// SetNextMarker sets the NextMarker field's value.
10987func (s *ListHealthChecksOutput) SetNextMarker(v string) *ListHealthChecksOutput {
10988	s.NextMarker = &v
10989	return s
10990}
10991
10992// Retrieves a list of the public and private hosted zones that are associated
10993// with the current AWS account in ASCII order by domain name.
10994type ListHostedZonesByNameInput struct {
10995	_ struct{} `type:"structure"`
10996
10997	// (Optional) For your first request to ListHostedZonesByName, include the dnsname
10998	// parameter only if you want to specify the name of the first hosted zone in
10999	// the response. If you don't include the dnsname parameter, Amazon Route 53
11000	// returns all of the hosted zones that were created by the current AWS account,
11001	// in ASCII order. For subsequent requests, include both dnsname and hostedzoneid
11002	// parameters. For dnsname, specify the value of NextDNSName from the previous
11003	// response.
11004	DNSName *string `location:"querystring" locationName:"dnsname" type:"string"`
11005
11006	// (Optional) For your first request to ListHostedZonesByName, do not include
11007	// the hostedzoneid parameter.
11008	//
11009	// If you have more hosted zones than the value of maxitems, ListHostedZonesByName
11010	// returns only the first maxitems hosted zones. To get the next group of maxitems
11011	// hosted zones, submit another request to ListHostedZonesByName and include
11012	// both dnsname and hostedzoneid parameters. For the value of hostedzoneid,
11013	// specify the value of the NextHostedZoneId element from the previous response.
11014	HostedZoneId *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
11015
11016	// The maximum number of hosted zones to be included in the response body for
11017	// this request. If you have more than maxitems hosted zones, then the value
11018	// of the IsTruncated element in the response is true, and the values of NextDNSName
11019	// and NextHostedZoneId specify the first hosted zone in the next group of maxitems
11020	// hosted zones.
11021	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11022}
11023
11024// String returns the string representation
11025func (s ListHostedZonesByNameInput) String() string {
11026	return awsutil.Prettify(s)
11027}
11028
11029// GoString returns the string representation
11030func (s ListHostedZonesByNameInput) GoString() string {
11031	return s.String()
11032}
11033
11034// SetDNSName sets the DNSName field's value.
11035func (s *ListHostedZonesByNameInput) SetDNSName(v string) *ListHostedZonesByNameInput {
11036	s.DNSName = &v
11037	return s
11038}
11039
11040// SetHostedZoneId sets the HostedZoneId field's value.
11041func (s *ListHostedZonesByNameInput) SetHostedZoneId(v string) *ListHostedZonesByNameInput {
11042	s.HostedZoneId = &v
11043	return s
11044}
11045
11046// SetMaxItems sets the MaxItems field's value.
11047func (s *ListHostedZonesByNameInput) SetMaxItems(v string) *ListHostedZonesByNameInput {
11048	s.MaxItems = &v
11049	return s
11050}
11051
11052// A complex type that contains the response information for the request.
11053type ListHostedZonesByNameOutput struct {
11054	_ struct{} `type:"structure"`
11055
11056	// For the second and subsequent calls to ListHostedZonesByName, DNSName is
11057	// the value that you specified for the dnsname parameter in the request that
11058	// produced the current response.
11059	DNSName *string `type:"string"`
11060
11061	// The ID that Amazon Route 53 assigned to the hosted zone when you created
11062	// it.
11063	HostedZoneId *string `type:"string"`
11064
11065	// A complex type that contains general information about the hosted zone.
11066	//
11067	// HostedZones is a required field
11068	HostedZones []*HostedZone `locationNameList:"HostedZone" type:"list" required:"true"`
11069
11070	// A flag that indicates whether there are more hosted zones to be listed. If
11071	// the response was truncated, you can get the next group of maxitems hosted
11072	// zones by calling ListHostedZonesByName again and specifying the values of
11073	// NextDNSName and NextHostedZoneId elements in the dnsname and hostedzoneid
11074	// parameters.
11075	//
11076	// IsTruncated is a required field
11077	IsTruncated *bool `type:"boolean" required:"true"`
11078
11079	// The value that you specified for the maxitems parameter in the call to ListHostedZonesByName
11080	// that produced the current response.
11081	//
11082	// MaxItems is a required field
11083	MaxItems *string `type:"string" required:"true"`
11084
11085	// If IsTruncated is true, the value of NextDNSName is the name of the first
11086	// hosted zone in the next group of maxitems hosted zones. Call ListHostedZonesByName
11087	// again and specify the value of NextDNSName and NextHostedZoneId in the dnsname
11088	// and hostedzoneid parameters, respectively.
11089	//
11090	// This element is present only if IsTruncated is true.
11091	NextDNSName *string `type:"string"`
11092
11093	// If IsTruncated is true, the value of NextHostedZoneId identifies the first
11094	// hosted zone in the next group of maxitems hosted zones. Call ListHostedZonesByName
11095	// again and specify the value of NextDNSName and NextHostedZoneId in the dnsname
11096	// and hostedzoneid parameters, respectively.
11097	//
11098	// This element is present only if IsTruncated is true.
11099	NextHostedZoneId *string `type:"string"`
11100}
11101
11102// String returns the string representation
11103func (s ListHostedZonesByNameOutput) String() string {
11104	return awsutil.Prettify(s)
11105}
11106
11107// GoString returns the string representation
11108func (s ListHostedZonesByNameOutput) GoString() string {
11109	return s.String()
11110}
11111
11112// SetDNSName sets the DNSName field's value.
11113func (s *ListHostedZonesByNameOutput) SetDNSName(v string) *ListHostedZonesByNameOutput {
11114	s.DNSName = &v
11115	return s
11116}
11117
11118// SetHostedZoneId sets the HostedZoneId field's value.
11119func (s *ListHostedZonesByNameOutput) SetHostedZoneId(v string) *ListHostedZonesByNameOutput {
11120	s.HostedZoneId = &v
11121	return s
11122}
11123
11124// SetHostedZones sets the HostedZones field's value.
11125func (s *ListHostedZonesByNameOutput) SetHostedZones(v []*HostedZone) *ListHostedZonesByNameOutput {
11126	s.HostedZones = v
11127	return s
11128}
11129
11130// SetIsTruncated sets the IsTruncated field's value.
11131func (s *ListHostedZonesByNameOutput) SetIsTruncated(v bool) *ListHostedZonesByNameOutput {
11132	s.IsTruncated = &v
11133	return s
11134}
11135
11136// SetMaxItems sets the MaxItems field's value.
11137func (s *ListHostedZonesByNameOutput) SetMaxItems(v string) *ListHostedZonesByNameOutput {
11138	s.MaxItems = &v
11139	return s
11140}
11141
11142// SetNextDNSName sets the NextDNSName field's value.
11143func (s *ListHostedZonesByNameOutput) SetNextDNSName(v string) *ListHostedZonesByNameOutput {
11144	s.NextDNSName = &v
11145	return s
11146}
11147
11148// SetNextHostedZoneId sets the NextHostedZoneId field's value.
11149func (s *ListHostedZonesByNameOutput) SetNextHostedZoneId(v string) *ListHostedZonesByNameOutput {
11150	s.NextHostedZoneId = &v
11151	return s
11152}
11153
11154// A request to retrieve a list of the public and private hosted zones that
11155// are associated with the current AWS account.
11156type ListHostedZonesInput struct {
11157	_ struct{} `type:"structure"`
11158
11159	// If you're using reusable delegation sets and you want to list all of the
11160	// hosted zones that are associated with a reusable delegation set, specify
11161	// the ID of that reusable delegation set.
11162	DelegationSetId *string `location:"querystring" locationName:"delegationsetid" type:"string"`
11163
11164	// If the value of IsTruncated in the previous response was true, you have more
11165	// hosted zones. To get more hosted zones, submit another ListHostedZones request.
11166	//
11167	// For the value of marker, specify the value of NextMarker from the previous
11168	// response, which is the ID of the first hosted zone that Amazon Route 53 will
11169	// return if you submit another request.
11170	//
11171	// If the value of IsTruncated in the previous response was false, there are
11172	// no more hosted zones to get.
11173	Marker *string `location:"querystring" locationName:"marker" type:"string"`
11174
11175	// (Optional) The maximum number of hosted zones that you want Amazon Route
11176	// 53 to return. If you have more than maxitems hosted zones, the value of IsTruncated
11177	// in the response is true, and the value of NextMarker is the hosted zone ID
11178	// of the first hosted zone that Route 53 will return if you submit another
11179	// request.
11180	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11181}
11182
11183// String returns the string representation
11184func (s ListHostedZonesInput) String() string {
11185	return awsutil.Prettify(s)
11186}
11187
11188// GoString returns the string representation
11189func (s ListHostedZonesInput) GoString() string {
11190	return s.String()
11191}
11192
11193// SetDelegationSetId sets the DelegationSetId field's value.
11194func (s *ListHostedZonesInput) SetDelegationSetId(v string) *ListHostedZonesInput {
11195	s.DelegationSetId = &v
11196	return s
11197}
11198
11199// SetMarker sets the Marker field's value.
11200func (s *ListHostedZonesInput) SetMarker(v string) *ListHostedZonesInput {
11201	s.Marker = &v
11202	return s
11203}
11204
11205// SetMaxItems sets the MaxItems field's value.
11206func (s *ListHostedZonesInput) SetMaxItems(v string) *ListHostedZonesInput {
11207	s.MaxItems = &v
11208	return s
11209}
11210
11211type ListHostedZonesOutput struct {
11212	_ struct{} `type:"structure"`
11213
11214	// A complex type that contains general information about the hosted zone.
11215	//
11216	// HostedZones is a required field
11217	HostedZones []*HostedZone `locationNameList:"HostedZone" type:"list" required:"true"`
11218
11219	// A flag indicating whether there are more hosted zones to be listed. If the
11220	// response was truncated, you can get more hosted zones by submitting another
11221	// ListHostedZones request and specifying the value of NextMarker in the marker
11222	// parameter.
11223	//
11224	// IsTruncated is a required field
11225	IsTruncated *bool `type:"boolean" required:"true"`
11226
11227	// For the second and subsequent calls to ListHostedZones, Marker is the value
11228	// that you specified for the marker parameter in the request that produced
11229	// the current response.
11230	//
11231	// Marker is a required field
11232	Marker *string `type:"string" required:"true"`
11233
11234	// The value that you specified for the maxitems parameter in the call to ListHostedZones
11235	// that produced the current response.
11236	//
11237	// MaxItems is a required field
11238	MaxItems *string `type:"string" required:"true"`
11239
11240	// If IsTruncated is true, the value of NextMarker identifies the first hosted
11241	// zone in the next group of hosted zones. Submit another ListHostedZones request,
11242	// and specify the value of NextMarker from the response in the marker parameter.
11243	//
11244	// This element is present only if IsTruncated is true.
11245	NextMarker *string `type:"string"`
11246}
11247
11248// String returns the string representation
11249func (s ListHostedZonesOutput) String() string {
11250	return awsutil.Prettify(s)
11251}
11252
11253// GoString returns the string representation
11254func (s ListHostedZonesOutput) GoString() string {
11255	return s.String()
11256}
11257
11258// SetHostedZones sets the HostedZones field's value.
11259func (s *ListHostedZonesOutput) SetHostedZones(v []*HostedZone) *ListHostedZonesOutput {
11260	s.HostedZones = v
11261	return s
11262}
11263
11264// SetIsTruncated sets the IsTruncated field's value.
11265func (s *ListHostedZonesOutput) SetIsTruncated(v bool) *ListHostedZonesOutput {
11266	s.IsTruncated = &v
11267	return s
11268}
11269
11270// SetMarker sets the Marker field's value.
11271func (s *ListHostedZonesOutput) SetMarker(v string) *ListHostedZonesOutput {
11272	s.Marker = &v
11273	return s
11274}
11275
11276// SetMaxItems sets the MaxItems field's value.
11277func (s *ListHostedZonesOutput) SetMaxItems(v string) *ListHostedZonesOutput {
11278	s.MaxItems = &v
11279	return s
11280}
11281
11282// SetNextMarker sets the NextMarker field's value.
11283func (s *ListHostedZonesOutput) SetNextMarker(v string) *ListHostedZonesOutput {
11284	s.NextMarker = &v
11285	return s
11286}
11287
11288type ListQueryLoggingConfigsInput struct {
11289	_ struct{} `type:"structure"`
11290
11291	// (Optional) If you want to list the query logging configuration that is associated
11292	// with a hosted zone, specify the ID in HostedZoneId.
11293	//
11294	// If you don't specify a hosted zone ID, ListQueryLoggingConfigs returns all
11295	// of the configurations that are associated with the current AWS account.
11296	HostedZoneId *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
11297
11298	// (Optional) The maximum number of query logging configurations that you want
11299	// Amazon Route 53 to return in response to the current request. If the current
11300	// AWS account has more than MaxResults configurations, use the value of NextToken
11301	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html#API_ListQueryLoggingConfigs_RequestSyntax)
11302	// in the response to get the next page of results.
11303	//
11304	// If you don't specify a value for MaxResults, Route 53 returns up to 100 configurations.
11305	MaxResults *string `location:"querystring" locationName:"maxresults" type:"string"`
11306
11307	// (Optional) If the current AWS account has more than MaxResults query logging
11308	// configurations, use NextToken to get the second and subsequent pages of results.
11309	//
11310	// For the first ListQueryLoggingConfigs request, omit this value.
11311	//
11312	// For the second and subsequent requests, get the value of NextToken from the
11313	// previous response and specify that value for NextToken in the request.
11314	NextToken *string `location:"querystring" locationName:"nexttoken" type:"string"`
11315}
11316
11317// String returns the string representation
11318func (s ListQueryLoggingConfigsInput) String() string {
11319	return awsutil.Prettify(s)
11320}
11321
11322// GoString returns the string representation
11323func (s ListQueryLoggingConfigsInput) GoString() string {
11324	return s.String()
11325}
11326
11327// SetHostedZoneId sets the HostedZoneId field's value.
11328func (s *ListQueryLoggingConfigsInput) SetHostedZoneId(v string) *ListQueryLoggingConfigsInput {
11329	s.HostedZoneId = &v
11330	return s
11331}
11332
11333// SetMaxResults sets the MaxResults field's value.
11334func (s *ListQueryLoggingConfigsInput) SetMaxResults(v string) *ListQueryLoggingConfigsInput {
11335	s.MaxResults = &v
11336	return s
11337}
11338
11339// SetNextToken sets the NextToken field's value.
11340func (s *ListQueryLoggingConfigsInput) SetNextToken(v string) *ListQueryLoggingConfigsInput {
11341	s.NextToken = &v
11342	return s
11343}
11344
11345type ListQueryLoggingConfigsOutput struct {
11346	_ struct{} `type:"structure"`
11347
11348	// If a response includes the last of the query logging configurations that
11349	// are associated with the current AWS account, NextToken doesn't appear in
11350	// the response.
11351	//
11352	// If a response doesn't include the last of the configurations, you can get
11353	// more configurations by submitting another ListQueryLoggingConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html)
11354	// request. Get the value of NextToken that Amazon Route 53 returned in the
11355	// previous response and include it in NextToken in the next request.
11356	NextToken *string `type:"string"`
11357
11358	// An array that contains one QueryLoggingConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_QueryLoggingConfig.html)
11359	// element for each configuration for DNS query logging that is associated with
11360	// the current AWS account.
11361	//
11362	// QueryLoggingConfigs is a required field
11363	QueryLoggingConfigs []*QueryLoggingConfig `locationNameList:"QueryLoggingConfig" type:"list" required:"true"`
11364}
11365
11366// String returns the string representation
11367func (s ListQueryLoggingConfigsOutput) String() string {
11368	return awsutil.Prettify(s)
11369}
11370
11371// GoString returns the string representation
11372func (s ListQueryLoggingConfigsOutput) GoString() string {
11373	return s.String()
11374}
11375
11376// SetNextToken sets the NextToken field's value.
11377func (s *ListQueryLoggingConfigsOutput) SetNextToken(v string) *ListQueryLoggingConfigsOutput {
11378	s.NextToken = &v
11379	return s
11380}
11381
11382// SetQueryLoggingConfigs sets the QueryLoggingConfigs field's value.
11383func (s *ListQueryLoggingConfigsOutput) SetQueryLoggingConfigs(v []*QueryLoggingConfig) *ListQueryLoggingConfigsOutput {
11384	s.QueryLoggingConfigs = v
11385	return s
11386}
11387
11388// A request for the resource record sets that are associated with a specified
11389// hosted zone.
11390type ListResourceRecordSetsInput struct {
11391	_ struct{} `type:"structure"`
11392
11393	// The ID of the hosted zone that contains the resource record sets that you
11394	// want to list.
11395	//
11396	// HostedZoneId is a required field
11397	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
11398
11399	// (Optional) The maximum number of resource records sets to include in the
11400	// response body for this request. If the response includes more than maxitems
11401	// resource record sets, the value of the IsTruncated element in the response
11402	// is true, and the values of the NextRecordName and NextRecordType elements
11403	// in the response identify the first resource record set in the next group
11404	// of maxitems resource record sets.
11405	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11406
11407	// Resource record sets that have a routing policy other than simple: If results
11408	// were truncated for a given DNS name and type, specify the value of NextRecordIdentifier
11409	// from the previous response to get the next resource record set that has the
11410	// current DNS name and type.
11411	StartRecordIdentifier *string `location:"querystring" locationName:"identifier" min:"1" type:"string"`
11412
11413	// The first name in the lexicographic ordering of resource record sets that
11414	// you want to list.
11415	StartRecordName *string `location:"querystring" locationName:"name" type:"string"`
11416
11417	// The type of resource record set to begin the record listing from.
11418	//
11419	// Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX
11420	// | NAPTR | NS | PTR | SOA | SPF | SRV | TXT
11421	//
11422	// Values for weighted, latency, geolocation, and failover resource record sets:
11423	// A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT
11424	//
11425	// Values for alias resource record sets:
11426	//
11427	//    * API Gateway custom regional API or edge-optimized API: A
11428	//
11429	//    * CloudFront distribution: A or AAAA
11430	//
11431	//    * Elastic Beanstalk environment that has a regionalized subdomain: A
11432	//
11433	//    * Elastic Load Balancing load balancer: A | AAAA
11434	//
11435	//    * Amazon S3 bucket: A
11436	//
11437	//    * Amazon VPC interface VPC endpoint: A
11438	//
11439	//    * Another resource record set in this hosted zone: The type of the resource
11440	//    record set that the alias references.
11441	//
11442	// Constraint: Specifying type without specifying name returns an InvalidInput
11443	// error.
11444	StartRecordType *string `location:"querystring" locationName:"type" type:"string" enum:"RRType"`
11445}
11446
11447// String returns the string representation
11448func (s ListResourceRecordSetsInput) String() string {
11449	return awsutil.Prettify(s)
11450}
11451
11452// GoString returns the string representation
11453func (s ListResourceRecordSetsInput) GoString() string {
11454	return s.String()
11455}
11456
11457// Validate inspects the fields of the type to determine if they are valid.
11458func (s *ListResourceRecordSetsInput) Validate() error {
11459	invalidParams := request.ErrInvalidParams{Context: "ListResourceRecordSetsInput"}
11460	if s.HostedZoneId == nil {
11461		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
11462	}
11463	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
11464		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
11465	}
11466	if s.StartRecordIdentifier != nil && len(*s.StartRecordIdentifier) < 1 {
11467		invalidParams.Add(request.NewErrParamMinLen("StartRecordIdentifier", 1))
11468	}
11469
11470	if invalidParams.Len() > 0 {
11471		return invalidParams
11472	}
11473	return nil
11474}
11475
11476// SetHostedZoneId sets the HostedZoneId field's value.
11477func (s *ListResourceRecordSetsInput) SetHostedZoneId(v string) *ListResourceRecordSetsInput {
11478	s.HostedZoneId = &v
11479	return s
11480}
11481
11482// SetMaxItems sets the MaxItems field's value.
11483func (s *ListResourceRecordSetsInput) SetMaxItems(v string) *ListResourceRecordSetsInput {
11484	s.MaxItems = &v
11485	return s
11486}
11487
11488// SetStartRecordIdentifier sets the StartRecordIdentifier field's value.
11489func (s *ListResourceRecordSetsInput) SetStartRecordIdentifier(v string) *ListResourceRecordSetsInput {
11490	s.StartRecordIdentifier = &v
11491	return s
11492}
11493
11494// SetStartRecordName sets the StartRecordName field's value.
11495func (s *ListResourceRecordSetsInput) SetStartRecordName(v string) *ListResourceRecordSetsInput {
11496	s.StartRecordName = &v
11497	return s
11498}
11499
11500// SetStartRecordType sets the StartRecordType field's value.
11501func (s *ListResourceRecordSetsInput) SetStartRecordType(v string) *ListResourceRecordSetsInput {
11502	s.StartRecordType = &v
11503	return s
11504}
11505
11506// A complex type that contains list information for the resource record set.
11507type ListResourceRecordSetsOutput struct {
11508	_ struct{} `type:"structure"`
11509
11510	// A flag that indicates whether more resource record sets remain to be listed.
11511	// If your results were truncated, you can make a follow-up pagination request
11512	// by using the NextRecordName element.
11513	//
11514	// IsTruncated is a required field
11515	IsTruncated *bool `type:"boolean" required:"true"`
11516
11517	// The maximum number of records you requested.
11518	//
11519	// MaxItems is a required field
11520	MaxItems *string `type:"string" required:"true"`
11521
11522	// Resource record sets that have a routing policy other than simple: If results
11523	// were truncated for a given DNS name and type, the value of SetIdentifier
11524	// for the next resource record set that has the current DNS name and type.
11525	//
11526	// For information about routing policies, see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)
11527	// in the Amazon Route 53 Developer Guide.
11528	NextRecordIdentifier *string `min:"1" type:"string"`
11529
11530	// If the results were truncated, the name of the next record in the list.
11531	//
11532	// This element is present only if IsTruncated is true.
11533	NextRecordName *string `type:"string"`
11534
11535	// If the results were truncated, the type of the next record in the list.
11536	//
11537	// This element is present only if IsTruncated is true.
11538	NextRecordType *string `type:"string" enum:"RRType"`
11539
11540	// Information about multiple resource record sets.
11541	//
11542	// ResourceRecordSets is a required field
11543	ResourceRecordSets []*ResourceRecordSet `locationNameList:"ResourceRecordSet" type:"list" required:"true"`
11544}
11545
11546// String returns the string representation
11547func (s ListResourceRecordSetsOutput) String() string {
11548	return awsutil.Prettify(s)
11549}
11550
11551// GoString returns the string representation
11552func (s ListResourceRecordSetsOutput) GoString() string {
11553	return s.String()
11554}
11555
11556// SetIsTruncated sets the IsTruncated field's value.
11557func (s *ListResourceRecordSetsOutput) SetIsTruncated(v bool) *ListResourceRecordSetsOutput {
11558	s.IsTruncated = &v
11559	return s
11560}
11561
11562// SetMaxItems sets the MaxItems field's value.
11563func (s *ListResourceRecordSetsOutput) SetMaxItems(v string) *ListResourceRecordSetsOutput {
11564	s.MaxItems = &v
11565	return s
11566}
11567
11568// SetNextRecordIdentifier sets the NextRecordIdentifier field's value.
11569func (s *ListResourceRecordSetsOutput) SetNextRecordIdentifier(v string) *ListResourceRecordSetsOutput {
11570	s.NextRecordIdentifier = &v
11571	return s
11572}
11573
11574// SetNextRecordName sets the NextRecordName field's value.
11575func (s *ListResourceRecordSetsOutput) SetNextRecordName(v string) *ListResourceRecordSetsOutput {
11576	s.NextRecordName = &v
11577	return s
11578}
11579
11580// SetNextRecordType sets the NextRecordType field's value.
11581func (s *ListResourceRecordSetsOutput) SetNextRecordType(v string) *ListResourceRecordSetsOutput {
11582	s.NextRecordType = &v
11583	return s
11584}
11585
11586// SetResourceRecordSets sets the ResourceRecordSets field's value.
11587func (s *ListResourceRecordSetsOutput) SetResourceRecordSets(v []*ResourceRecordSet) *ListResourceRecordSetsOutput {
11588	s.ResourceRecordSets = v
11589	return s
11590}
11591
11592// A request to get a list of the reusable delegation sets that are associated
11593// with the current AWS account.
11594type ListReusableDelegationSetsInput struct {
11595	_ struct{} `type:"structure"`
11596
11597	// If the value of IsTruncated in the previous response was true, you have more
11598	// reusable delegation sets. To get another group, submit another ListReusableDelegationSets
11599	// request.
11600	//
11601	// For the value of marker, specify the value of NextMarker from the previous
11602	// response, which is the ID of the first reusable delegation set that Amazon
11603	// Route 53 will return if you submit another request.
11604	//
11605	// If the value of IsTruncated in the previous response was false, there are
11606	// no more reusable delegation sets to get.
11607	Marker *string `location:"querystring" locationName:"marker" type:"string"`
11608
11609	// The number of reusable delegation sets that you want Amazon Route 53 to return
11610	// in the response to this request. If you specify a value greater than 100,
11611	// Route 53 returns only the first 100 reusable delegation sets.
11612	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11613}
11614
11615// String returns the string representation
11616func (s ListReusableDelegationSetsInput) String() string {
11617	return awsutil.Prettify(s)
11618}
11619
11620// GoString returns the string representation
11621func (s ListReusableDelegationSetsInput) GoString() string {
11622	return s.String()
11623}
11624
11625// SetMarker sets the Marker field's value.
11626func (s *ListReusableDelegationSetsInput) SetMarker(v string) *ListReusableDelegationSetsInput {
11627	s.Marker = &v
11628	return s
11629}
11630
11631// SetMaxItems sets the MaxItems field's value.
11632func (s *ListReusableDelegationSetsInput) SetMaxItems(v string) *ListReusableDelegationSetsInput {
11633	s.MaxItems = &v
11634	return s
11635}
11636
11637// A complex type that contains information about the reusable delegation sets
11638// that are associated with the current AWS account.
11639type ListReusableDelegationSetsOutput struct {
11640	_ struct{} `type:"structure"`
11641
11642	// A complex type that contains one DelegationSet element for each reusable
11643	// delegation set that was created by the current AWS account.
11644	//
11645	// DelegationSets is a required field
11646	DelegationSets []*DelegationSet `locationNameList:"DelegationSet" type:"list" required:"true"`
11647
11648	// A flag that indicates whether there are more reusable delegation sets to
11649	// be listed.
11650	//
11651	// IsTruncated is a required field
11652	IsTruncated *bool `type:"boolean" required:"true"`
11653
11654	// For the second and subsequent calls to ListReusableDelegationSets, Marker
11655	// is the value that you specified for the marker parameter in the request that
11656	// produced the current response.
11657	//
11658	// Marker is a required field
11659	Marker *string `type:"string" required:"true"`
11660
11661	// The value that you specified for the maxitems parameter in the call to ListReusableDelegationSets
11662	// that produced the current response.
11663	//
11664	// MaxItems is a required field
11665	MaxItems *string `type:"string" required:"true"`
11666
11667	// If IsTruncated is true, the value of NextMarker identifies the next reusable
11668	// delegation set that Amazon Route 53 will return if you submit another ListReusableDelegationSets
11669	// request and specify the value of NextMarker in the marker parameter.
11670	NextMarker *string `type:"string"`
11671}
11672
11673// String returns the string representation
11674func (s ListReusableDelegationSetsOutput) String() string {
11675	return awsutil.Prettify(s)
11676}
11677
11678// GoString returns the string representation
11679func (s ListReusableDelegationSetsOutput) GoString() string {
11680	return s.String()
11681}
11682
11683// SetDelegationSets sets the DelegationSets field's value.
11684func (s *ListReusableDelegationSetsOutput) SetDelegationSets(v []*DelegationSet) *ListReusableDelegationSetsOutput {
11685	s.DelegationSets = v
11686	return s
11687}
11688
11689// SetIsTruncated sets the IsTruncated field's value.
11690func (s *ListReusableDelegationSetsOutput) SetIsTruncated(v bool) *ListReusableDelegationSetsOutput {
11691	s.IsTruncated = &v
11692	return s
11693}
11694
11695// SetMarker sets the Marker field's value.
11696func (s *ListReusableDelegationSetsOutput) SetMarker(v string) *ListReusableDelegationSetsOutput {
11697	s.Marker = &v
11698	return s
11699}
11700
11701// SetMaxItems sets the MaxItems field's value.
11702func (s *ListReusableDelegationSetsOutput) SetMaxItems(v string) *ListReusableDelegationSetsOutput {
11703	s.MaxItems = &v
11704	return s
11705}
11706
11707// SetNextMarker sets the NextMarker field's value.
11708func (s *ListReusableDelegationSetsOutput) SetNextMarker(v string) *ListReusableDelegationSetsOutput {
11709	s.NextMarker = &v
11710	return s
11711}
11712
11713// A complex type containing information about a request for a list of the tags
11714// that are associated with an individual resource.
11715type ListTagsForResourceInput struct {
11716	_ struct{} `type:"structure"`
11717
11718	// The ID of the resource for which you want to retrieve tags.
11719	//
11720	// ResourceId is a required field
11721	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
11722
11723	// The type of the resource.
11724	//
11725	//    * The resource type for health checks is healthcheck.
11726	//
11727	//    * The resource type for hosted zones is hostedzone.
11728	//
11729	// ResourceType is a required field
11730	ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"TagResourceType"`
11731}
11732
11733// String returns the string representation
11734func (s ListTagsForResourceInput) String() string {
11735	return awsutil.Prettify(s)
11736}
11737
11738// GoString returns the string representation
11739func (s ListTagsForResourceInput) GoString() string {
11740	return s.String()
11741}
11742
11743// Validate inspects the fields of the type to determine if they are valid.
11744func (s *ListTagsForResourceInput) Validate() error {
11745	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
11746	if s.ResourceId == nil {
11747		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
11748	}
11749	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
11750		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
11751	}
11752	if s.ResourceType == nil {
11753		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
11754	}
11755	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
11756		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
11757	}
11758
11759	if invalidParams.Len() > 0 {
11760		return invalidParams
11761	}
11762	return nil
11763}
11764
11765// SetResourceId sets the ResourceId field's value.
11766func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
11767	s.ResourceId = &v
11768	return s
11769}
11770
11771// SetResourceType sets the ResourceType field's value.
11772func (s *ListTagsForResourceInput) SetResourceType(v string) *ListTagsForResourceInput {
11773	s.ResourceType = &v
11774	return s
11775}
11776
11777// A complex type that contains information about the health checks or hosted
11778// zones for which you want to list tags.
11779type ListTagsForResourceOutput struct {
11780	_ struct{} `type:"structure"`
11781
11782	// A ResourceTagSet containing tags associated with the specified resource.
11783	//
11784	// ResourceTagSet is a required field
11785	ResourceTagSet *ResourceTagSet `type:"structure" required:"true"`
11786}
11787
11788// String returns the string representation
11789func (s ListTagsForResourceOutput) String() string {
11790	return awsutil.Prettify(s)
11791}
11792
11793// GoString returns the string representation
11794func (s ListTagsForResourceOutput) GoString() string {
11795	return s.String()
11796}
11797
11798// SetResourceTagSet sets the ResourceTagSet field's value.
11799func (s *ListTagsForResourceOutput) SetResourceTagSet(v *ResourceTagSet) *ListTagsForResourceOutput {
11800	s.ResourceTagSet = v
11801	return s
11802}
11803
11804// A complex type that contains information about the health checks or hosted
11805// zones for which you want to list tags.
11806type ListTagsForResourcesInput struct {
11807	_ struct{} `locationName:"ListTagsForResourcesRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
11808
11809	// A complex type that contains the ResourceId element for each resource for
11810	// which you want to get a list of tags.
11811	//
11812	// ResourceIds is a required field
11813	ResourceIds []*string `locationNameList:"ResourceId" min:"1" type:"list" required:"true"`
11814
11815	// The type of the resources.
11816	//
11817	//    * The resource type for health checks is healthcheck.
11818	//
11819	//    * The resource type for hosted zones is hostedzone.
11820	//
11821	// ResourceType is a required field
11822	ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"TagResourceType"`
11823}
11824
11825// String returns the string representation
11826func (s ListTagsForResourcesInput) String() string {
11827	return awsutil.Prettify(s)
11828}
11829
11830// GoString returns the string representation
11831func (s ListTagsForResourcesInput) GoString() string {
11832	return s.String()
11833}
11834
11835// Validate inspects the fields of the type to determine if they are valid.
11836func (s *ListTagsForResourcesInput) Validate() error {
11837	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourcesInput"}
11838	if s.ResourceIds == nil {
11839		invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
11840	}
11841	if s.ResourceIds != nil && len(s.ResourceIds) < 1 {
11842		invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1))
11843	}
11844	if s.ResourceType == nil {
11845		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
11846	}
11847	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
11848		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
11849	}
11850
11851	if invalidParams.Len() > 0 {
11852		return invalidParams
11853	}
11854	return nil
11855}
11856
11857// SetResourceIds sets the ResourceIds field's value.
11858func (s *ListTagsForResourcesInput) SetResourceIds(v []*string) *ListTagsForResourcesInput {
11859	s.ResourceIds = v
11860	return s
11861}
11862
11863// SetResourceType sets the ResourceType field's value.
11864func (s *ListTagsForResourcesInput) SetResourceType(v string) *ListTagsForResourcesInput {
11865	s.ResourceType = &v
11866	return s
11867}
11868
11869// A complex type containing tags for the specified resources.
11870type ListTagsForResourcesOutput struct {
11871	_ struct{} `type:"structure"`
11872
11873	// A list of ResourceTagSets containing tags associated with the specified resources.
11874	//
11875	// ResourceTagSets is a required field
11876	ResourceTagSets []*ResourceTagSet `locationNameList:"ResourceTagSet" type:"list" required:"true"`
11877}
11878
11879// String returns the string representation
11880func (s ListTagsForResourcesOutput) String() string {
11881	return awsutil.Prettify(s)
11882}
11883
11884// GoString returns the string representation
11885func (s ListTagsForResourcesOutput) GoString() string {
11886	return s.String()
11887}
11888
11889// SetResourceTagSets sets the ResourceTagSets field's value.
11890func (s *ListTagsForResourcesOutput) SetResourceTagSets(v []*ResourceTagSet) *ListTagsForResourcesOutput {
11891	s.ResourceTagSets = v
11892	return s
11893}
11894
11895// A complex type that contains the information about the request to list the
11896// traffic policies that are associated with the current AWS account.
11897type ListTrafficPoliciesInput struct {
11898	_ struct{} `type:"structure"`
11899
11900	// (Optional) The maximum number of traffic policies that you want Amazon Route
11901	// 53 to return in response to this request. If you have more than MaxItems
11902	// traffic policies, the value of IsTruncated in the response is true, and the
11903	// value of TrafficPolicyIdMarker is the ID of the first traffic policy that
11904	// Route 53 will return if you submit another request.
11905	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
11906
11907	// (Conditional) For your first request to ListTrafficPolicies, don't include
11908	// the TrafficPolicyIdMarker parameter.
11909	//
11910	// If you have more traffic policies than the value of MaxItems, ListTrafficPolicies
11911	// returns only the first MaxItems traffic policies. To get the next group of
11912	// policies, submit another request to ListTrafficPolicies. For the value of
11913	// TrafficPolicyIdMarker, specify the value of TrafficPolicyIdMarker that was
11914	// returned in the previous response.
11915	TrafficPolicyIdMarker *string `location:"querystring" locationName:"trafficpolicyid" min:"1" type:"string"`
11916}
11917
11918// String returns the string representation
11919func (s ListTrafficPoliciesInput) String() string {
11920	return awsutil.Prettify(s)
11921}
11922
11923// GoString returns the string representation
11924func (s ListTrafficPoliciesInput) GoString() string {
11925	return s.String()
11926}
11927
11928// Validate inspects the fields of the type to determine if they are valid.
11929func (s *ListTrafficPoliciesInput) Validate() error {
11930	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPoliciesInput"}
11931	if s.TrafficPolicyIdMarker != nil && len(*s.TrafficPolicyIdMarker) < 1 {
11932		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyIdMarker", 1))
11933	}
11934
11935	if invalidParams.Len() > 0 {
11936		return invalidParams
11937	}
11938	return nil
11939}
11940
11941// SetMaxItems sets the MaxItems field's value.
11942func (s *ListTrafficPoliciesInput) SetMaxItems(v string) *ListTrafficPoliciesInput {
11943	s.MaxItems = &v
11944	return s
11945}
11946
11947// SetTrafficPolicyIdMarker sets the TrafficPolicyIdMarker field's value.
11948func (s *ListTrafficPoliciesInput) SetTrafficPolicyIdMarker(v string) *ListTrafficPoliciesInput {
11949	s.TrafficPolicyIdMarker = &v
11950	return s
11951}
11952
11953// A complex type that contains the response information for the request.
11954type ListTrafficPoliciesOutput struct {
11955	_ struct{} `type:"structure"`
11956
11957	// A flag that indicates whether there are more traffic policies to be listed.
11958	// If the response was truncated, you can get the next group of traffic policies
11959	// by submitting another ListTrafficPolicies request and specifying the value
11960	// of TrafficPolicyIdMarker in the TrafficPolicyIdMarker request parameter.
11961	//
11962	// IsTruncated is a required field
11963	IsTruncated *bool `type:"boolean" required:"true"`
11964
11965	// The value that you specified for the MaxItems parameter in the ListTrafficPolicies
11966	// request that produced the current response.
11967	//
11968	// MaxItems is a required field
11969	MaxItems *string `type:"string" required:"true"`
11970
11971	// If the value of IsTruncated is true, TrafficPolicyIdMarker is the ID of the
11972	// first traffic policy in the next group of MaxItems traffic policies.
11973	//
11974	// TrafficPolicyIdMarker is a required field
11975	TrafficPolicyIdMarker *string `min:"1" type:"string" required:"true"`
11976
11977	// A list that contains one TrafficPolicySummary element for each traffic policy
11978	// that was created by the current AWS account.
11979	//
11980	// TrafficPolicySummaries is a required field
11981	TrafficPolicySummaries []*TrafficPolicySummary `locationNameList:"TrafficPolicySummary" type:"list" required:"true"`
11982}
11983
11984// String returns the string representation
11985func (s ListTrafficPoliciesOutput) String() string {
11986	return awsutil.Prettify(s)
11987}
11988
11989// GoString returns the string representation
11990func (s ListTrafficPoliciesOutput) GoString() string {
11991	return s.String()
11992}
11993
11994// SetIsTruncated sets the IsTruncated field's value.
11995func (s *ListTrafficPoliciesOutput) SetIsTruncated(v bool) *ListTrafficPoliciesOutput {
11996	s.IsTruncated = &v
11997	return s
11998}
11999
12000// SetMaxItems sets the MaxItems field's value.
12001func (s *ListTrafficPoliciesOutput) SetMaxItems(v string) *ListTrafficPoliciesOutput {
12002	s.MaxItems = &v
12003	return s
12004}
12005
12006// SetTrafficPolicyIdMarker sets the TrafficPolicyIdMarker field's value.
12007func (s *ListTrafficPoliciesOutput) SetTrafficPolicyIdMarker(v string) *ListTrafficPoliciesOutput {
12008	s.TrafficPolicyIdMarker = &v
12009	return s
12010}
12011
12012// SetTrafficPolicySummaries sets the TrafficPolicySummaries field's value.
12013func (s *ListTrafficPoliciesOutput) SetTrafficPolicySummaries(v []*TrafficPolicySummary) *ListTrafficPoliciesOutput {
12014	s.TrafficPolicySummaries = v
12015	return s
12016}
12017
12018// A request for the traffic policy instances that you created in a specified
12019// hosted zone.
12020type ListTrafficPolicyInstancesByHostedZoneInput struct {
12021	_ struct{} `type:"structure"`
12022
12023	// The ID of the hosted zone that you want to list traffic policy instances
12024	// for.
12025	//
12026	// HostedZoneId is a required field
12027	HostedZoneId *string `location:"querystring" locationName:"id" type:"string" required:"true"`
12028
12029	// The maximum number of traffic policy instances to be included in the response
12030	// body for this request. If you have more than MaxItems traffic policy instances,
12031	// the value of the IsTruncated element in the response is true, and the values
12032	// of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker
12033	// represent the first traffic policy instance that Amazon Route 53 will return
12034	// if you submit another request.
12035	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12036
12037	// If the value of IsTruncated in the previous response is true, you have more
12038	// traffic policy instances. To get more traffic policy instances, submit another
12039	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancename,
12040	// specify the value of TrafficPolicyInstanceNameMarker from the previous response,
12041	// which is the name of the first traffic policy instance in the next group
12042	// of traffic policy instances.
12043	//
12044	// If the value of IsTruncated in the previous response was false, there are
12045	// no more traffic policy instances to get.
12046	TrafficPolicyInstanceNameMarker *string `location:"querystring" locationName:"trafficpolicyinstancename" type:"string"`
12047
12048	// If the value of IsTruncated in the previous response is true, you have more
12049	// traffic policy instances. To get more traffic policy instances, submit another
12050	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancetype,
12051	// specify the value of TrafficPolicyInstanceTypeMarker from the previous response,
12052	// which is the type of the first traffic policy instance in the next group
12053	// of traffic policy instances.
12054	//
12055	// If the value of IsTruncated in the previous response was false, there are
12056	// no more traffic policy instances to get.
12057	TrafficPolicyInstanceTypeMarker *string `location:"querystring" locationName:"trafficpolicyinstancetype" type:"string" enum:"RRType"`
12058}
12059
12060// String returns the string representation
12061func (s ListTrafficPolicyInstancesByHostedZoneInput) String() string {
12062	return awsutil.Prettify(s)
12063}
12064
12065// GoString returns the string representation
12066func (s ListTrafficPolicyInstancesByHostedZoneInput) GoString() string {
12067	return s.String()
12068}
12069
12070// Validate inspects the fields of the type to determine if they are valid.
12071func (s *ListTrafficPolicyInstancesByHostedZoneInput) Validate() error {
12072	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPolicyInstancesByHostedZoneInput"}
12073	if s.HostedZoneId == nil {
12074		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
12075	}
12076
12077	if invalidParams.Len() > 0 {
12078		return invalidParams
12079	}
12080	return nil
12081}
12082
12083// SetHostedZoneId sets the HostedZoneId field's value.
12084func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetHostedZoneId(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12085	s.HostedZoneId = &v
12086	return s
12087}
12088
12089// SetMaxItems sets the MaxItems field's value.
12090func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetMaxItems(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12091	s.MaxItems = &v
12092	return s
12093}
12094
12095// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12096func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12097	s.TrafficPolicyInstanceNameMarker = &v
12098	return s
12099}
12100
12101// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12102func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByHostedZoneInput {
12103	s.TrafficPolicyInstanceTypeMarker = &v
12104	return s
12105}
12106
12107// A complex type that contains the response information for the request.
12108type ListTrafficPolicyInstancesByHostedZoneOutput struct {
12109	_ struct{} `type:"structure"`
12110
12111	// A flag that indicates whether there are more traffic policy instances to
12112	// be listed. If the response was truncated, you can get the next group of traffic
12113	// policy instances by submitting another ListTrafficPolicyInstancesByHostedZone
12114	// request and specifying the values of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker,
12115	// and TrafficPolicyInstanceTypeMarker in the corresponding request parameters.
12116	//
12117	// IsTruncated is a required field
12118	IsTruncated *bool `type:"boolean" required:"true"`
12119
12120	// The value that you specified for the MaxItems parameter in the ListTrafficPolicyInstancesByHostedZone
12121	// request that produced the current response.
12122	//
12123	// MaxItems is a required field
12124	MaxItems *string `type:"string" required:"true"`
12125
12126	// If IsTruncated is true, TrafficPolicyInstanceNameMarker is the name of the
12127	// first traffic policy instance in the next group of traffic policy instances.
12128	TrafficPolicyInstanceNameMarker *string `type:"string"`
12129
12130	// If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of
12131	// the resource record sets that are associated with the first traffic policy
12132	// instance in the next group of traffic policy instances.
12133	TrafficPolicyInstanceTypeMarker *string `type:"string" enum:"RRType"`
12134
12135	// A list that contains one TrafficPolicyInstance element for each traffic policy
12136	// instance that matches the elements in the request.
12137	//
12138	// TrafficPolicyInstances is a required field
12139	TrafficPolicyInstances []*TrafficPolicyInstance `locationNameList:"TrafficPolicyInstance" type:"list" required:"true"`
12140}
12141
12142// String returns the string representation
12143func (s ListTrafficPolicyInstancesByHostedZoneOutput) String() string {
12144	return awsutil.Prettify(s)
12145}
12146
12147// GoString returns the string representation
12148func (s ListTrafficPolicyInstancesByHostedZoneOutput) GoString() string {
12149	return s.String()
12150}
12151
12152// SetIsTruncated sets the IsTruncated field's value.
12153func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetIsTruncated(v bool) *ListTrafficPolicyInstancesByHostedZoneOutput {
12154	s.IsTruncated = &v
12155	return s
12156}
12157
12158// SetMaxItems sets the MaxItems field's value.
12159func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetMaxItems(v string) *ListTrafficPolicyInstancesByHostedZoneOutput {
12160	s.MaxItems = &v
12161	return s
12162}
12163
12164// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12165func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByHostedZoneOutput {
12166	s.TrafficPolicyInstanceNameMarker = &v
12167	return s
12168}
12169
12170// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12171func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByHostedZoneOutput {
12172	s.TrafficPolicyInstanceTypeMarker = &v
12173	return s
12174}
12175
12176// SetTrafficPolicyInstances sets the TrafficPolicyInstances field's value.
12177func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstances(v []*TrafficPolicyInstance) *ListTrafficPolicyInstancesByHostedZoneOutput {
12178	s.TrafficPolicyInstances = v
12179	return s
12180}
12181
12182// A complex type that contains the information about the request to list your
12183// traffic policy instances.
12184type ListTrafficPolicyInstancesByPolicyInput struct {
12185	_ struct{} `type:"structure"`
12186
12187	// If the value of IsTruncated in the previous response was true, you have more
12188	// traffic policy instances. To get more traffic policy instances, submit another
12189	// ListTrafficPolicyInstancesByPolicy request.
12190	//
12191	// For the value of hostedzoneid, specify the value of HostedZoneIdMarker from
12192	// the previous response, which is the hosted zone ID of the first traffic policy
12193	// instance that Amazon Route 53 will return if you submit another request.
12194	//
12195	// If the value of IsTruncated in the previous response was false, there are
12196	// no more traffic policy instances to get.
12197	HostedZoneIdMarker *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
12198
12199	// The maximum number of traffic policy instances to be included in the response
12200	// body for this request. If you have more than MaxItems traffic policy instances,
12201	// the value of the IsTruncated element in the response is true, and the values
12202	// of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker
12203	// represent the first traffic policy instance that Amazon Route 53 will return
12204	// if you submit another request.
12205	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12206
12207	// The ID of the traffic policy for which you want to list traffic policy instances.
12208	//
12209	// TrafficPolicyId is a required field
12210	TrafficPolicyId *string `location:"querystring" locationName:"id" min:"1" type:"string" required:"true"`
12211
12212	// If the value of IsTruncated in the previous response was true, you have more
12213	// traffic policy instances. To get more traffic policy instances, submit another
12214	// ListTrafficPolicyInstancesByPolicy request.
12215	//
12216	// For the value of trafficpolicyinstancename, specify the value of TrafficPolicyInstanceNameMarker
12217	// from the previous response, which is the name of the first traffic policy
12218	// instance that Amazon Route 53 will return if you submit another request.
12219	//
12220	// If the value of IsTruncated in the previous response was false, there are
12221	// no more traffic policy instances to get.
12222	TrafficPolicyInstanceNameMarker *string `location:"querystring" locationName:"trafficpolicyinstancename" type:"string"`
12223
12224	// If the value of IsTruncated in the previous response was true, you have more
12225	// traffic policy instances. To get more traffic policy instances, submit another
12226	// ListTrafficPolicyInstancesByPolicy request.
12227	//
12228	// For the value of trafficpolicyinstancetype, specify the value of TrafficPolicyInstanceTypeMarker
12229	// from the previous response, which is the name of the first traffic policy
12230	// instance that Amazon Route 53 will return if you submit another request.
12231	//
12232	// If the value of IsTruncated in the previous response was false, there are
12233	// no more traffic policy instances to get.
12234	TrafficPolicyInstanceTypeMarker *string `location:"querystring" locationName:"trafficpolicyinstancetype" type:"string" enum:"RRType"`
12235
12236	// The version of the traffic policy for which you want to list traffic policy
12237	// instances. The version must be associated with the traffic policy that is
12238	// specified by TrafficPolicyId.
12239	//
12240	// TrafficPolicyVersion is a required field
12241	TrafficPolicyVersion *int64 `location:"querystring" locationName:"version" min:"1" type:"integer" required:"true"`
12242}
12243
12244// String returns the string representation
12245func (s ListTrafficPolicyInstancesByPolicyInput) String() string {
12246	return awsutil.Prettify(s)
12247}
12248
12249// GoString returns the string representation
12250func (s ListTrafficPolicyInstancesByPolicyInput) GoString() string {
12251	return s.String()
12252}
12253
12254// Validate inspects the fields of the type to determine if they are valid.
12255func (s *ListTrafficPolicyInstancesByPolicyInput) Validate() error {
12256	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPolicyInstancesByPolicyInput"}
12257	if s.TrafficPolicyId == nil {
12258		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyId"))
12259	}
12260	if s.TrafficPolicyId != nil && len(*s.TrafficPolicyId) < 1 {
12261		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyId", 1))
12262	}
12263	if s.TrafficPolicyVersion == nil {
12264		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyVersion"))
12265	}
12266	if s.TrafficPolicyVersion != nil && *s.TrafficPolicyVersion < 1 {
12267		invalidParams.Add(request.NewErrParamMinValue("TrafficPolicyVersion", 1))
12268	}
12269
12270	if invalidParams.Len() > 0 {
12271		return invalidParams
12272	}
12273	return nil
12274}
12275
12276// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12277func (s *ListTrafficPolicyInstancesByPolicyInput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesByPolicyInput {
12278	s.HostedZoneIdMarker = &v
12279	return s
12280}
12281
12282// SetMaxItems sets the MaxItems field's value.
12283func (s *ListTrafficPolicyInstancesByPolicyInput) SetMaxItems(v string) *ListTrafficPolicyInstancesByPolicyInput {
12284	s.MaxItems = &v
12285	return s
12286}
12287
12288// SetTrafficPolicyId sets the TrafficPolicyId field's value.
12289func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyId(v string) *ListTrafficPolicyInstancesByPolicyInput {
12290	s.TrafficPolicyId = &v
12291	return s
12292}
12293
12294// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12295func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByPolicyInput {
12296	s.TrafficPolicyInstanceNameMarker = &v
12297	return s
12298}
12299
12300// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12301func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByPolicyInput {
12302	s.TrafficPolicyInstanceTypeMarker = &v
12303	return s
12304}
12305
12306// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
12307func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyVersion(v int64) *ListTrafficPolicyInstancesByPolicyInput {
12308	s.TrafficPolicyVersion = &v
12309	return s
12310}
12311
12312// A complex type that contains the response information for the request.
12313type ListTrafficPolicyInstancesByPolicyOutput struct {
12314	_ struct{} `type:"structure"`
12315
12316	// If IsTruncated is true, HostedZoneIdMarker is the ID of the hosted zone of
12317	// the first traffic policy instance in the next group of traffic policy instances.
12318	HostedZoneIdMarker *string `type:"string"`
12319
12320	// A flag that indicates whether there are more traffic policy instances to
12321	// be listed. If the response was truncated, you can get the next group of traffic
12322	// policy instances by calling ListTrafficPolicyInstancesByPolicy again and
12323	// specifying the values of the HostedZoneIdMarker, TrafficPolicyInstanceNameMarker,
12324	// and TrafficPolicyInstanceTypeMarker elements in the corresponding request
12325	// parameters.
12326	//
12327	// IsTruncated is a required field
12328	IsTruncated *bool `type:"boolean" required:"true"`
12329
12330	// The value that you specified for the MaxItems parameter in the call to ListTrafficPolicyInstancesByPolicy
12331	// that produced the current response.
12332	//
12333	// MaxItems is a required field
12334	MaxItems *string `type:"string" required:"true"`
12335
12336	// If IsTruncated is true, TrafficPolicyInstanceNameMarker is the name of the
12337	// first traffic policy instance in the next group of MaxItems traffic policy
12338	// instances.
12339	TrafficPolicyInstanceNameMarker *string `type:"string"`
12340
12341	// If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of
12342	// the resource record sets that are associated with the first traffic policy
12343	// instance in the next group of MaxItems traffic policy instances.
12344	TrafficPolicyInstanceTypeMarker *string `type:"string" enum:"RRType"`
12345
12346	// A list that contains one TrafficPolicyInstance element for each traffic policy
12347	// instance that matches the elements in the request.
12348	//
12349	// TrafficPolicyInstances is a required field
12350	TrafficPolicyInstances []*TrafficPolicyInstance `locationNameList:"TrafficPolicyInstance" type:"list" required:"true"`
12351}
12352
12353// String returns the string representation
12354func (s ListTrafficPolicyInstancesByPolicyOutput) String() string {
12355	return awsutil.Prettify(s)
12356}
12357
12358// GoString returns the string representation
12359func (s ListTrafficPolicyInstancesByPolicyOutput) GoString() string {
12360	return s.String()
12361}
12362
12363// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12364func (s *ListTrafficPolicyInstancesByPolicyOutput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12365	s.HostedZoneIdMarker = &v
12366	return s
12367}
12368
12369// SetIsTruncated sets the IsTruncated field's value.
12370func (s *ListTrafficPolicyInstancesByPolicyOutput) SetIsTruncated(v bool) *ListTrafficPolicyInstancesByPolicyOutput {
12371	s.IsTruncated = &v
12372	return s
12373}
12374
12375// SetMaxItems sets the MaxItems field's value.
12376func (s *ListTrafficPolicyInstancesByPolicyOutput) SetMaxItems(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12377	s.MaxItems = &v
12378	return s
12379}
12380
12381// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12382func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12383	s.TrafficPolicyInstanceNameMarker = &v
12384	return s
12385}
12386
12387// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12388func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesByPolicyOutput {
12389	s.TrafficPolicyInstanceTypeMarker = &v
12390	return s
12391}
12392
12393// SetTrafficPolicyInstances sets the TrafficPolicyInstances field's value.
12394func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstances(v []*TrafficPolicyInstance) *ListTrafficPolicyInstancesByPolicyOutput {
12395	s.TrafficPolicyInstances = v
12396	return s
12397}
12398
12399// A request to get information about the traffic policy instances that you
12400// created by using the current AWS account.
12401type ListTrafficPolicyInstancesInput struct {
12402	_ struct{} `type:"structure"`
12403
12404	// If the value of IsTruncated in the previous response was true, you have more
12405	// traffic policy instances. To get more traffic policy instances, submit another
12406	// ListTrafficPolicyInstances request. For the value of HostedZoneId, specify
12407	// the value of HostedZoneIdMarker from the previous response, which is the
12408	// hosted zone ID of the first traffic policy instance in the next group of
12409	// traffic policy instances.
12410	//
12411	// If the value of IsTruncated in the previous response was false, there are
12412	// no more traffic policy instances to get.
12413	HostedZoneIdMarker *string `location:"querystring" locationName:"hostedzoneid" type:"string"`
12414
12415	// The maximum number of traffic policy instances that you want Amazon Route
12416	// 53 to return in response to a ListTrafficPolicyInstances request. If you
12417	// have more than MaxItems traffic policy instances, the value of the IsTruncated
12418	// element in the response is true, and the values of HostedZoneIdMarker, TrafficPolicyInstanceNameMarker,
12419	// and TrafficPolicyInstanceTypeMarker represent the first traffic policy instance
12420	// in the next group of MaxItems traffic policy instances.
12421	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12422
12423	// If the value of IsTruncated in the previous response was true, you have more
12424	// traffic policy instances. To get more traffic policy instances, submit another
12425	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancename,
12426	// specify the value of TrafficPolicyInstanceNameMarker from the previous response,
12427	// which is the name of the first traffic policy instance in the next group
12428	// of traffic policy instances.
12429	//
12430	// If the value of IsTruncated in the previous response was false, there are
12431	// no more traffic policy instances to get.
12432	TrafficPolicyInstanceNameMarker *string `location:"querystring" locationName:"trafficpolicyinstancename" type:"string"`
12433
12434	// If the value of IsTruncated in the previous response was true, you have more
12435	// traffic policy instances. To get more traffic policy instances, submit another
12436	// ListTrafficPolicyInstances request. For the value of trafficpolicyinstancetype,
12437	// specify the value of TrafficPolicyInstanceTypeMarker from the previous response,
12438	// which is the type of the first traffic policy instance in the next group
12439	// of traffic policy instances.
12440	//
12441	// If the value of IsTruncated in the previous response was false, there are
12442	// no more traffic policy instances to get.
12443	TrafficPolicyInstanceTypeMarker *string `location:"querystring" locationName:"trafficpolicyinstancetype" type:"string" enum:"RRType"`
12444}
12445
12446// String returns the string representation
12447func (s ListTrafficPolicyInstancesInput) String() string {
12448	return awsutil.Prettify(s)
12449}
12450
12451// GoString returns the string representation
12452func (s ListTrafficPolicyInstancesInput) GoString() string {
12453	return s.String()
12454}
12455
12456// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12457func (s *ListTrafficPolicyInstancesInput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesInput {
12458	s.HostedZoneIdMarker = &v
12459	return s
12460}
12461
12462// SetMaxItems sets the MaxItems field's value.
12463func (s *ListTrafficPolicyInstancesInput) SetMaxItems(v string) *ListTrafficPolicyInstancesInput {
12464	s.MaxItems = &v
12465	return s
12466}
12467
12468// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12469func (s *ListTrafficPolicyInstancesInput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesInput {
12470	s.TrafficPolicyInstanceNameMarker = &v
12471	return s
12472}
12473
12474// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12475func (s *ListTrafficPolicyInstancesInput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesInput {
12476	s.TrafficPolicyInstanceTypeMarker = &v
12477	return s
12478}
12479
12480// A complex type that contains the response information for the request.
12481type ListTrafficPolicyInstancesOutput struct {
12482	_ struct{} `type:"structure"`
12483
12484	// If IsTruncated is true, HostedZoneIdMarker is the ID of the hosted zone of
12485	// the first traffic policy instance that Route 53 will return if you submit
12486	// another ListTrafficPolicyInstances request.
12487	HostedZoneIdMarker *string `type:"string"`
12488
12489	// A flag that indicates whether there are more traffic policy instances to
12490	// be listed. If the response was truncated, you can get more traffic policy
12491	// instances by calling ListTrafficPolicyInstances again and specifying the
12492	// values of the HostedZoneIdMarker, TrafficPolicyInstanceNameMarker, and TrafficPolicyInstanceTypeMarker
12493	// in the corresponding request parameters.
12494	//
12495	// IsTruncated is a required field
12496	IsTruncated *bool `type:"boolean" required:"true"`
12497
12498	// The value that you specified for the MaxItems parameter in the call to ListTrafficPolicyInstances
12499	// that produced the current response.
12500	//
12501	// MaxItems is a required field
12502	MaxItems *string `type:"string" required:"true"`
12503
12504	// If IsTruncated is true, TrafficPolicyInstanceNameMarker is the name of the
12505	// first traffic policy instance that Route 53 will return if you submit another
12506	// ListTrafficPolicyInstances request.
12507	TrafficPolicyInstanceNameMarker *string `type:"string"`
12508
12509	// If IsTruncated is true, TrafficPolicyInstanceTypeMarker is the DNS type of
12510	// the resource record sets that are associated with the first traffic policy
12511	// instance that Amazon Route 53 will return if you submit another ListTrafficPolicyInstances
12512	// request.
12513	TrafficPolicyInstanceTypeMarker *string `type:"string" enum:"RRType"`
12514
12515	// A list that contains one TrafficPolicyInstance element for each traffic policy
12516	// instance that matches the elements in the request.
12517	//
12518	// TrafficPolicyInstances is a required field
12519	TrafficPolicyInstances []*TrafficPolicyInstance `locationNameList:"TrafficPolicyInstance" type:"list" required:"true"`
12520}
12521
12522// String returns the string representation
12523func (s ListTrafficPolicyInstancesOutput) String() string {
12524	return awsutil.Prettify(s)
12525}
12526
12527// GoString returns the string representation
12528func (s ListTrafficPolicyInstancesOutput) GoString() string {
12529	return s.String()
12530}
12531
12532// SetHostedZoneIdMarker sets the HostedZoneIdMarker field's value.
12533func (s *ListTrafficPolicyInstancesOutput) SetHostedZoneIdMarker(v string) *ListTrafficPolicyInstancesOutput {
12534	s.HostedZoneIdMarker = &v
12535	return s
12536}
12537
12538// SetIsTruncated sets the IsTruncated field's value.
12539func (s *ListTrafficPolicyInstancesOutput) SetIsTruncated(v bool) *ListTrafficPolicyInstancesOutput {
12540	s.IsTruncated = &v
12541	return s
12542}
12543
12544// SetMaxItems sets the MaxItems field's value.
12545func (s *ListTrafficPolicyInstancesOutput) SetMaxItems(v string) *ListTrafficPolicyInstancesOutput {
12546	s.MaxItems = &v
12547	return s
12548}
12549
12550// SetTrafficPolicyInstanceNameMarker sets the TrafficPolicyInstanceNameMarker field's value.
12551func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstanceNameMarker(v string) *ListTrafficPolicyInstancesOutput {
12552	s.TrafficPolicyInstanceNameMarker = &v
12553	return s
12554}
12555
12556// SetTrafficPolicyInstanceTypeMarker sets the TrafficPolicyInstanceTypeMarker field's value.
12557func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstanceTypeMarker(v string) *ListTrafficPolicyInstancesOutput {
12558	s.TrafficPolicyInstanceTypeMarker = &v
12559	return s
12560}
12561
12562// SetTrafficPolicyInstances sets the TrafficPolicyInstances field's value.
12563func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstances(v []*TrafficPolicyInstance) *ListTrafficPolicyInstancesOutput {
12564	s.TrafficPolicyInstances = v
12565	return s
12566}
12567
12568// A complex type that contains the information about the request to list your
12569// traffic policies.
12570type ListTrafficPolicyVersionsInput struct {
12571	_ struct{} `type:"structure"`
12572
12573	// Specify the value of Id of the traffic policy for which you want to list
12574	// all versions.
12575	//
12576	// Id is a required field
12577	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
12578
12579	// The maximum number of traffic policy versions that you want Amazon Route
12580	// 53 to include in the response body for this request. If the specified traffic
12581	// policy has more than MaxItems versions, the value of IsTruncated in the response
12582	// is true, and the value of the TrafficPolicyVersionMarker element is the ID
12583	// of the first version that Route 53 will return if you submit another request.
12584	MaxItems *string `location:"querystring" locationName:"maxitems" type:"string"`
12585
12586	// For your first request to ListTrafficPolicyVersions, don't include the TrafficPolicyVersionMarker
12587	// parameter.
12588	//
12589	// If you have more traffic policy versions than the value of MaxItems, ListTrafficPolicyVersions
12590	// returns only the first group of MaxItems versions. To get more traffic policy
12591	// versions, submit another ListTrafficPolicyVersions request. For the value
12592	// of TrafficPolicyVersionMarker, specify the value of TrafficPolicyVersionMarker
12593	// in the previous response.
12594	TrafficPolicyVersionMarker *string `location:"querystring" locationName:"trafficpolicyversion" type:"string"`
12595}
12596
12597// String returns the string representation
12598func (s ListTrafficPolicyVersionsInput) String() string {
12599	return awsutil.Prettify(s)
12600}
12601
12602// GoString returns the string representation
12603func (s ListTrafficPolicyVersionsInput) GoString() string {
12604	return s.String()
12605}
12606
12607// Validate inspects the fields of the type to determine if they are valid.
12608func (s *ListTrafficPolicyVersionsInput) Validate() error {
12609	invalidParams := request.ErrInvalidParams{Context: "ListTrafficPolicyVersionsInput"}
12610	if s.Id == nil {
12611		invalidParams.Add(request.NewErrParamRequired("Id"))
12612	}
12613	if s.Id != nil && len(*s.Id) < 1 {
12614		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
12615	}
12616
12617	if invalidParams.Len() > 0 {
12618		return invalidParams
12619	}
12620	return nil
12621}
12622
12623// SetId sets the Id field's value.
12624func (s *ListTrafficPolicyVersionsInput) SetId(v string) *ListTrafficPolicyVersionsInput {
12625	s.Id = &v
12626	return s
12627}
12628
12629// SetMaxItems sets the MaxItems field's value.
12630func (s *ListTrafficPolicyVersionsInput) SetMaxItems(v string) *ListTrafficPolicyVersionsInput {
12631	s.MaxItems = &v
12632	return s
12633}
12634
12635// SetTrafficPolicyVersionMarker sets the TrafficPolicyVersionMarker field's value.
12636func (s *ListTrafficPolicyVersionsInput) SetTrafficPolicyVersionMarker(v string) *ListTrafficPolicyVersionsInput {
12637	s.TrafficPolicyVersionMarker = &v
12638	return s
12639}
12640
12641// A complex type that contains the response information for the request.
12642type ListTrafficPolicyVersionsOutput struct {
12643	_ struct{} `type:"structure"`
12644
12645	// A flag that indicates whether there are more traffic policies to be listed.
12646	// If the response was truncated, you can get the next group of traffic policies
12647	// by submitting another ListTrafficPolicyVersions request and specifying the
12648	// value of NextMarker in the marker parameter.
12649	//
12650	// IsTruncated is a required field
12651	IsTruncated *bool `type:"boolean" required:"true"`
12652
12653	// The value that you specified for the maxitems parameter in the ListTrafficPolicyVersions
12654	// request that produced the current response.
12655	//
12656	// MaxItems is a required field
12657	MaxItems *string `type:"string" required:"true"`
12658
12659	// A list that contains one TrafficPolicy element for each traffic policy version
12660	// that is associated with the specified traffic policy.
12661	//
12662	// TrafficPolicies is a required field
12663	TrafficPolicies []*TrafficPolicy `locationNameList:"TrafficPolicy" type:"list" required:"true"`
12664
12665	// If IsTruncated is true, the value of TrafficPolicyVersionMarker identifies
12666	// the first traffic policy that Amazon Route 53 will return if you submit another
12667	// request. Call ListTrafficPolicyVersions again and specify the value of TrafficPolicyVersionMarker
12668	// in the TrafficPolicyVersionMarker request parameter.
12669	//
12670	// This element is present only if IsTruncated is true.
12671	//
12672	// TrafficPolicyVersionMarker is a required field
12673	TrafficPolicyVersionMarker *string `type:"string" required:"true"`
12674}
12675
12676// String returns the string representation
12677func (s ListTrafficPolicyVersionsOutput) String() string {
12678	return awsutil.Prettify(s)
12679}
12680
12681// GoString returns the string representation
12682func (s ListTrafficPolicyVersionsOutput) GoString() string {
12683	return s.String()
12684}
12685
12686// SetIsTruncated sets the IsTruncated field's value.
12687func (s *ListTrafficPolicyVersionsOutput) SetIsTruncated(v bool) *ListTrafficPolicyVersionsOutput {
12688	s.IsTruncated = &v
12689	return s
12690}
12691
12692// SetMaxItems sets the MaxItems field's value.
12693func (s *ListTrafficPolicyVersionsOutput) SetMaxItems(v string) *ListTrafficPolicyVersionsOutput {
12694	s.MaxItems = &v
12695	return s
12696}
12697
12698// SetTrafficPolicies sets the TrafficPolicies field's value.
12699func (s *ListTrafficPolicyVersionsOutput) SetTrafficPolicies(v []*TrafficPolicy) *ListTrafficPolicyVersionsOutput {
12700	s.TrafficPolicies = v
12701	return s
12702}
12703
12704// SetTrafficPolicyVersionMarker sets the TrafficPolicyVersionMarker field's value.
12705func (s *ListTrafficPolicyVersionsOutput) SetTrafficPolicyVersionMarker(v string) *ListTrafficPolicyVersionsOutput {
12706	s.TrafficPolicyVersionMarker = &v
12707	return s
12708}
12709
12710// A complex type that contains information about that can be associated with
12711// your hosted zone.
12712type ListVPCAssociationAuthorizationsInput struct {
12713	_ struct{} `type:"structure"`
12714
12715	// The ID of the hosted zone for which you want a list of VPCs that can be associated
12716	// with the hosted zone.
12717	//
12718	// HostedZoneId is a required field
12719	HostedZoneId *string `location:"uri" locationName:"Id" type:"string" required:"true"`
12720
12721	// Optional: An integer that specifies the maximum number of VPCs that you want
12722	// Amazon Route 53 to return. If you don't specify a value for MaxResults, Route
12723	// 53 returns up to 50 VPCs per page.
12724	MaxResults *string `location:"querystring" locationName:"maxresults" type:"string"`
12725
12726	// Optional: If a response includes a NextToken element, there are more VPCs
12727	// that can be associated with the specified hosted zone. To get the next page
12728	// of results, submit another request, and include the value of NextToken from
12729	// the response in the nexttoken parameter in another ListVPCAssociationAuthorizations
12730	// request.
12731	NextToken *string `location:"querystring" locationName:"nexttoken" type:"string"`
12732}
12733
12734// String returns the string representation
12735func (s ListVPCAssociationAuthorizationsInput) String() string {
12736	return awsutil.Prettify(s)
12737}
12738
12739// GoString returns the string representation
12740func (s ListVPCAssociationAuthorizationsInput) GoString() string {
12741	return s.String()
12742}
12743
12744// Validate inspects the fields of the type to determine if they are valid.
12745func (s *ListVPCAssociationAuthorizationsInput) Validate() error {
12746	invalidParams := request.ErrInvalidParams{Context: "ListVPCAssociationAuthorizationsInput"}
12747	if s.HostedZoneId == nil {
12748		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
12749	}
12750	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
12751		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
12752	}
12753
12754	if invalidParams.Len() > 0 {
12755		return invalidParams
12756	}
12757	return nil
12758}
12759
12760// SetHostedZoneId sets the HostedZoneId field's value.
12761func (s *ListVPCAssociationAuthorizationsInput) SetHostedZoneId(v string) *ListVPCAssociationAuthorizationsInput {
12762	s.HostedZoneId = &v
12763	return s
12764}
12765
12766// SetMaxResults sets the MaxResults field's value.
12767func (s *ListVPCAssociationAuthorizationsInput) SetMaxResults(v string) *ListVPCAssociationAuthorizationsInput {
12768	s.MaxResults = &v
12769	return s
12770}
12771
12772// SetNextToken sets the NextToken field's value.
12773func (s *ListVPCAssociationAuthorizationsInput) SetNextToken(v string) *ListVPCAssociationAuthorizationsInput {
12774	s.NextToken = &v
12775	return s
12776}
12777
12778// A complex type that contains the response information for the request.
12779type ListVPCAssociationAuthorizationsOutput struct {
12780	_ struct{} `type:"structure"`
12781
12782	// The ID of the hosted zone that you can associate the listed VPCs with.
12783	//
12784	// HostedZoneId is a required field
12785	HostedZoneId *string `type:"string" required:"true"`
12786
12787	// When the response includes a NextToken element, there are more VPCs that
12788	// can be associated with the specified hosted zone. To get the next page of
12789	// VPCs, submit another ListVPCAssociationAuthorizations request, and include
12790	// the value of the NextToken element from the response in the nexttoken request
12791	// parameter.
12792	NextToken *string `type:"string"`
12793
12794	// The list of VPCs that are authorized to be associated with the specified
12795	// hosted zone.
12796	//
12797	// VPCs is a required field
12798	VPCs []*VPC `locationNameList:"VPC" min:"1" type:"list" required:"true"`
12799}
12800
12801// String returns the string representation
12802func (s ListVPCAssociationAuthorizationsOutput) String() string {
12803	return awsutil.Prettify(s)
12804}
12805
12806// GoString returns the string representation
12807func (s ListVPCAssociationAuthorizationsOutput) GoString() string {
12808	return s.String()
12809}
12810
12811// SetHostedZoneId sets the HostedZoneId field's value.
12812func (s *ListVPCAssociationAuthorizationsOutput) SetHostedZoneId(v string) *ListVPCAssociationAuthorizationsOutput {
12813	s.HostedZoneId = &v
12814	return s
12815}
12816
12817// SetNextToken sets the NextToken field's value.
12818func (s *ListVPCAssociationAuthorizationsOutput) SetNextToken(v string) *ListVPCAssociationAuthorizationsOutput {
12819	s.NextToken = &v
12820	return s
12821}
12822
12823// SetVPCs sets the VPCs field's value.
12824func (s *ListVPCAssociationAuthorizationsOutput) SetVPCs(v []*VPC) *ListVPCAssociationAuthorizationsOutput {
12825	s.VPCs = v
12826	return s
12827}
12828
12829// A complex type that contains information about a configuration for DNS query
12830// logging.
12831type QueryLoggingConfig struct {
12832	_ struct{} `type:"structure"`
12833
12834	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon
12835	// Route 53 is publishing logs to.
12836	//
12837	// CloudWatchLogsLogGroupArn is a required field
12838	CloudWatchLogsLogGroupArn *string `type:"string" required:"true"`
12839
12840	// The ID of the hosted zone that CloudWatch Logs is logging queries for.
12841	//
12842	// HostedZoneId is a required field
12843	HostedZoneId *string `type:"string" required:"true"`
12844
12845	// The ID for a configuration for DNS query logging.
12846	//
12847	// Id is a required field
12848	Id *string `min:"1" type:"string" required:"true"`
12849}
12850
12851// String returns the string representation
12852func (s QueryLoggingConfig) String() string {
12853	return awsutil.Prettify(s)
12854}
12855
12856// GoString returns the string representation
12857func (s QueryLoggingConfig) GoString() string {
12858	return s.String()
12859}
12860
12861// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value.
12862func (s *QueryLoggingConfig) SetCloudWatchLogsLogGroupArn(v string) *QueryLoggingConfig {
12863	s.CloudWatchLogsLogGroupArn = &v
12864	return s
12865}
12866
12867// SetHostedZoneId sets the HostedZoneId field's value.
12868func (s *QueryLoggingConfig) SetHostedZoneId(v string) *QueryLoggingConfig {
12869	s.HostedZoneId = &v
12870	return s
12871}
12872
12873// SetId sets the Id field's value.
12874func (s *QueryLoggingConfig) SetId(v string) *QueryLoggingConfig {
12875	s.Id = &v
12876	return s
12877}
12878
12879// Information specific to the resource record.
12880//
12881// If you're creating an alias resource record set, omit ResourceRecord.
12882type ResourceRecord struct {
12883	_ struct{} `type:"structure"`
12884
12885	// The current or new DNS record value, not to exceed 4,000 characters. In the
12886	// case of a DELETE action, if the current value does not match the actual value,
12887	// an error is returned. For descriptions about how to format Value for different
12888	// record types, see Supported DNS Resource Record Types (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html)
12889	// in the Amazon Route 53 Developer Guide.
12890	//
12891	// You can specify more than one value for all record types except CNAME and
12892	// SOA.
12893	//
12894	// If you're creating an alias resource record set, omit Value.
12895	//
12896	// Value is a required field
12897	Value *string `type:"string" required:"true"`
12898}
12899
12900// String returns the string representation
12901func (s ResourceRecord) String() string {
12902	return awsutil.Prettify(s)
12903}
12904
12905// GoString returns the string representation
12906func (s ResourceRecord) GoString() string {
12907	return s.String()
12908}
12909
12910// Validate inspects the fields of the type to determine if they are valid.
12911func (s *ResourceRecord) Validate() error {
12912	invalidParams := request.ErrInvalidParams{Context: "ResourceRecord"}
12913	if s.Value == nil {
12914		invalidParams.Add(request.NewErrParamRequired("Value"))
12915	}
12916
12917	if invalidParams.Len() > 0 {
12918		return invalidParams
12919	}
12920	return nil
12921}
12922
12923// SetValue sets the Value field's value.
12924func (s *ResourceRecord) SetValue(v string) *ResourceRecord {
12925	s.Value = &v
12926	return s
12927}
12928
12929// Information about the resource record set to create or delete.
12930type ResourceRecordSet struct {
12931	_ struct{} `type:"structure"`
12932
12933	// Alias resource record sets only: Information about the AWS resource, such
12934	// as a CloudFront distribution or an Amazon S3 bucket, that you want to route
12935	// traffic to.
12936	//
12937	// If you're creating resource records sets for a private hosted zone, note
12938	// the following:
12939	//
12940	//    * You can't create an alias resource record set in a private hosted zone
12941	//    to route traffic to a CloudFront distribution.
12942	//
12943	//    * Creating geolocation alias resource record sets or latency alias resource
12944	//    record sets in a private hosted zone is unsupported.
12945	//
12946	//    * For information about creating failover resource record sets in a private
12947	//    hosted zone, see Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)
12948	//    in the Amazon Route 53 Developer Guide.
12949	AliasTarget *AliasTarget `type:"structure"`
12950
12951	// Failover resource record sets only: To configure failover, you add the Failover
12952	// element to two resource record sets. For one resource record set, you specify
12953	// PRIMARY as the value for Failover; for the other resource record set, you
12954	// specify SECONDARY. In addition, you include the HealthCheckId element and
12955	// specify the health check that you want Amazon Route 53 to perform for each
12956	// resource record set.
12957	//
12958	// Except where noted, the following failover behaviors assume that you have
12959	// included the HealthCheckId element in both resource record sets:
12960	//
12961	//    * When the primary resource record set is healthy, Route 53 responds to
12962	//    DNS queries with the applicable value from the primary resource record
12963	//    set regardless of the health of the secondary resource record set.
12964	//
12965	//    * When the primary resource record set is unhealthy and the secondary
12966	//    resource record set is healthy, Route 53 responds to DNS queries with
12967	//    the applicable value from the secondary resource record set.
12968	//
12969	//    * When the secondary resource record set is unhealthy, Route 53 responds
12970	//    to DNS queries with the applicable value from the primary resource record
12971	//    set regardless of the health of the primary resource record set.
12972	//
12973	//    * If you omit the HealthCheckId element for the secondary resource record
12974	//    set, and if the primary resource record set is unhealthy, Route 53 always
12975	//    responds to DNS queries with the applicable value from the secondary resource
12976	//    record set. This is true regardless of the health of the associated endpoint.
12977	//
12978	// You can't create non-failover resource record sets that have the same values
12979	// for the Name and Type elements as failover resource record sets.
12980	//
12981	// For failover alias resource record sets, you must also include the EvaluateTargetHealth
12982	// element and set the value to true.
12983	//
12984	// For more information about configuring failover for Route 53, see the following
12985	// topics in the Amazon Route 53 Developer Guide:
12986	//
12987	//    * Route 53 Health Checks and DNS Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)
12988	//
12989	//    * Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)
12990	Failover *string `type:"string" enum:"ResourceRecordSetFailover"`
12991
12992	// Geolocation resource record sets only: A complex type that lets you control
12993	// how Amazon Route 53 responds to DNS queries based on the geographic origin
12994	// of the query. For example, if you want all queries from Africa to be routed
12995	// to a web server with an IP address of 192.0.2.111, create a resource record
12996	// set with a Type of A and a ContinentCode of AF.
12997	//
12998	// Creating geolocation and geolocation alias resource record sets in private
12999	// hosted zones is not supported.
13000	//
13001	// If you create separate resource record sets for overlapping geographic regions
13002	// (for example, one resource record set for a continent and one for a country
13003	// on the same continent), priority goes to the smallest geographic region.
13004	// This allows you to route most queries for a continent to one resource and
13005	// to route queries for a country on that continent to a different resource.
13006	//
13007	// You can't create two geolocation resource record sets that specify the same
13008	// geographic location.
13009	//
13010	// The value * in the CountryCode element matches all geographic locations that
13011	// aren't specified in other geolocation resource record sets that have the
13012	// same values for the Name and Type elements.
13013	//
13014	// Geolocation works by mapping IP addresses to locations. However, some IP
13015	// addresses aren't mapped to geographic locations, so even if you create geolocation
13016	// resource record sets that cover all seven continents, Route 53 will receive
13017	// some DNS queries from locations that it can't identify. We recommend that
13018	// you create a resource record set for which the value of CountryCode is *,
13019	// which handles both queries that come from locations for which you haven't
13020	// created geolocation resource record sets and queries from IP addresses that
13021	// aren't mapped to a location. If you don't create a * resource record set,
13022	// Route 53 returns a "no answer" response for queries from those locations.
13023	//
13024	// You can't create non-geolocation resource record sets that have the same
13025	// values for the Name and Type elements as geolocation resource record sets.
13026	GeoLocation *GeoLocation `type:"structure"`
13027
13028	// If you want Amazon Route 53 to return this resource record set in response
13029	// to a DNS query only when the status of a health check is healthy, include
13030	// the HealthCheckId element and specify the ID of the applicable health check.
13031	//
13032	// Route 53 determines whether a resource record set is healthy based on one
13033	// of the following:
13034	//
13035	//    * By periodically sending a request to the endpoint that is specified
13036	//    in the health check
13037	//
13038	//    * By aggregating the status of a specified group of health checks (calculated
13039	//    health checks)
13040	//
13041	//    * By determining the current state of a CloudWatch alarm (CloudWatch metric
13042	//    health checks)
13043	//
13044	// Route 53 doesn't check the health of the endpoint that is specified in the
13045	// resource record set, for example, the endpoint specified by the IP address
13046	// in the Value element. When you add a HealthCheckId element to a resource
13047	// record set, Route 53 checks the health of the endpoint that you specified
13048	// in the health check.
13049	//
13050	// For more information, see the following topics in the Amazon Route 53 Developer
13051	// Guide:
13052	//
13053	//    * 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)
13054	//
13055	//    * Route 53 Health Checks and DNS Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)
13056	//
13057	//    * Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)
13058	//
13059	// When to Specify HealthCheckId
13060	//
13061	// Specifying a value for HealthCheckId is useful only when Route 53 is choosing
13062	// between two or more resource record sets to respond to a DNS query, and you
13063	// want Route 53 to base the choice in part on the status of a health check.
13064	// Configuring health checks makes sense only in the following configurations:
13065	//
13066	//    * Non-alias resource record sets: You're checking the health of a group
13067	//    of non-alias resource record sets that have the same routing policy, name,
13068	//    and type (such as multiple weighted records named www.example.com with
13069	//    a type of A) and you specify health check IDs for all the resource record
13070	//    sets. If the health check status for a resource record set is healthy,
13071	//    Route 53 includes the record among the records that it responds to DNS
13072	//    queries with. If the health check status for a resource record set is
13073	//    unhealthy, Route 53 stops responding to DNS queries using the value for
13074	//    that resource record set. If the health check status for all resource
13075	//    record sets in the group is unhealthy, Route 53 considers all resource
13076	//    record sets in the group healthy and responds to DNS queries accordingly.
13077	//
13078	//    * Alias resource record sets: You specify the following settings: You
13079	//    set EvaluateTargetHealth to true for an alias resource record set in a
13080	//    group of resource record sets that have the same routing policy, name,
13081	//    and type (such as multiple weighted records named www.example.com with
13082	//    a type of A). You configure the alias resource record set to route traffic
13083	//    to a non-alias resource record set in the same hosted zone. You specify
13084	//    a health check ID for the non-alias resource record set. If the health
13085	//    check status is healthy, Route 53 considers the alias resource record
13086	//    set to be healthy and includes the alias record among the records that
13087	//    it responds to DNS queries with. If the health check status is unhealthy,
13088	//    Route 53 stops responding to DNS queries using the alias resource record
13089	//    set. The alias resource record set can also route traffic to a group of
13090	//    non-alias resource record sets that have the same routing policy, name,
13091	//    and type. In that configuration, associate health checks with all of the
13092	//    resource record sets in the group of non-alias resource record sets.
13093	//
13094	// Geolocation Routing
13095	//
13096	// For geolocation resource record sets, if an endpoint is unhealthy, Route
13097	// 53 looks for a resource record set for the larger, associated geographic
13098	// region. For example, suppose you have resource record sets for a state in
13099	// the United States, for the entire United States, for North America, and a
13100	// resource record set that has * for CountryCode is *, which applies to all
13101	// locations. If the endpoint for the state resource record set is unhealthy,
13102	// Route 53 checks for healthy resource record sets in the following order until
13103	// it finds a resource record set for which the endpoint is healthy:
13104	//
13105	//    * The United States
13106	//
13107	//    * North America
13108	//
13109	//    * The default resource record set
13110	//
13111	// Specifying the Health Check Endpoint by Domain Name
13112	//
13113	// If your health checks specify the endpoint only by domain name, we recommend
13114	// that you create a separate health check for each endpoint. For example, create
13115	// a health check for each HTTP server that is serving content for www.example.com.
13116	// For the value of FullyQualifiedDomainName, specify the domain name of the
13117	// server (such as us-east-2-www.example.com), not the name of the resource
13118	// record sets (www.example.com).
13119	//
13120	// Health check results will be unpredictable if you do the following:
13121	//
13122	//    * Create a health check that has the same value for FullyQualifiedDomainName
13123	//    as the name of a resource record set.
13124	//
13125	//    * Associate that health check with the resource record set.
13126	HealthCheckId *string `type:"string"`
13127
13128	// Multivalue answer resource record sets only: To route traffic approximately
13129	// randomly to multiple resources, such as web servers, create one multivalue
13130	// answer record for each resource and specify true for MultiValueAnswer. Note
13131	// the following:
13132	//
13133	//    * If you associate a health check with a multivalue answer resource record
13134	//    set, Amazon Route 53 responds to DNS queries with the corresponding IP
13135	//    address only when the health check is healthy.
13136	//
13137	//    * If you don't associate a health check with a multivalue answer record,
13138	//    Route 53 always considers the record to be healthy.
13139	//
13140	//    * Route 53 responds to DNS queries with up to eight healthy records; if
13141	//    you have eight or fewer healthy records, Route 53 responds to all DNS
13142	//    queries with all the healthy records.
13143	//
13144	//    * If you have more than eight healthy records, Route 53 responds to different
13145	//    DNS resolvers with different combinations of healthy records.
13146	//
13147	//    * When all records are unhealthy, Route 53 responds to DNS queries with
13148	//    up to eight unhealthy records.
13149	//
13150	//    * If a resource becomes unavailable after a resolver caches a response,
13151	//    client software typically tries another of the IP addresses in the response.
13152	//
13153	// You can't create multivalue answer alias records.
13154	MultiValueAnswer *bool `type:"boolean"`
13155
13156	// For ChangeResourceRecordSets requests, the name of the record that you want
13157	// to create, update, or delete. For ListResourceRecordSets responses, the name
13158	// of a record in the specified hosted zone.
13159	//
13160	// ChangeResourceRecordSets Only
13161	//
13162	// Enter a fully qualified domain name, for example, www.example.com. You can
13163	// optionally include a trailing dot. If you omit the trailing dot, Amazon Route
13164	// 53 assumes that the domain name that you specify is fully qualified. This
13165	// means that Route 53 treats www.example.com (without a trailing dot) and www.example.com.
13166	// (with a trailing dot) as identical.
13167	//
13168	// For information about how to specify characters other than a-z, 0-9, and
13169	// - (hyphen) and how to specify internationalized domain names, see DNS Domain
13170	// Name Format (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html)
13171	// in the Amazon Route 53 Developer Guide.
13172	//
13173	// You can use the asterisk (*) wildcard to replace the leftmost label in a
13174	// domain name, for example, *.example.com. Note the following:
13175	//
13176	//    * The * must replace the entire label. For example, you can't specify
13177	//    *prod.example.com or prod*.example.com.
13178	//
13179	//    * The * can't replace any of the middle labels, for example, marketing.*.example.com.
13180	//
13181	//    * If you include * in any position other than the leftmost label in a
13182	//    domain name, DNS treats it as an * character (ASCII 42), not as a wildcard.
13183	//    You can't use the * wildcard for resource records sets that have a type
13184	//    of NS.
13185	//
13186	// You can use the * wildcard as the leftmost label in a domain name, for example,
13187	// *.example.com. You can't use an * for one of the middle labels, for example,
13188	// marketing.*.example.com. In addition, the * must replace the entire label;
13189	// for example, you can't specify prod*.example.com.
13190	//
13191	// Name is a required field
13192	Name *string `type:"string" required:"true"`
13193
13194	// Latency-based resource record sets only: The Amazon EC2 Region where you
13195	// created the resource that this resource record set refers to. The resource
13196	// typically is an AWS resource, such as an EC2 instance or an ELB load balancer,
13197	// and is referred to by an IP address or a DNS domain name, depending on the
13198	// record type.
13199	//
13200	// Creating latency and latency alias resource record sets in private hosted
13201	// zones is not supported.
13202	//
13203	// When Amazon Route 53 receives a DNS query for a domain name and type for
13204	// which you have created latency resource record sets, Route 53 selects the
13205	// latency resource record set that has the lowest latency between the end user
13206	// and the associated Amazon EC2 Region. Route 53 then returns the value that
13207	// is associated with the selected resource record set.
13208	//
13209	// Note the following:
13210	//
13211	//    * You can only specify one ResourceRecord per latency resource record
13212	//    set.
13213	//
13214	//    * You can only create one latency resource record set for each Amazon
13215	//    EC2 Region.
13216	//
13217	//    * You aren't required to create latency resource record sets for all Amazon
13218	//    EC2 Regions. Route 53 will choose the region with the best latency from
13219	//    among the regions that you create latency resource record sets for.
13220	//
13221	//    * You can't create non-latency resource record sets that have the same
13222	//    values for the Name and Type elements as latency resource record sets.
13223	Region *string `min:"1" type:"string" enum:"ResourceRecordSetRegion"`
13224
13225	// Information about the resource records to act upon.
13226	//
13227	// If you're creating an alias resource record set, omit ResourceRecords.
13228	ResourceRecords []*ResourceRecord `locationNameList:"ResourceRecord" min:"1" type:"list"`
13229
13230	// Resource record sets that have a routing policy other than simple: An identifier
13231	// that differentiates among multiple resource record sets that have the same
13232	// combination of name and type, such as multiple weighted resource record sets
13233	// named acme.example.com that have a type of A. In a group of resource record
13234	// sets that have the same name and type, the value of SetIdentifier must be
13235	// unique for each resource record set.
13236	//
13237	// For information about routing policies, see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html)
13238	// in the Amazon Route 53 Developer Guide.
13239	SetIdentifier *string `min:"1" type:"string"`
13240
13241	// The resource record cache time to live (TTL), in seconds. Note the following:
13242	//
13243	//    * If you're creating or updating an alias resource record set, omit TTL.
13244	//    Amazon Route 53 uses the value of TTL for the alias target.
13245	//
13246	//    * If you're associating this resource record set with a health check (if
13247	//    you're adding a HealthCheckId element), we recommend that you specify
13248	//    a TTL of 60 seconds or less so clients respond quickly to changes in health
13249	//    status.
13250	//
13251	//    * All of the resource record sets in a group of weighted resource record
13252	//    sets must have the same value for TTL.
13253	//
13254	//    * If a group of weighted resource record sets includes one or more weighted
13255	//    alias resource record sets for which the alias target is an ELB load balancer,
13256	//    we recommend that you specify a TTL of 60 seconds for all of the non-alias
13257	//    weighted resource record sets that have the same name and type. Values
13258	//    other than 60 seconds (the TTL for load balancers) will change the effect
13259	//    of the values that you specify for Weight.
13260	TTL *int64 `type:"long"`
13261
13262	// When you create a traffic policy instance, Amazon Route 53 automatically
13263	// creates a resource record set. TrafficPolicyInstanceId is the ID of the traffic
13264	// policy instance that Route 53 created this resource record set for.
13265	//
13266	// To delete the resource record set that is associated with a traffic policy
13267	// instance, use DeleteTrafficPolicyInstance. Route 53 will delete the resource
13268	// record set automatically. If you delete the resource record set by using
13269	// ChangeResourceRecordSets, Route 53 doesn't automatically delete the traffic
13270	// policy instance, and you'll continue to be charged for it even though it's
13271	// no longer in use.
13272	TrafficPolicyInstanceId *string `min:"1" type:"string"`
13273
13274	// The DNS record type. For information about different record types and how
13275	// data is encoded for them, see Supported DNS Resource Record Types (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html)
13276	// in the Amazon Route 53 Developer Guide.
13277	//
13278	// Valid values for basic resource record sets: A | AAAA | CAA | CNAME | MX
13279	// | NAPTR | NS | PTR | SOA | SPF | SRV | TXT
13280	//
13281	// Values for weighted, latency, geolocation, and failover resource record sets:
13282	// A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating
13283	// a group of weighted, latency, geolocation, or failover resource record sets,
13284	// specify the same value for all of the resource record sets in the group.
13285	//
13286	// Valid values for multivalue answer resource record sets: A | AAAA | MX |
13287	// NAPTR | PTR | SPF | SRV | TXT
13288	//
13289	// SPF records were formerly used to verify the identity of the sender of email
13290	// messages. However, we no longer recommend that you create resource record
13291	// sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework
13292	// (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated
13293	// to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to
13294	// some interoperability issues. Accordingly, its use is no longer appropriate
13295	// for SPF version 1; implementations are not to use it." In RFC 7208, see section
13296	// 14.1, The SPF DNS Record Type (http://tools.ietf.org/html/rfc7208#section-14.1).
13297	//
13298	// Values for alias resource record sets:
13299	//
13300	//    * Amazon API Gateway custom regional APIs and edge-optimized APIs: A
13301	//
13302	//    * CloudFront distributions: A If IPv6 is enabled for the distribution,
13303	//    create two resource record sets to route traffic to your distribution,
13304	//    one with a value of A and one with a value of AAAA.
13305	//
13306	//    * AWS Elastic Beanstalk environment that has a regionalized subdomain:
13307	//    A
13308	//
13309	//    * ELB load balancers: A | AAAA
13310	//
13311	//    * Amazon S3 buckets: A
13312	//
13313	//    * Amazon Virtual Private Cloud interface VPC endpoints A
13314	//
13315	//    * Another resource record set in this hosted zone: Specify the type of
13316	//    the resource record set that you're creating the alias for. All values
13317	//    are supported except NS and SOA. If you're creating an alias record that
13318	//    has the same name as the hosted zone (known as the zone apex), you can't
13319	//    route traffic to a record for which the value of Type is CNAME. This is
13320	//    because the alias record must have the same type as the record you're
13321	//    routing traffic to, and creating a CNAME record for the zone apex isn't
13322	//    supported even for an alias record.
13323	//
13324	// Type is a required field
13325	Type *string `type:"string" required:"true" enum:"RRType"`
13326
13327	// Weighted resource record sets only: Among resource record sets that have
13328	// the same combination of DNS name and type, a value that determines the proportion
13329	// of DNS queries that Amazon Route 53 responds to using the current resource
13330	// record set. Route 53 calculates the sum of the weights for the resource record
13331	// sets that have the same combination of DNS name and type. Route 53 then responds
13332	// to queries based on the ratio of a resource's weight to the total. Note the
13333	// following:
13334	//
13335	//    * You must specify a value for the Weight element for every weighted resource
13336	//    record set.
13337	//
13338	//    * You can only specify one ResourceRecord per weighted resource record
13339	//    set.
13340	//
13341	//    * You can't create latency, failover, or geolocation resource record sets
13342	//    that have the same values for the Name and Type elements as weighted resource
13343	//    record sets.
13344	//
13345	//    * You can create a maximum of 100 weighted resource record sets that have
13346	//    the same values for the Name and Type elements.
13347	//
13348	//    * For weighted (but not weighted alias) resource record sets, if you set
13349	//    Weight to 0 for a resource record set, Route 53 never responds to queries
13350	//    with the applicable value for that resource record set. However, if you
13351	//    set Weight to 0 for all resource record sets that have the same combination
13352	//    of DNS name and type, traffic is routed to all resources with equal probability.
13353	//    The effect of setting Weight to 0 is different when you associate health
13354	//    checks with weighted resource record sets. For more information, see Options
13355	//    for Configuring Route 53 Active-Active and Active-Passive Failover (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html)
13356	//    in the Amazon Route 53 Developer Guide.
13357	Weight *int64 `type:"long"`
13358}
13359
13360// String returns the string representation
13361func (s ResourceRecordSet) String() string {
13362	return awsutil.Prettify(s)
13363}
13364
13365// GoString returns the string representation
13366func (s ResourceRecordSet) GoString() string {
13367	return s.String()
13368}
13369
13370// Validate inspects the fields of the type to determine if they are valid.
13371func (s *ResourceRecordSet) Validate() error {
13372	invalidParams := request.ErrInvalidParams{Context: "ResourceRecordSet"}
13373	if s.Name == nil {
13374		invalidParams.Add(request.NewErrParamRequired("Name"))
13375	}
13376	if s.Region != nil && len(*s.Region) < 1 {
13377		invalidParams.Add(request.NewErrParamMinLen("Region", 1))
13378	}
13379	if s.ResourceRecords != nil && len(s.ResourceRecords) < 1 {
13380		invalidParams.Add(request.NewErrParamMinLen("ResourceRecords", 1))
13381	}
13382	if s.SetIdentifier != nil && len(*s.SetIdentifier) < 1 {
13383		invalidParams.Add(request.NewErrParamMinLen("SetIdentifier", 1))
13384	}
13385	if s.TrafficPolicyInstanceId != nil && len(*s.TrafficPolicyInstanceId) < 1 {
13386		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyInstanceId", 1))
13387	}
13388	if s.Type == nil {
13389		invalidParams.Add(request.NewErrParamRequired("Type"))
13390	}
13391	if s.AliasTarget != nil {
13392		if err := s.AliasTarget.Validate(); err != nil {
13393			invalidParams.AddNested("AliasTarget", err.(request.ErrInvalidParams))
13394		}
13395	}
13396	if s.GeoLocation != nil {
13397		if err := s.GeoLocation.Validate(); err != nil {
13398			invalidParams.AddNested("GeoLocation", err.(request.ErrInvalidParams))
13399		}
13400	}
13401	if s.ResourceRecords != nil {
13402		for i, v := range s.ResourceRecords {
13403			if v == nil {
13404				continue
13405			}
13406			if err := v.Validate(); err != nil {
13407				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRecords", i), err.(request.ErrInvalidParams))
13408			}
13409		}
13410	}
13411
13412	if invalidParams.Len() > 0 {
13413		return invalidParams
13414	}
13415	return nil
13416}
13417
13418// SetAliasTarget sets the AliasTarget field's value.
13419func (s *ResourceRecordSet) SetAliasTarget(v *AliasTarget) *ResourceRecordSet {
13420	s.AliasTarget = v
13421	return s
13422}
13423
13424// SetFailover sets the Failover field's value.
13425func (s *ResourceRecordSet) SetFailover(v string) *ResourceRecordSet {
13426	s.Failover = &v
13427	return s
13428}
13429
13430// SetGeoLocation sets the GeoLocation field's value.
13431func (s *ResourceRecordSet) SetGeoLocation(v *GeoLocation) *ResourceRecordSet {
13432	s.GeoLocation = v
13433	return s
13434}
13435
13436// SetHealthCheckId sets the HealthCheckId field's value.
13437func (s *ResourceRecordSet) SetHealthCheckId(v string) *ResourceRecordSet {
13438	s.HealthCheckId = &v
13439	return s
13440}
13441
13442// SetMultiValueAnswer sets the MultiValueAnswer field's value.
13443func (s *ResourceRecordSet) SetMultiValueAnswer(v bool) *ResourceRecordSet {
13444	s.MultiValueAnswer = &v
13445	return s
13446}
13447
13448// SetName sets the Name field's value.
13449func (s *ResourceRecordSet) SetName(v string) *ResourceRecordSet {
13450	s.Name = &v
13451	return s
13452}
13453
13454// SetRegion sets the Region field's value.
13455func (s *ResourceRecordSet) SetRegion(v string) *ResourceRecordSet {
13456	s.Region = &v
13457	return s
13458}
13459
13460// SetResourceRecords sets the ResourceRecords field's value.
13461func (s *ResourceRecordSet) SetResourceRecords(v []*ResourceRecord) *ResourceRecordSet {
13462	s.ResourceRecords = v
13463	return s
13464}
13465
13466// SetSetIdentifier sets the SetIdentifier field's value.
13467func (s *ResourceRecordSet) SetSetIdentifier(v string) *ResourceRecordSet {
13468	s.SetIdentifier = &v
13469	return s
13470}
13471
13472// SetTTL sets the TTL field's value.
13473func (s *ResourceRecordSet) SetTTL(v int64) *ResourceRecordSet {
13474	s.TTL = &v
13475	return s
13476}
13477
13478// SetTrafficPolicyInstanceId sets the TrafficPolicyInstanceId field's value.
13479func (s *ResourceRecordSet) SetTrafficPolicyInstanceId(v string) *ResourceRecordSet {
13480	s.TrafficPolicyInstanceId = &v
13481	return s
13482}
13483
13484// SetType sets the Type field's value.
13485func (s *ResourceRecordSet) SetType(v string) *ResourceRecordSet {
13486	s.Type = &v
13487	return s
13488}
13489
13490// SetWeight sets the Weight field's value.
13491func (s *ResourceRecordSet) SetWeight(v int64) *ResourceRecordSet {
13492	s.Weight = &v
13493	return s
13494}
13495
13496// A complex type containing a resource and its associated tags.
13497type ResourceTagSet struct {
13498	_ struct{} `type:"structure"`
13499
13500	// The ID for the specified resource.
13501	ResourceId *string `type:"string"`
13502
13503	// The type of the resource.
13504	//
13505	//    * The resource type for health checks is healthcheck.
13506	//
13507	//    * The resource type for hosted zones is hostedzone.
13508	ResourceType *string `type:"string" enum:"TagResourceType"`
13509
13510	// The tags associated with the specified resource.
13511	Tags []*Tag `locationNameList:"Tag" min:"1" type:"list"`
13512}
13513
13514// String returns the string representation
13515func (s ResourceTagSet) String() string {
13516	return awsutil.Prettify(s)
13517}
13518
13519// GoString returns the string representation
13520func (s ResourceTagSet) GoString() string {
13521	return s.String()
13522}
13523
13524// SetResourceId sets the ResourceId field's value.
13525func (s *ResourceTagSet) SetResourceId(v string) *ResourceTagSet {
13526	s.ResourceId = &v
13527	return s
13528}
13529
13530// SetResourceType sets the ResourceType field's value.
13531func (s *ResourceTagSet) SetResourceType(v string) *ResourceTagSet {
13532	s.ResourceType = &v
13533	return s
13534}
13535
13536// SetTags sets the Tags field's value.
13537func (s *ResourceTagSet) SetTags(v []*Tag) *ResourceTagSet {
13538	s.Tags = v
13539	return s
13540}
13541
13542// A complex type that contains the type of limit that you specified in the
13543// request and the current value for that limit.
13544type ReusableDelegationSetLimit struct {
13545	_ struct{} `type:"structure"`
13546
13547	// The limit that you requested: MAX_ZONES_BY_REUSABLE_DELEGATION_SET, the maximum
13548	// number of hosted zones that you can associate with the specified reusable
13549	// delegation set.
13550	//
13551	// Type is a required field
13552	Type *string `type:"string" required:"true" enum:"ReusableDelegationSetLimitType"`
13553
13554	// The current value for the MAX_ZONES_BY_REUSABLE_DELEGATION_SET limit.
13555	//
13556	// Value is a required field
13557	Value *int64 `min:"1" type:"long" required:"true"`
13558}
13559
13560// String returns the string representation
13561func (s ReusableDelegationSetLimit) String() string {
13562	return awsutil.Prettify(s)
13563}
13564
13565// GoString returns the string representation
13566func (s ReusableDelegationSetLimit) GoString() string {
13567	return s.String()
13568}
13569
13570// SetType sets the Type field's value.
13571func (s *ReusableDelegationSetLimit) SetType(v string) *ReusableDelegationSetLimit {
13572	s.Type = &v
13573	return s
13574}
13575
13576// SetValue sets the Value field's value.
13577func (s *ReusableDelegationSetLimit) SetValue(v int64) *ReusableDelegationSetLimit {
13578	s.Value = &v
13579	return s
13580}
13581
13582// A complex type that contains the status that one Amazon Route 53 health checker
13583// reports and the time of the health check.
13584type StatusReport struct {
13585	_ struct{} `type:"structure"`
13586
13587	// The date and time that the health checker performed the health check in ISO
13588	// 8601 format (https://en.wikipedia.org/wiki/ISO_8601) and Coordinated Universal
13589	// Time (UTC). For example, the value 2017-03-27T17:48:16.751Z represents March
13590	// 27, 2017 at 17:48:16.751 UTC.
13591	CheckedTime *time.Time `type:"timestamp"`
13592
13593	// A description of the status of the health check endpoint as reported by one
13594	// of the Amazon Route 53 health checkers.
13595	Status *string `type:"string"`
13596}
13597
13598// String returns the string representation
13599func (s StatusReport) String() string {
13600	return awsutil.Prettify(s)
13601}
13602
13603// GoString returns the string representation
13604func (s StatusReport) GoString() string {
13605	return s.String()
13606}
13607
13608// SetCheckedTime sets the CheckedTime field's value.
13609func (s *StatusReport) SetCheckedTime(v time.Time) *StatusReport {
13610	s.CheckedTime = &v
13611	return s
13612}
13613
13614// SetStatus sets the Status field's value.
13615func (s *StatusReport) SetStatus(v string) *StatusReport {
13616	s.Status = &v
13617	return s
13618}
13619
13620// A complex type that contains information about a tag that you want to add
13621// or edit for the specified health check or hosted zone.
13622type Tag struct {
13623	_ struct{} `type:"structure"`
13624
13625	// The value of Key depends on the operation that you want to perform:
13626	//
13627	//    * Add a tag to a health check or hosted zone: Key is the name that you
13628	//    want to give the new tag.
13629	//
13630	//    * Edit a tag: Key is the name of the tag that you want to change the Value
13631	//    for.
13632	//
13633	//    * Delete a key: Key is the name of the tag you want to remove.
13634	//
13635	//    * Give a name to a health check: Edit the default Name tag. In the Amazon
13636	//    Route 53 console, the list of your health checks includes a Name column
13637	//    that lets you see the name that you've given to each health check.
13638	Key *string `type:"string"`
13639
13640	// The value of Value depends on the operation that you want to perform:
13641	//
13642	//    * Add a tag to a health check or hosted zone: Value is the value that
13643	//    you want to give the new tag.
13644	//
13645	//    * Edit a tag: Value is the new value that you want to assign the tag.
13646	Value *string `type:"string"`
13647}
13648
13649// String returns the string representation
13650func (s Tag) String() string {
13651	return awsutil.Prettify(s)
13652}
13653
13654// GoString returns the string representation
13655func (s Tag) GoString() string {
13656	return s.String()
13657}
13658
13659// SetKey sets the Key field's value.
13660func (s *Tag) SetKey(v string) *Tag {
13661	s.Key = &v
13662	return s
13663}
13664
13665// SetValue sets the Value field's value.
13666func (s *Tag) SetValue(v string) *Tag {
13667	s.Value = &v
13668	return s
13669}
13670
13671// Gets the value that Amazon Route 53 returns in response to a DNS request
13672// for a specified record name and type. You can optionally specify the IP address
13673// of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask.
13674type TestDNSAnswerInput struct {
13675	_ struct{} `type:"structure"`
13676
13677	// If the resolver that you specified for resolverip supports EDNS0, specify
13678	// the IPv4 or IPv6 address of a client in the applicable location, for example,
13679	// 192.0.2.44 or 2001:db8:85a3::8a2e:370:7334.
13680	EDNS0ClientSubnetIP *string `location:"querystring" locationName:"edns0clientsubnetip" type:"string"`
13681
13682	// If you specify an IP address for edns0clientsubnetip, you can optionally
13683	// specify the number of bits of the IP address that you want the checking tool
13684	// to include in the DNS query. For example, if you specify 192.0.2.44 for edns0clientsubnetip
13685	// and 24 for edns0clientsubnetmask, the checking tool will simulate a request
13686	// from 192.0.2.0/24. The default value is 24 bits for IPv4 addresses and 64
13687	// bits for IPv6 addresses.
13688	//
13689	// The range of valid values depends on whether edns0clientsubnetip is an IPv4
13690	// or an IPv6 address:
13691	//
13692	//    * IPv4: Specify a value between 0 and 32
13693	//
13694	//    * IPv6: Specify a value between 0 and 128
13695	EDNS0ClientSubnetMask *string `location:"querystring" locationName:"edns0clientsubnetmask" type:"string"`
13696
13697	// The ID of the hosted zone that you want Amazon Route 53 to simulate a query
13698	// for.
13699	//
13700	// HostedZoneId is a required field
13701	HostedZoneId *string `location:"querystring" locationName:"hostedzoneid" type:"string" required:"true"`
13702
13703	// The name of the resource record set that you want Amazon Route 53 to simulate
13704	// a query for.
13705	//
13706	// RecordName is a required field
13707	RecordName *string `location:"querystring" locationName:"recordname" type:"string" required:"true"`
13708
13709	// The type of the resource record set.
13710	//
13711	// RecordType is a required field
13712	RecordType *string `location:"querystring" locationName:"recordtype" type:"string" required:"true" enum:"RRType"`
13713
13714	// If you want to simulate a request from a specific DNS resolver, specify the
13715	// IP address for that resolver. If you omit this value, TestDnsAnswer uses
13716	// the IP address of a DNS resolver in the AWS US East (N. Virginia) Region
13717	// (us-east-1).
13718	ResolverIP *string `location:"querystring" locationName:"resolverip" type:"string"`
13719}
13720
13721// String returns the string representation
13722func (s TestDNSAnswerInput) String() string {
13723	return awsutil.Prettify(s)
13724}
13725
13726// GoString returns the string representation
13727func (s TestDNSAnswerInput) GoString() string {
13728	return s.String()
13729}
13730
13731// Validate inspects the fields of the type to determine if they are valid.
13732func (s *TestDNSAnswerInput) Validate() error {
13733	invalidParams := request.ErrInvalidParams{Context: "TestDNSAnswerInput"}
13734	if s.HostedZoneId == nil {
13735		invalidParams.Add(request.NewErrParamRequired("HostedZoneId"))
13736	}
13737	if s.RecordName == nil {
13738		invalidParams.Add(request.NewErrParamRequired("RecordName"))
13739	}
13740	if s.RecordType == nil {
13741		invalidParams.Add(request.NewErrParamRequired("RecordType"))
13742	}
13743
13744	if invalidParams.Len() > 0 {
13745		return invalidParams
13746	}
13747	return nil
13748}
13749
13750// SetEDNS0ClientSubnetIP sets the EDNS0ClientSubnetIP field's value.
13751func (s *TestDNSAnswerInput) SetEDNS0ClientSubnetIP(v string) *TestDNSAnswerInput {
13752	s.EDNS0ClientSubnetIP = &v
13753	return s
13754}
13755
13756// SetEDNS0ClientSubnetMask sets the EDNS0ClientSubnetMask field's value.
13757func (s *TestDNSAnswerInput) SetEDNS0ClientSubnetMask(v string) *TestDNSAnswerInput {
13758	s.EDNS0ClientSubnetMask = &v
13759	return s
13760}
13761
13762// SetHostedZoneId sets the HostedZoneId field's value.
13763func (s *TestDNSAnswerInput) SetHostedZoneId(v string) *TestDNSAnswerInput {
13764	s.HostedZoneId = &v
13765	return s
13766}
13767
13768// SetRecordName sets the RecordName field's value.
13769func (s *TestDNSAnswerInput) SetRecordName(v string) *TestDNSAnswerInput {
13770	s.RecordName = &v
13771	return s
13772}
13773
13774// SetRecordType sets the RecordType field's value.
13775func (s *TestDNSAnswerInput) SetRecordType(v string) *TestDNSAnswerInput {
13776	s.RecordType = &v
13777	return s
13778}
13779
13780// SetResolverIP sets the ResolverIP field's value.
13781func (s *TestDNSAnswerInput) SetResolverIP(v string) *TestDNSAnswerInput {
13782	s.ResolverIP = &v
13783	return s
13784}
13785
13786// A complex type that contains the response to a TestDNSAnswer request.
13787type TestDNSAnswerOutput struct {
13788	_ struct{} `type:"structure"`
13789
13790	// The Amazon Route 53 name server used to respond to the request.
13791	//
13792	// Nameserver is a required field
13793	Nameserver *string `type:"string" required:"true"`
13794
13795	// The protocol that Amazon Route 53 used to respond to the request, either
13796	// UDP or TCP.
13797	//
13798	// Protocol is a required field
13799	Protocol *string `type:"string" required:"true"`
13800
13801	// A list that contains values that Amazon Route 53 returned for this resource
13802	// record set.
13803	//
13804	// RecordData is a required field
13805	RecordData []*string `locationNameList:"RecordDataEntry" type:"list" required:"true"`
13806
13807	// The name of the resource record set that you submitted a request for.
13808	//
13809	// RecordName is a required field
13810	RecordName *string `type:"string" required:"true"`
13811
13812	// The type of the resource record set that you submitted a request for.
13813	//
13814	// RecordType is a required field
13815	RecordType *string `type:"string" required:"true" enum:"RRType"`
13816
13817	// A code that indicates whether the request is valid or not. The most common
13818	// response code is NOERROR, meaning that the request is valid. If the response
13819	// is not valid, Amazon Route 53 returns a response code that describes the
13820	// error. For a list of possible response codes, see DNS RCODES (http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6)
13821	// on the IANA website.
13822	//
13823	// ResponseCode is a required field
13824	ResponseCode *string `type:"string" required:"true"`
13825}
13826
13827// String returns the string representation
13828func (s TestDNSAnswerOutput) String() string {
13829	return awsutil.Prettify(s)
13830}
13831
13832// GoString returns the string representation
13833func (s TestDNSAnswerOutput) GoString() string {
13834	return s.String()
13835}
13836
13837// SetNameserver sets the Nameserver field's value.
13838func (s *TestDNSAnswerOutput) SetNameserver(v string) *TestDNSAnswerOutput {
13839	s.Nameserver = &v
13840	return s
13841}
13842
13843// SetProtocol sets the Protocol field's value.
13844func (s *TestDNSAnswerOutput) SetProtocol(v string) *TestDNSAnswerOutput {
13845	s.Protocol = &v
13846	return s
13847}
13848
13849// SetRecordData sets the RecordData field's value.
13850func (s *TestDNSAnswerOutput) SetRecordData(v []*string) *TestDNSAnswerOutput {
13851	s.RecordData = v
13852	return s
13853}
13854
13855// SetRecordName sets the RecordName field's value.
13856func (s *TestDNSAnswerOutput) SetRecordName(v string) *TestDNSAnswerOutput {
13857	s.RecordName = &v
13858	return s
13859}
13860
13861// SetRecordType sets the RecordType field's value.
13862func (s *TestDNSAnswerOutput) SetRecordType(v string) *TestDNSAnswerOutput {
13863	s.RecordType = &v
13864	return s
13865}
13866
13867// SetResponseCode sets the ResponseCode field's value.
13868func (s *TestDNSAnswerOutput) SetResponseCode(v string) *TestDNSAnswerOutput {
13869	s.ResponseCode = &v
13870	return s
13871}
13872
13873// A complex type that contains settings for a traffic policy.
13874type TrafficPolicy struct {
13875	_ struct{} `type:"structure"`
13876
13877	// The comment that you specify in the CreateTrafficPolicy request, if any.
13878	Comment *string `type:"string"`
13879
13880	// The definition of a traffic policy in JSON format. You specify the JSON document
13881	// to use for a new traffic policy in the CreateTrafficPolicy request. For more
13882	// 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).
13883	//
13884	// Document is a required field
13885	Document *string `type:"string" required:"true"`
13886
13887	// The ID that Amazon Route 53 assigned to a traffic policy when you created
13888	// it.
13889	//
13890	// Id is a required field
13891	Id *string `min:"1" type:"string" required:"true"`
13892
13893	// The name that you specified when you created the traffic policy.
13894	//
13895	// Name is a required field
13896	Name *string `type:"string" required:"true"`
13897
13898	// The DNS type of the resource record sets that Amazon Route 53 creates when
13899	// you use a traffic policy to create a traffic policy instance.
13900	//
13901	// Type is a required field
13902	Type *string `type:"string" required:"true" enum:"RRType"`
13903
13904	// The version number that Amazon Route 53 assigns to a traffic policy. For
13905	// a new traffic policy, the value of Version is always 1.
13906	//
13907	// Version is a required field
13908	Version *int64 `min:"1" type:"integer" required:"true"`
13909}
13910
13911// String returns the string representation
13912func (s TrafficPolicy) String() string {
13913	return awsutil.Prettify(s)
13914}
13915
13916// GoString returns the string representation
13917func (s TrafficPolicy) GoString() string {
13918	return s.String()
13919}
13920
13921// SetComment sets the Comment field's value.
13922func (s *TrafficPolicy) SetComment(v string) *TrafficPolicy {
13923	s.Comment = &v
13924	return s
13925}
13926
13927// SetDocument sets the Document field's value.
13928func (s *TrafficPolicy) SetDocument(v string) *TrafficPolicy {
13929	s.Document = &v
13930	return s
13931}
13932
13933// SetId sets the Id field's value.
13934func (s *TrafficPolicy) SetId(v string) *TrafficPolicy {
13935	s.Id = &v
13936	return s
13937}
13938
13939// SetName sets the Name field's value.
13940func (s *TrafficPolicy) SetName(v string) *TrafficPolicy {
13941	s.Name = &v
13942	return s
13943}
13944
13945// SetType sets the Type field's value.
13946func (s *TrafficPolicy) SetType(v string) *TrafficPolicy {
13947	s.Type = &v
13948	return s
13949}
13950
13951// SetVersion sets the Version field's value.
13952func (s *TrafficPolicy) SetVersion(v int64) *TrafficPolicy {
13953	s.Version = &v
13954	return s
13955}
13956
13957// A complex type that contains settings for the new traffic policy instance.
13958type TrafficPolicyInstance struct {
13959	_ struct{} `type:"structure"`
13960
13961	// The ID of the hosted zone that Amazon Route 53 created resource record sets
13962	// in.
13963	//
13964	// HostedZoneId is a required field
13965	HostedZoneId *string `type:"string" required:"true"`
13966
13967	// The ID that Amazon Route 53 assigned to the new traffic policy instance.
13968	//
13969	// Id is a required field
13970	Id *string `min:"1" type:"string" required:"true"`
13971
13972	// If State is Failed, an explanation of the reason for the failure. If State
13973	// is another value, Message is empty.
13974	//
13975	// Message is a required field
13976	Message *string `type:"string" required:"true"`
13977
13978	// The DNS name, such as www.example.com, for which Amazon Route 53 responds
13979	// to queries by using the resource record sets that are associated with this
13980	// traffic policy instance.
13981	//
13982	// Name is a required field
13983	Name *string `type:"string" required:"true"`
13984
13985	// The value of State is one of the following values:
13986	//
13987	// Applied
13988	//
13989	// Amazon Route 53 has finished creating resource record sets, and changes have
13990	// propagated to all Route 53 edge locations.
13991	//
13992	// Creating
13993	//
13994	// Route 53 is creating the resource record sets. Use GetTrafficPolicyInstance
13995	// to confirm that the CreateTrafficPolicyInstance request completed successfully.
13996	//
13997	// Failed
13998	//
13999	// Route 53 wasn't able to create or update the resource record sets. When the
14000	// value of State is Failed, see Message for an explanation of what caused the
14001	// request to fail.
14002	//
14003	// State is a required field
14004	State *string `type:"string" required:"true"`
14005
14006	// The TTL that Amazon Route 53 assigned to all of the resource record sets
14007	// that it created in the specified hosted zone.
14008	//
14009	// TTL is a required field
14010	TTL *int64 `type:"long" required:"true"`
14011
14012	// The ID of the traffic policy that Amazon Route 53 used to create resource
14013	// record sets in the specified hosted zone.
14014	//
14015	// TrafficPolicyId is a required field
14016	TrafficPolicyId *string `min:"1" type:"string" required:"true"`
14017
14018	// The DNS type that Amazon Route 53 assigned to all of the resource record
14019	// sets that it created for this traffic policy instance.
14020	//
14021	// TrafficPolicyType is a required field
14022	TrafficPolicyType *string `type:"string" required:"true" enum:"RRType"`
14023
14024	// The version of the traffic policy that Amazon Route 53 used to create resource
14025	// record sets in the specified hosted zone.
14026	//
14027	// TrafficPolicyVersion is a required field
14028	TrafficPolicyVersion *int64 `min:"1" type:"integer" required:"true"`
14029}
14030
14031// String returns the string representation
14032func (s TrafficPolicyInstance) String() string {
14033	return awsutil.Prettify(s)
14034}
14035
14036// GoString returns the string representation
14037func (s TrafficPolicyInstance) GoString() string {
14038	return s.String()
14039}
14040
14041// SetHostedZoneId sets the HostedZoneId field's value.
14042func (s *TrafficPolicyInstance) SetHostedZoneId(v string) *TrafficPolicyInstance {
14043	s.HostedZoneId = &v
14044	return s
14045}
14046
14047// SetId sets the Id field's value.
14048func (s *TrafficPolicyInstance) SetId(v string) *TrafficPolicyInstance {
14049	s.Id = &v
14050	return s
14051}
14052
14053// SetMessage sets the Message field's value.
14054func (s *TrafficPolicyInstance) SetMessage(v string) *TrafficPolicyInstance {
14055	s.Message = &v
14056	return s
14057}
14058
14059// SetName sets the Name field's value.
14060func (s *TrafficPolicyInstance) SetName(v string) *TrafficPolicyInstance {
14061	s.Name = &v
14062	return s
14063}
14064
14065// SetState sets the State field's value.
14066func (s *TrafficPolicyInstance) SetState(v string) *TrafficPolicyInstance {
14067	s.State = &v
14068	return s
14069}
14070
14071// SetTTL sets the TTL field's value.
14072func (s *TrafficPolicyInstance) SetTTL(v int64) *TrafficPolicyInstance {
14073	s.TTL = &v
14074	return s
14075}
14076
14077// SetTrafficPolicyId sets the TrafficPolicyId field's value.
14078func (s *TrafficPolicyInstance) SetTrafficPolicyId(v string) *TrafficPolicyInstance {
14079	s.TrafficPolicyId = &v
14080	return s
14081}
14082
14083// SetTrafficPolicyType sets the TrafficPolicyType field's value.
14084func (s *TrafficPolicyInstance) SetTrafficPolicyType(v string) *TrafficPolicyInstance {
14085	s.TrafficPolicyType = &v
14086	return s
14087}
14088
14089// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
14090func (s *TrafficPolicyInstance) SetTrafficPolicyVersion(v int64) *TrafficPolicyInstance {
14091	s.TrafficPolicyVersion = &v
14092	return s
14093}
14094
14095// A complex type that contains information about the latest version of one
14096// traffic policy that is associated with the current AWS account.
14097type TrafficPolicySummary struct {
14098	_ struct{} `type:"structure"`
14099
14100	// The ID that Amazon Route 53 assigned to the traffic policy when you created
14101	// it.
14102	//
14103	// Id is a required field
14104	Id *string `min:"1" type:"string" required:"true"`
14105
14106	// The version number of the latest version of the traffic policy.
14107	//
14108	// LatestVersion is a required field
14109	LatestVersion *int64 `min:"1" type:"integer" required:"true"`
14110
14111	// The name that you specified for the traffic policy when you created it.
14112	//
14113	// Name is a required field
14114	Name *string `type:"string" required:"true"`
14115
14116	// The number of traffic policies that are associated with the current AWS account.
14117	//
14118	// TrafficPolicyCount is a required field
14119	TrafficPolicyCount *int64 `min:"1" type:"integer" required:"true"`
14120
14121	// The DNS type of the resource record sets that Amazon Route 53 creates when
14122	// you use a traffic policy to create a traffic policy instance.
14123	//
14124	// Type is a required field
14125	Type *string `type:"string" required:"true" enum:"RRType"`
14126}
14127
14128// String returns the string representation
14129func (s TrafficPolicySummary) String() string {
14130	return awsutil.Prettify(s)
14131}
14132
14133// GoString returns the string representation
14134func (s TrafficPolicySummary) GoString() string {
14135	return s.String()
14136}
14137
14138// SetId sets the Id field's value.
14139func (s *TrafficPolicySummary) SetId(v string) *TrafficPolicySummary {
14140	s.Id = &v
14141	return s
14142}
14143
14144// SetLatestVersion sets the LatestVersion field's value.
14145func (s *TrafficPolicySummary) SetLatestVersion(v int64) *TrafficPolicySummary {
14146	s.LatestVersion = &v
14147	return s
14148}
14149
14150// SetName sets the Name field's value.
14151func (s *TrafficPolicySummary) SetName(v string) *TrafficPolicySummary {
14152	s.Name = &v
14153	return s
14154}
14155
14156// SetTrafficPolicyCount sets the TrafficPolicyCount field's value.
14157func (s *TrafficPolicySummary) SetTrafficPolicyCount(v int64) *TrafficPolicySummary {
14158	s.TrafficPolicyCount = &v
14159	return s
14160}
14161
14162// SetType sets the Type field's value.
14163func (s *TrafficPolicySummary) SetType(v string) *TrafficPolicySummary {
14164	s.Type = &v
14165	return s
14166}
14167
14168// A complex type that contains information about a request to update a health
14169// check.
14170type UpdateHealthCheckInput struct {
14171	_ struct{} `locationName:"UpdateHealthCheckRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14172
14173	// A complex type that identifies the CloudWatch alarm that you want Amazon
14174	// Route 53 health checkers to use to determine whether the specified health
14175	// check is healthy.
14176	AlarmIdentifier *AlarmIdentifier `type:"structure"`
14177
14178	// A complex type that contains one ChildHealthCheck element for each health
14179	// check that you want to associate with a CALCULATED health check.
14180	ChildHealthChecks []*string `locationNameList:"ChildHealthCheck" type:"list"`
14181
14182	// Stops Route 53 from performing health checks. When you disable a health check,
14183	// here's what happens:
14184	//
14185	//    * Health checks that check the health of endpoints: Route 53 stops submitting
14186	//    requests to your application, server, or other resource.
14187	//
14188	//    * Calculated health checks: Route 53 stops aggregating the status of the
14189	//    referenced health checks.
14190	//
14191	//    * Health checks that monitor CloudWatch alarms: Route 53 stops monitoring
14192	//    the corresponding CloudWatch metrics.
14193	//
14194	// After you disable a health check, Route 53 considers the status of the health
14195	// check to always be healthy. If you configured DNS failover, Route 53 continues
14196	// to route traffic to the corresponding resources. If you want to stop routing
14197	// traffic to a resource, change the value of Inverted (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-Inverted).
14198	//
14199	// Charges for a health check still apply when the health check is disabled.
14200	// For more information, see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
14201	Disabled *bool `type:"boolean"`
14202
14203	// Specify whether you want Amazon Route 53 to send the value of FullyQualifiedDomainName
14204	// to the endpoint in the client_hello message during TLS negotiation. This
14205	// allows the endpoint to respond to HTTPS health check requests with the applicable
14206	// SSL/TLS certificate.
14207	//
14208	// Some endpoints require that HTTPS requests include the host name in the client_hello
14209	// message. If you don't enable SNI, the status of the health check will be
14210	// SSL alert handshake_failure. A health check can also have that status for
14211	// other reasons. If SNI is enabled and you're still getting the error, check
14212	// the SSL/TLS configuration on your endpoint and confirm that your certificate
14213	// is valid.
14214	//
14215	// The SSL/TLS certificate on your endpoint includes a domain name in the Common
14216	// Name field and possibly several more in the Subject Alternative Names field.
14217	// One of the domain names in the certificate should match the value that you
14218	// specify for FullyQualifiedDomainName. If the endpoint responds to the client_hello
14219	// message with a certificate that does not include the domain name that you
14220	// specified in FullyQualifiedDomainName, a health checker will retry the handshake.
14221	// In the second attempt, the health checker will omit FullyQualifiedDomainName
14222	// from the client_hello message.
14223	EnableSNI *bool `type:"boolean"`
14224
14225	// The number of consecutive health checks that an endpoint must pass or fail
14226	// for Amazon Route 53 to change the current status of the endpoint from unhealthy
14227	// to healthy or vice versa. For more information, see How Amazon Route 53 Determines
14228	// Whether an Endpoint Is Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
14229	// in the Amazon Route 53 Developer Guide.
14230	//
14231	// If you don't specify a value for FailureThreshold, the default value is three
14232	// health checks.
14233	FailureThreshold *int64 `min:"1" type:"integer"`
14234
14235	// Amazon Route 53 behavior depends on whether you specify a value for IPAddress.
14236	//
14237	// If a health check already has a value for IPAddress, you can change the value.
14238	// However, you can't update an existing health check to add or remove the value
14239	// of IPAddress.
14240	//
14241	// If you specify a value for IPAddress:
14242	//
14243	// Route 53 sends health check requests to the specified IPv4 or IPv6 address
14244	// and passes the value of FullyQualifiedDomainName in the Host header for all
14245	// health checks except TCP health checks. This is typically the fully qualified
14246	// DNS name of the endpoint on which you want Route 53 to perform health checks.
14247	//
14248	// When Route 53 checks the health of an endpoint, here is how it constructs
14249	// the Host header:
14250	//
14251	//    * If you specify a value of 80 for Port and HTTP or HTTP_STR_MATCH for
14252	//    Type, Route 53 passes the value of FullyQualifiedDomainName to the endpoint
14253	//    in the Host header.
14254	//
14255	//    * If you specify a value of 443 for Port and HTTPS or HTTPS_STR_MATCH
14256	//    for Type, Route 53 passes the value of FullyQualifiedDomainName to the
14257	//    endpoint in the Host header.
14258	//
14259	//    * If you specify another value for Port and any value except TCP for Type,
14260	//    Route 53 passes FullyQualifiedDomainName:Port to the endpoint in the Host
14261	//    header.
14262	//
14263	// If you don't specify a value for FullyQualifiedDomainName, Route 53 substitutes
14264	// the value of IPAddress in the Host header in each of the above cases.
14265	//
14266	// If you don't specify a value for IPAddress:
14267	//
14268	// If you don't specify a value for IPAddress, Route 53 sends a DNS request
14269	// to the domain that you specify in FullyQualifiedDomainName at the interval
14270	// you specify in RequestInterval. Using an IPv4 address that is returned by
14271	// DNS, Route 53 then checks the health of the endpoint.
14272	//
14273	// If you don't specify a value for IPAddress, Route 53 uses only IPv4 to send
14274	// health checks to the endpoint. If there's no resource record set with a type
14275	// of A for the name that you specify for FullyQualifiedDomainName, the health
14276	// check fails with a "DNS resolution failed" error.
14277	//
14278	// If you want to check the health of weighted, latency, or failover resource
14279	// record sets and you choose to specify the endpoint only by FullyQualifiedDomainName,
14280	// we recommend that you create a separate health check for each endpoint. For
14281	// example, create a health check for each HTTP server that is serving content
14282	// for www.example.com. For the value of FullyQualifiedDomainName, specify the
14283	// domain name of the server (such as us-east-2-www.example.com), not the name
14284	// of the resource record sets (www.example.com).
14285	//
14286	// In this configuration, if the value of FullyQualifiedDomainName matches the
14287	// name of the resource record sets and you then associate the health check
14288	// with those resource record sets, health check results will be unpredictable.
14289	//
14290	// In addition, if the value of Type is HTTP, HTTPS, HTTP_STR_MATCH, or HTTPS_STR_MATCH,
14291	// Route 53 passes the value of FullyQualifiedDomainName in the Host header,
14292	// as it does when you specify a value for IPAddress. If the value of Type is
14293	// TCP, Route 53 doesn't pass a Host header.
14294	FullyQualifiedDomainName *string `type:"string"`
14295
14296	// The ID for the health check for which you want detailed information. When
14297	// you created the health check, CreateHealthCheck returned the ID in the response,
14298	// in the HealthCheckId element.
14299	//
14300	// HealthCheckId is a required field
14301	HealthCheckId *string `location:"uri" locationName:"HealthCheckId" type:"string" required:"true"`
14302
14303	// A sequential counter that Amazon Route 53 sets to 1 when you create a health
14304	// check and increments by 1 each time you update settings for the health check.
14305	//
14306	// We recommend that you use GetHealthCheck or ListHealthChecks to get the current
14307	// value of HealthCheckVersion for the health check that you want to update,
14308	// and that you include that value in your UpdateHealthCheck request. This prevents
14309	// Route 53 from overwriting an intervening update:
14310	//
14311	//    * If the value in the UpdateHealthCheck request matches the value of HealthCheckVersion
14312	//    in the health check, Route 53 updates the health check with the new settings.
14313	//
14314	//    * If the value of HealthCheckVersion in the health check is greater, the
14315	//    health check was changed after you got the version number. Route 53 does
14316	//    not update the health check, and it returns a HealthCheckVersionMismatch
14317	//    error.
14318	HealthCheckVersion *int64 `min:"1" type:"long"`
14319
14320	// The number of child health checks that are associated with a CALCULATED health
14321	// that Amazon Route 53 must consider healthy for the CALCULATED health check
14322	// to be considered healthy. To specify the child health checks that you want
14323	// to associate with a CALCULATED health check, use the ChildHealthChecks and
14324	// ChildHealthCheck elements.
14325	//
14326	// Note the following:
14327	//
14328	//    * If you specify a number greater than the number of child health checks,
14329	//    Route 53 always considers this health check to be unhealthy.
14330	//
14331	//    * If you specify 0, Route 53 always considers this health check to be
14332	//    healthy.
14333	HealthThreshold *int64 `type:"integer"`
14334
14335	// The IPv4 or IPv6 IP address for the endpoint that you want Amazon Route 53
14336	// to perform health checks on. If you don't specify a value for IPAddress,
14337	// Route 53 sends a DNS request to resolve the domain name that you specify
14338	// in FullyQualifiedDomainName at the interval that you specify in RequestInterval.
14339	// Using an IP address that is returned by DNS, Route 53 then checks the health
14340	// of the endpoint.
14341	//
14342	// Use one of the following formats for the value of IPAddress:
14343	//
14344	//    * IPv4 address: four values between 0 and 255, separated by periods (.),
14345	//    for example, 192.0.2.44.
14346	//
14347	//    * IPv6 address: eight groups of four hexadecimal values, separated by
14348	//    colons (:), for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. You
14349	//    can also shorten IPv6 addresses as described in RFC 5952, for example,
14350	//    2001:db8:85a3::abcd:1:2345.
14351	//
14352	// If the endpoint is an EC2 instance, we recommend that you create an Elastic
14353	// IP address, associate it with your EC2 instance, and specify the Elastic
14354	// IP address for IPAddress. This ensures that the IP address of your instance
14355	// never changes. For more information, see the applicable documentation:
14356	//
14357	//    * Linux: Elastic IP Addresses (EIP) (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
14358	//    in the Amazon EC2 User Guide for Linux Instances
14359	//
14360	//    * Windows: Elastic IP Addresses (EIP) (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-ip-addresses-eip.html)
14361	//    in the Amazon EC2 User Guide for Windows Instances
14362	//
14363	// If a health check already has a value for IPAddress, you can change the value.
14364	// However, you can't update an existing health check to add or remove the value
14365	// of IPAddress.
14366	//
14367	// For more information, see FullyQualifiedDomainName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName).
14368	//
14369	// Constraints: Route 53 can't check the health of endpoints for which the IP
14370	// address is in local, private, non-routable, or multicast ranges. For more
14371	// information about IP addresses for which you can't create health checks,
14372	// see the following documents:
14373	//
14374	//    * RFC 5735, Special Use IPv4 Addresses (https://tools.ietf.org/html/rfc5735)
14375	//
14376	//    * RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space (https://tools.ietf.org/html/rfc6598)
14377	//
14378	//    * RFC 5156, Special-Use IPv6 Addresses (https://tools.ietf.org/html/rfc5156)
14379	IPAddress *string `type:"string"`
14380
14381	// When CloudWatch has insufficient data about the metric to determine the alarm
14382	// state, the status that you want Amazon Route 53 to assign to the health check:
14383	//
14384	//    * Healthy: Route 53 considers the health check to be healthy.
14385	//
14386	//    * Unhealthy: Route 53 considers the health check to be unhealthy.
14387	//
14388	//    * LastKnownStatus: Route 53 uses the status of the health check from the
14389	//    last time CloudWatch had sufficient data to determine the alarm state.
14390	//    For new health checks that have no last known status, the default status
14391	//    for the health check is healthy.
14392	InsufficientDataHealthStatus *string `type:"string" enum:"InsufficientDataHealthStatus"`
14393
14394	// Specify whether you want Amazon Route 53 to invert the status of a health
14395	// check, for example, to consider a health check unhealthy when it otherwise
14396	// would be considered healthy.
14397	Inverted *bool `type:"boolean"`
14398
14399	// The port on the endpoint on which you want Amazon Route 53 to perform health
14400	// checks.
14401	Port *int64 `min:"1" type:"integer"`
14402
14403	// A complex type that contains one Region element for each region that you
14404	// want Amazon Route 53 health checkers to check the specified endpoint from.
14405	Regions []*string `locationNameList:"Region" min:"3" type:"list"`
14406
14407	// A complex type that contains one ResettableElementName element for each element
14408	// that you want to reset to the default value. Valid values for ResettableElementName
14409	// include the following:
14410	//
14411	//    * ChildHealthChecks: Amazon Route 53 resets ChildHealthChecks (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ChildHealthChecks)
14412	//    to null.
14413	//
14414	//    * FullyQualifiedDomainName: Route 53 resets FullyQualifiedDomainName (https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName).
14415	//    to null.
14416	//
14417	//    * Regions: Route 53 resets the Regions (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions)
14418	//    list to the default set of regions.
14419	//
14420	//    * ResourcePath: Route 53 resets ResourcePath (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-ResourcePath)
14421	//    to null.
14422	ResetElements []*string `locationNameList:"ResettableElementName" type:"list"`
14423
14424	// The path that you want Amazon Route 53 to request when performing health
14425	// checks. The path can be any value for which your endpoint will return an
14426	// HTTP status code of 2xx or 3xx when the endpoint is healthy, for example
14427	// the file /docs/route53-health-check.html. You can also include query string
14428	// parameters, for example, /welcome.html?language=jp&login=y.
14429	//
14430	// Specify this value only if you want to change it.
14431	ResourcePath *string `type:"string"`
14432
14433	// If the value of Type is HTTP_STR_MATCH or HTTP_STR_MATCH, the string that
14434	// you want Amazon Route 53 to search for in the response body from the specified
14435	// resource. If the string appears in the response body, Route 53 considers
14436	// the resource healthy. (You can't change the value of Type when you update
14437	// a health check.)
14438	SearchString *string `type:"string"`
14439}
14440
14441// String returns the string representation
14442func (s UpdateHealthCheckInput) String() string {
14443	return awsutil.Prettify(s)
14444}
14445
14446// GoString returns the string representation
14447func (s UpdateHealthCheckInput) GoString() string {
14448	return s.String()
14449}
14450
14451// Validate inspects the fields of the type to determine if they are valid.
14452func (s *UpdateHealthCheckInput) Validate() error {
14453	invalidParams := request.ErrInvalidParams{Context: "UpdateHealthCheckInput"}
14454	if s.FailureThreshold != nil && *s.FailureThreshold < 1 {
14455		invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1))
14456	}
14457	if s.HealthCheckId == nil {
14458		invalidParams.Add(request.NewErrParamRequired("HealthCheckId"))
14459	}
14460	if s.HealthCheckId != nil && len(*s.HealthCheckId) < 1 {
14461		invalidParams.Add(request.NewErrParamMinLen("HealthCheckId", 1))
14462	}
14463	if s.HealthCheckVersion != nil && *s.HealthCheckVersion < 1 {
14464		invalidParams.Add(request.NewErrParamMinValue("HealthCheckVersion", 1))
14465	}
14466	if s.Port != nil && *s.Port < 1 {
14467		invalidParams.Add(request.NewErrParamMinValue("Port", 1))
14468	}
14469	if s.Regions != nil && len(s.Regions) < 3 {
14470		invalidParams.Add(request.NewErrParamMinLen("Regions", 3))
14471	}
14472	if s.AlarmIdentifier != nil {
14473		if err := s.AlarmIdentifier.Validate(); err != nil {
14474			invalidParams.AddNested("AlarmIdentifier", err.(request.ErrInvalidParams))
14475		}
14476	}
14477
14478	if invalidParams.Len() > 0 {
14479		return invalidParams
14480	}
14481	return nil
14482}
14483
14484// SetAlarmIdentifier sets the AlarmIdentifier field's value.
14485func (s *UpdateHealthCheckInput) SetAlarmIdentifier(v *AlarmIdentifier) *UpdateHealthCheckInput {
14486	s.AlarmIdentifier = v
14487	return s
14488}
14489
14490// SetChildHealthChecks sets the ChildHealthChecks field's value.
14491func (s *UpdateHealthCheckInput) SetChildHealthChecks(v []*string) *UpdateHealthCheckInput {
14492	s.ChildHealthChecks = v
14493	return s
14494}
14495
14496// SetDisabled sets the Disabled field's value.
14497func (s *UpdateHealthCheckInput) SetDisabled(v bool) *UpdateHealthCheckInput {
14498	s.Disabled = &v
14499	return s
14500}
14501
14502// SetEnableSNI sets the EnableSNI field's value.
14503func (s *UpdateHealthCheckInput) SetEnableSNI(v bool) *UpdateHealthCheckInput {
14504	s.EnableSNI = &v
14505	return s
14506}
14507
14508// SetFailureThreshold sets the FailureThreshold field's value.
14509func (s *UpdateHealthCheckInput) SetFailureThreshold(v int64) *UpdateHealthCheckInput {
14510	s.FailureThreshold = &v
14511	return s
14512}
14513
14514// SetFullyQualifiedDomainName sets the FullyQualifiedDomainName field's value.
14515func (s *UpdateHealthCheckInput) SetFullyQualifiedDomainName(v string) *UpdateHealthCheckInput {
14516	s.FullyQualifiedDomainName = &v
14517	return s
14518}
14519
14520// SetHealthCheckId sets the HealthCheckId field's value.
14521func (s *UpdateHealthCheckInput) SetHealthCheckId(v string) *UpdateHealthCheckInput {
14522	s.HealthCheckId = &v
14523	return s
14524}
14525
14526// SetHealthCheckVersion sets the HealthCheckVersion field's value.
14527func (s *UpdateHealthCheckInput) SetHealthCheckVersion(v int64) *UpdateHealthCheckInput {
14528	s.HealthCheckVersion = &v
14529	return s
14530}
14531
14532// SetHealthThreshold sets the HealthThreshold field's value.
14533func (s *UpdateHealthCheckInput) SetHealthThreshold(v int64) *UpdateHealthCheckInput {
14534	s.HealthThreshold = &v
14535	return s
14536}
14537
14538// SetIPAddress sets the IPAddress field's value.
14539func (s *UpdateHealthCheckInput) SetIPAddress(v string) *UpdateHealthCheckInput {
14540	s.IPAddress = &v
14541	return s
14542}
14543
14544// SetInsufficientDataHealthStatus sets the InsufficientDataHealthStatus field's value.
14545func (s *UpdateHealthCheckInput) SetInsufficientDataHealthStatus(v string) *UpdateHealthCheckInput {
14546	s.InsufficientDataHealthStatus = &v
14547	return s
14548}
14549
14550// SetInverted sets the Inverted field's value.
14551func (s *UpdateHealthCheckInput) SetInverted(v bool) *UpdateHealthCheckInput {
14552	s.Inverted = &v
14553	return s
14554}
14555
14556// SetPort sets the Port field's value.
14557func (s *UpdateHealthCheckInput) SetPort(v int64) *UpdateHealthCheckInput {
14558	s.Port = &v
14559	return s
14560}
14561
14562// SetRegions sets the Regions field's value.
14563func (s *UpdateHealthCheckInput) SetRegions(v []*string) *UpdateHealthCheckInput {
14564	s.Regions = v
14565	return s
14566}
14567
14568// SetResetElements sets the ResetElements field's value.
14569func (s *UpdateHealthCheckInput) SetResetElements(v []*string) *UpdateHealthCheckInput {
14570	s.ResetElements = v
14571	return s
14572}
14573
14574// SetResourcePath sets the ResourcePath field's value.
14575func (s *UpdateHealthCheckInput) SetResourcePath(v string) *UpdateHealthCheckInput {
14576	s.ResourcePath = &v
14577	return s
14578}
14579
14580// SetSearchString sets the SearchString field's value.
14581func (s *UpdateHealthCheckInput) SetSearchString(v string) *UpdateHealthCheckInput {
14582	s.SearchString = &v
14583	return s
14584}
14585
14586// A complex type that contains the response to the UpdateHealthCheck request.
14587type UpdateHealthCheckOutput struct {
14588	_ struct{} `type:"structure"`
14589
14590	// A complex type that contains the response to an UpdateHealthCheck request.
14591	//
14592	// HealthCheck is a required field
14593	HealthCheck *HealthCheck `type:"structure" required:"true"`
14594}
14595
14596// String returns the string representation
14597func (s UpdateHealthCheckOutput) String() string {
14598	return awsutil.Prettify(s)
14599}
14600
14601// GoString returns the string representation
14602func (s UpdateHealthCheckOutput) GoString() string {
14603	return s.String()
14604}
14605
14606// SetHealthCheck sets the HealthCheck field's value.
14607func (s *UpdateHealthCheckOutput) SetHealthCheck(v *HealthCheck) *UpdateHealthCheckOutput {
14608	s.HealthCheck = v
14609	return s
14610}
14611
14612// A request to update the comment for a hosted zone.
14613type UpdateHostedZoneCommentInput struct {
14614	_ struct{} `locationName:"UpdateHostedZoneCommentRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14615
14616	// The new comment for the hosted zone. If you don't specify a value for Comment,
14617	// Amazon Route 53 deletes the existing value of the Comment element, if any.
14618	Comment *string `type:"string"`
14619
14620	// The ID for the hosted zone that you want to update the comment for.
14621	//
14622	// Id is a required field
14623	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
14624}
14625
14626// String returns the string representation
14627func (s UpdateHostedZoneCommentInput) String() string {
14628	return awsutil.Prettify(s)
14629}
14630
14631// GoString returns the string representation
14632func (s UpdateHostedZoneCommentInput) GoString() string {
14633	return s.String()
14634}
14635
14636// Validate inspects the fields of the type to determine if they are valid.
14637func (s *UpdateHostedZoneCommentInput) Validate() error {
14638	invalidParams := request.ErrInvalidParams{Context: "UpdateHostedZoneCommentInput"}
14639	if s.Id == nil {
14640		invalidParams.Add(request.NewErrParamRequired("Id"))
14641	}
14642	if s.Id != nil && len(*s.Id) < 1 {
14643		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14644	}
14645
14646	if invalidParams.Len() > 0 {
14647		return invalidParams
14648	}
14649	return nil
14650}
14651
14652// SetComment sets the Comment field's value.
14653func (s *UpdateHostedZoneCommentInput) SetComment(v string) *UpdateHostedZoneCommentInput {
14654	s.Comment = &v
14655	return s
14656}
14657
14658// SetId sets the Id field's value.
14659func (s *UpdateHostedZoneCommentInput) SetId(v string) *UpdateHostedZoneCommentInput {
14660	s.Id = &v
14661	return s
14662}
14663
14664// A complex type that contains the response to the UpdateHostedZoneComment
14665// request.
14666type UpdateHostedZoneCommentOutput struct {
14667	_ struct{} `type:"structure"`
14668
14669	// A complex type that contains the response to the UpdateHostedZoneComment
14670	// request.
14671	//
14672	// HostedZone is a required field
14673	HostedZone *HostedZone `type:"structure" required:"true"`
14674}
14675
14676// String returns the string representation
14677func (s UpdateHostedZoneCommentOutput) String() string {
14678	return awsutil.Prettify(s)
14679}
14680
14681// GoString returns the string representation
14682func (s UpdateHostedZoneCommentOutput) GoString() string {
14683	return s.String()
14684}
14685
14686// SetHostedZone sets the HostedZone field's value.
14687func (s *UpdateHostedZoneCommentOutput) SetHostedZone(v *HostedZone) *UpdateHostedZoneCommentOutput {
14688	s.HostedZone = v
14689	return s
14690}
14691
14692// A complex type that contains information about the traffic policy that you
14693// want to update the comment for.
14694type UpdateTrafficPolicyCommentInput struct {
14695	_ struct{} `locationName:"UpdateTrafficPolicyCommentRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14696
14697	// The new comment for the specified traffic policy and version.
14698	//
14699	// Comment is a required field
14700	Comment *string `type:"string" required:"true"`
14701
14702	// The value of Id for the traffic policy that you want to update the comment
14703	// for.
14704	//
14705	// Id is a required field
14706	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
14707
14708	// The value of Version for the traffic policy that you want to update the comment
14709	// for.
14710	//
14711	// Version is a required field
14712	Version *int64 `location:"uri" locationName:"Version" min:"1" type:"integer" required:"true"`
14713}
14714
14715// String returns the string representation
14716func (s UpdateTrafficPolicyCommentInput) String() string {
14717	return awsutil.Prettify(s)
14718}
14719
14720// GoString returns the string representation
14721func (s UpdateTrafficPolicyCommentInput) GoString() string {
14722	return s.String()
14723}
14724
14725// Validate inspects the fields of the type to determine if they are valid.
14726func (s *UpdateTrafficPolicyCommentInput) Validate() error {
14727	invalidParams := request.ErrInvalidParams{Context: "UpdateTrafficPolicyCommentInput"}
14728	if s.Comment == nil {
14729		invalidParams.Add(request.NewErrParamRequired("Comment"))
14730	}
14731	if s.Id == nil {
14732		invalidParams.Add(request.NewErrParamRequired("Id"))
14733	}
14734	if s.Id != nil && len(*s.Id) < 1 {
14735		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14736	}
14737	if s.Version == nil {
14738		invalidParams.Add(request.NewErrParamRequired("Version"))
14739	}
14740	if s.Version != nil && *s.Version < 1 {
14741		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
14742	}
14743
14744	if invalidParams.Len() > 0 {
14745		return invalidParams
14746	}
14747	return nil
14748}
14749
14750// SetComment sets the Comment field's value.
14751func (s *UpdateTrafficPolicyCommentInput) SetComment(v string) *UpdateTrafficPolicyCommentInput {
14752	s.Comment = &v
14753	return s
14754}
14755
14756// SetId sets the Id field's value.
14757func (s *UpdateTrafficPolicyCommentInput) SetId(v string) *UpdateTrafficPolicyCommentInput {
14758	s.Id = &v
14759	return s
14760}
14761
14762// SetVersion sets the Version field's value.
14763func (s *UpdateTrafficPolicyCommentInput) SetVersion(v int64) *UpdateTrafficPolicyCommentInput {
14764	s.Version = &v
14765	return s
14766}
14767
14768// A complex type that contains the response information for the traffic policy.
14769type UpdateTrafficPolicyCommentOutput struct {
14770	_ struct{} `type:"structure"`
14771
14772	// A complex type that contains settings for the specified traffic policy.
14773	//
14774	// TrafficPolicy is a required field
14775	TrafficPolicy *TrafficPolicy `type:"structure" required:"true"`
14776}
14777
14778// String returns the string representation
14779func (s UpdateTrafficPolicyCommentOutput) String() string {
14780	return awsutil.Prettify(s)
14781}
14782
14783// GoString returns the string representation
14784func (s UpdateTrafficPolicyCommentOutput) GoString() string {
14785	return s.String()
14786}
14787
14788// SetTrafficPolicy sets the TrafficPolicy field's value.
14789func (s *UpdateTrafficPolicyCommentOutput) SetTrafficPolicy(v *TrafficPolicy) *UpdateTrafficPolicyCommentOutput {
14790	s.TrafficPolicy = v
14791	return s
14792}
14793
14794// A complex type that contains information about the resource record sets that
14795// you want to update based on a specified traffic policy instance.
14796type UpdateTrafficPolicyInstanceInput struct {
14797	_ struct{} `locationName:"UpdateTrafficPolicyInstanceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"`
14798
14799	// The ID of the traffic policy instance that you want to update.
14800	//
14801	// Id is a required field
14802	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
14803
14804	// The TTL that you want Amazon Route 53 to assign to all of the updated resource
14805	// record sets.
14806	//
14807	// TTL is a required field
14808	TTL *int64 `type:"long" required:"true"`
14809
14810	// The ID of the traffic policy that you want Amazon Route 53 to use to update
14811	// resource record sets for the specified traffic policy instance.
14812	//
14813	// TrafficPolicyId is a required field
14814	TrafficPolicyId *string `min:"1" type:"string" required:"true"`
14815
14816	// The version of the traffic policy that you want Amazon Route 53 to use to
14817	// update resource record sets for the specified traffic policy instance.
14818	//
14819	// TrafficPolicyVersion is a required field
14820	TrafficPolicyVersion *int64 `min:"1" type:"integer" required:"true"`
14821}
14822
14823// String returns the string representation
14824func (s UpdateTrafficPolicyInstanceInput) String() string {
14825	return awsutil.Prettify(s)
14826}
14827
14828// GoString returns the string representation
14829func (s UpdateTrafficPolicyInstanceInput) GoString() string {
14830	return s.String()
14831}
14832
14833// Validate inspects the fields of the type to determine if they are valid.
14834func (s *UpdateTrafficPolicyInstanceInput) Validate() error {
14835	invalidParams := request.ErrInvalidParams{Context: "UpdateTrafficPolicyInstanceInput"}
14836	if s.Id == nil {
14837		invalidParams.Add(request.NewErrParamRequired("Id"))
14838	}
14839	if s.Id != nil && len(*s.Id) < 1 {
14840		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14841	}
14842	if s.TTL == nil {
14843		invalidParams.Add(request.NewErrParamRequired("TTL"))
14844	}
14845	if s.TrafficPolicyId == nil {
14846		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyId"))
14847	}
14848	if s.TrafficPolicyId != nil && len(*s.TrafficPolicyId) < 1 {
14849		invalidParams.Add(request.NewErrParamMinLen("TrafficPolicyId", 1))
14850	}
14851	if s.TrafficPolicyVersion == nil {
14852		invalidParams.Add(request.NewErrParamRequired("TrafficPolicyVersion"))
14853	}
14854	if s.TrafficPolicyVersion != nil && *s.TrafficPolicyVersion < 1 {
14855		invalidParams.Add(request.NewErrParamMinValue("TrafficPolicyVersion", 1))
14856	}
14857
14858	if invalidParams.Len() > 0 {
14859		return invalidParams
14860	}
14861	return nil
14862}
14863
14864// SetId sets the Id field's value.
14865func (s *UpdateTrafficPolicyInstanceInput) SetId(v string) *UpdateTrafficPolicyInstanceInput {
14866	s.Id = &v
14867	return s
14868}
14869
14870// SetTTL sets the TTL field's value.
14871func (s *UpdateTrafficPolicyInstanceInput) SetTTL(v int64) *UpdateTrafficPolicyInstanceInput {
14872	s.TTL = &v
14873	return s
14874}
14875
14876// SetTrafficPolicyId sets the TrafficPolicyId field's value.
14877func (s *UpdateTrafficPolicyInstanceInput) SetTrafficPolicyId(v string) *UpdateTrafficPolicyInstanceInput {
14878	s.TrafficPolicyId = &v
14879	return s
14880}
14881
14882// SetTrafficPolicyVersion sets the TrafficPolicyVersion field's value.
14883func (s *UpdateTrafficPolicyInstanceInput) SetTrafficPolicyVersion(v int64) *UpdateTrafficPolicyInstanceInput {
14884	s.TrafficPolicyVersion = &v
14885	return s
14886}
14887
14888// A complex type that contains information about the resource record sets that
14889// Amazon Route 53 created based on a specified traffic policy.
14890type UpdateTrafficPolicyInstanceOutput struct {
14891	_ struct{} `type:"structure"`
14892
14893	// A complex type that contains settings for the updated traffic policy instance.
14894	//
14895	// TrafficPolicyInstance is a required field
14896	TrafficPolicyInstance *TrafficPolicyInstance `type:"structure" required:"true"`
14897}
14898
14899// String returns the string representation
14900func (s UpdateTrafficPolicyInstanceOutput) String() string {
14901	return awsutil.Prettify(s)
14902}
14903
14904// GoString returns the string representation
14905func (s UpdateTrafficPolicyInstanceOutput) GoString() string {
14906	return s.String()
14907}
14908
14909// SetTrafficPolicyInstance sets the TrafficPolicyInstance field's value.
14910func (s *UpdateTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPolicyInstance) *UpdateTrafficPolicyInstanceOutput {
14911	s.TrafficPolicyInstance = v
14912	return s
14913}
14914
14915// (Private hosted zones only) A complex type that contains information about
14916// an Amazon VPC.
14917type VPC struct {
14918	_ struct{} `type:"structure"`
14919
14920	// (Private hosted zones only) The ID of an Amazon VPC.
14921	VPCId *string `type:"string"`
14922
14923	// (Private hosted zones only) The region that an Amazon VPC was created in.
14924	VPCRegion *string `min:"1" type:"string" enum:"VPCRegion"`
14925}
14926
14927// String returns the string representation
14928func (s VPC) String() string {
14929	return awsutil.Prettify(s)
14930}
14931
14932// GoString returns the string representation
14933func (s VPC) GoString() string {
14934	return s.String()
14935}
14936
14937// Validate inspects the fields of the type to determine if they are valid.
14938func (s *VPC) Validate() error {
14939	invalidParams := request.ErrInvalidParams{Context: "VPC"}
14940	if s.VPCRegion != nil && len(*s.VPCRegion) < 1 {
14941		invalidParams.Add(request.NewErrParamMinLen("VPCRegion", 1))
14942	}
14943
14944	if invalidParams.Len() > 0 {
14945		return invalidParams
14946	}
14947	return nil
14948}
14949
14950// SetVPCId sets the VPCId field's value.
14951func (s *VPC) SetVPCId(v string) *VPC {
14952	s.VPCId = &v
14953	return s
14954}
14955
14956// SetVPCRegion sets the VPCRegion field's value.
14957func (s *VPC) SetVPCRegion(v string) *VPC {
14958	s.VPCRegion = &v
14959	return s
14960}
14961
14962const (
14963	// AccountLimitTypeMaxHealthChecksByOwner is a AccountLimitType enum value
14964	AccountLimitTypeMaxHealthChecksByOwner = "MAX_HEALTH_CHECKS_BY_OWNER"
14965
14966	// AccountLimitTypeMaxHostedZonesByOwner is a AccountLimitType enum value
14967	AccountLimitTypeMaxHostedZonesByOwner = "MAX_HOSTED_ZONES_BY_OWNER"
14968
14969	// AccountLimitTypeMaxTrafficPolicyInstancesByOwner is a AccountLimitType enum value
14970	AccountLimitTypeMaxTrafficPolicyInstancesByOwner = "MAX_TRAFFIC_POLICY_INSTANCES_BY_OWNER"
14971
14972	// AccountLimitTypeMaxReusableDelegationSetsByOwner is a AccountLimitType enum value
14973	AccountLimitTypeMaxReusableDelegationSetsByOwner = "MAX_REUSABLE_DELEGATION_SETS_BY_OWNER"
14974
14975	// AccountLimitTypeMaxTrafficPoliciesByOwner is a AccountLimitType enum value
14976	AccountLimitTypeMaxTrafficPoliciesByOwner = "MAX_TRAFFIC_POLICIES_BY_OWNER"
14977)
14978
14979const (
14980	// ChangeActionCreate is a ChangeAction enum value
14981	ChangeActionCreate = "CREATE"
14982
14983	// ChangeActionDelete is a ChangeAction enum value
14984	ChangeActionDelete = "DELETE"
14985
14986	// ChangeActionUpsert is a ChangeAction enum value
14987	ChangeActionUpsert = "UPSERT"
14988)
14989
14990const (
14991	// ChangeStatusPending is a ChangeStatus enum value
14992	ChangeStatusPending = "PENDING"
14993
14994	// ChangeStatusInsync is a ChangeStatus enum value
14995	ChangeStatusInsync = "INSYNC"
14996)
14997
14998const (
14999	// CloudWatchRegionUsEast1 is a CloudWatchRegion enum value
15000	CloudWatchRegionUsEast1 = "us-east-1"
15001
15002	// CloudWatchRegionUsEast2 is a CloudWatchRegion enum value
15003	CloudWatchRegionUsEast2 = "us-east-2"
15004
15005	// CloudWatchRegionUsWest1 is a CloudWatchRegion enum value
15006	CloudWatchRegionUsWest1 = "us-west-1"
15007
15008	// CloudWatchRegionUsWest2 is a CloudWatchRegion enum value
15009	CloudWatchRegionUsWest2 = "us-west-2"
15010
15011	// CloudWatchRegionCaCentral1 is a CloudWatchRegion enum value
15012	CloudWatchRegionCaCentral1 = "ca-central-1"
15013
15014	// CloudWatchRegionEuCentral1 is a CloudWatchRegion enum value
15015	CloudWatchRegionEuCentral1 = "eu-central-1"
15016
15017	// CloudWatchRegionEuWest1 is a CloudWatchRegion enum value
15018	CloudWatchRegionEuWest1 = "eu-west-1"
15019
15020	// CloudWatchRegionEuWest2 is a CloudWatchRegion enum value
15021	CloudWatchRegionEuWest2 = "eu-west-2"
15022
15023	// CloudWatchRegionEuWest3 is a CloudWatchRegion enum value
15024	CloudWatchRegionEuWest3 = "eu-west-3"
15025
15026	// CloudWatchRegionApEast1 is a CloudWatchRegion enum value
15027	CloudWatchRegionApEast1 = "ap-east-1"
15028
15029	// CloudWatchRegionMeSouth1 is a CloudWatchRegion enum value
15030	CloudWatchRegionMeSouth1 = "me-south-1"
15031
15032	// CloudWatchRegionApSouth1 is a CloudWatchRegion enum value
15033	CloudWatchRegionApSouth1 = "ap-south-1"
15034
15035	// CloudWatchRegionApSoutheast1 is a CloudWatchRegion enum value
15036	CloudWatchRegionApSoutheast1 = "ap-southeast-1"
15037
15038	// CloudWatchRegionApSoutheast2 is a CloudWatchRegion enum value
15039	CloudWatchRegionApSoutheast2 = "ap-southeast-2"
15040
15041	// CloudWatchRegionApNortheast1 is a CloudWatchRegion enum value
15042	CloudWatchRegionApNortheast1 = "ap-northeast-1"
15043
15044	// CloudWatchRegionApNortheast2 is a CloudWatchRegion enum value
15045	CloudWatchRegionApNortheast2 = "ap-northeast-2"
15046
15047	// CloudWatchRegionApNortheast3 is a CloudWatchRegion enum value
15048	CloudWatchRegionApNortheast3 = "ap-northeast-3"
15049
15050	// CloudWatchRegionEuNorth1 is a CloudWatchRegion enum value
15051	CloudWatchRegionEuNorth1 = "eu-north-1"
15052
15053	// CloudWatchRegionSaEast1 is a CloudWatchRegion enum value
15054	CloudWatchRegionSaEast1 = "sa-east-1"
15055
15056	// CloudWatchRegionCnNorthwest1 is a CloudWatchRegion enum value
15057	CloudWatchRegionCnNorthwest1 = "cn-northwest-1"
15058
15059	// CloudWatchRegionCnNorth1 is a CloudWatchRegion enum value
15060	CloudWatchRegionCnNorth1 = "cn-north-1"
15061)
15062
15063const (
15064	// ComparisonOperatorGreaterThanOrEqualToThreshold is a ComparisonOperator enum value
15065	ComparisonOperatorGreaterThanOrEqualToThreshold = "GreaterThanOrEqualToThreshold"
15066
15067	// ComparisonOperatorGreaterThanThreshold is a ComparisonOperator enum value
15068	ComparisonOperatorGreaterThanThreshold = "GreaterThanThreshold"
15069
15070	// ComparisonOperatorLessThanThreshold is a ComparisonOperator enum value
15071	ComparisonOperatorLessThanThreshold = "LessThanThreshold"
15072
15073	// ComparisonOperatorLessThanOrEqualToThreshold is a ComparisonOperator enum value
15074	ComparisonOperatorLessThanOrEqualToThreshold = "LessThanOrEqualToThreshold"
15075)
15076
15077const (
15078	// HealthCheckRegionUsEast1 is a HealthCheckRegion enum value
15079	HealthCheckRegionUsEast1 = "us-east-1"
15080
15081	// HealthCheckRegionUsWest1 is a HealthCheckRegion enum value
15082	HealthCheckRegionUsWest1 = "us-west-1"
15083
15084	// HealthCheckRegionUsWest2 is a HealthCheckRegion enum value
15085	HealthCheckRegionUsWest2 = "us-west-2"
15086
15087	// HealthCheckRegionEuWest1 is a HealthCheckRegion enum value
15088	HealthCheckRegionEuWest1 = "eu-west-1"
15089
15090	// HealthCheckRegionApSoutheast1 is a HealthCheckRegion enum value
15091	HealthCheckRegionApSoutheast1 = "ap-southeast-1"
15092
15093	// HealthCheckRegionApSoutheast2 is a HealthCheckRegion enum value
15094	HealthCheckRegionApSoutheast2 = "ap-southeast-2"
15095
15096	// HealthCheckRegionApNortheast1 is a HealthCheckRegion enum value
15097	HealthCheckRegionApNortheast1 = "ap-northeast-1"
15098
15099	// HealthCheckRegionSaEast1 is a HealthCheckRegion enum value
15100	HealthCheckRegionSaEast1 = "sa-east-1"
15101)
15102
15103const (
15104	// HealthCheckTypeHttp is a HealthCheckType enum value
15105	HealthCheckTypeHttp = "HTTP"
15106
15107	// HealthCheckTypeHttps is a HealthCheckType enum value
15108	HealthCheckTypeHttps = "HTTPS"
15109
15110	// HealthCheckTypeHttpStrMatch is a HealthCheckType enum value
15111	HealthCheckTypeHttpStrMatch = "HTTP_STR_MATCH"
15112
15113	// HealthCheckTypeHttpsStrMatch is a HealthCheckType enum value
15114	HealthCheckTypeHttpsStrMatch = "HTTPS_STR_MATCH"
15115
15116	// HealthCheckTypeTcp is a HealthCheckType enum value
15117	HealthCheckTypeTcp = "TCP"
15118
15119	// HealthCheckTypeCalculated is a HealthCheckType enum value
15120	HealthCheckTypeCalculated = "CALCULATED"
15121
15122	// HealthCheckTypeCloudwatchMetric is a HealthCheckType enum value
15123	HealthCheckTypeCloudwatchMetric = "CLOUDWATCH_METRIC"
15124)
15125
15126const (
15127	// HostedZoneLimitTypeMaxRrsetsByZone is a HostedZoneLimitType enum value
15128	HostedZoneLimitTypeMaxRrsetsByZone = "MAX_RRSETS_BY_ZONE"
15129
15130	// HostedZoneLimitTypeMaxVpcsAssociatedByZone is a HostedZoneLimitType enum value
15131	HostedZoneLimitTypeMaxVpcsAssociatedByZone = "MAX_VPCS_ASSOCIATED_BY_ZONE"
15132)
15133
15134const (
15135	// InsufficientDataHealthStatusHealthy is a InsufficientDataHealthStatus enum value
15136	InsufficientDataHealthStatusHealthy = "Healthy"
15137
15138	// InsufficientDataHealthStatusUnhealthy is a InsufficientDataHealthStatus enum value
15139	InsufficientDataHealthStatusUnhealthy = "Unhealthy"
15140
15141	// InsufficientDataHealthStatusLastKnownStatus is a InsufficientDataHealthStatus enum value
15142	InsufficientDataHealthStatusLastKnownStatus = "LastKnownStatus"
15143)
15144
15145const (
15146	// RRTypeSoa is a RRType enum value
15147	RRTypeSoa = "SOA"
15148
15149	// RRTypeA is a RRType enum value
15150	RRTypeA = "A"
15151
15152	// RRTypeTxt is a RRType enum value
15153	RRTypeTxt = "TXT"
15154
15155	// RRTypeNs is a RRType enum value
15156	RRTypeNs = "NS"
15157
15158	// RRTypeCname is a RRType enum value
15159	RRTypeCname = "CNAME"
15160
15161	// RRTypeMx is a RRType enum value
15162	RRTypeMx = "MX"
15163
15164	// RRTypeNaptr is a RRType enum value
15165	RRTypeNaptr = "NAPTR"
15166
15167	// RRTypePtr is a RRType enum value
15168	RRTypePtr = "PTR"
15169
15170	// RRTypeSrv is a RRType enum value
15171	RRTypeSrv = "SRV"
15172
15173	// RRTypeSpf is a RRType enum value
15174	RRTypeSpf = "SPF"
15175
15176	// RRTypeAaaa is a RRType enum value
15177	RRTypeAaaa = "AAAA"
15178
15179	// RRTypeCaa is a RRType enum value
15180	RRTypeCaa = "CAA"
15181)
15182
15183const (
15184	// ResettableElementNameFullyQualifiedDomainName is a ResettableElementName enum value
15185	ResettableElementNameFullyQualifiedDomainName = "FullyQualifiedDomainName"
15186
15187	// ResettableElementNameRegions is a ResettableElementName enum value
15188	ResettableElementNameRegions = "Regions"
15189
15190	// ResettableElementNameResourcePath is a ResettableElementName enum value
15191	ResettableElementNameResourcePath = "ResourcePath"
15192
15193	// ResettableElementNameChildHealthChecks is a ResettableElementName enum value
15194	ResettableElementNameChildHealthChecks = "ChildHealthChecks"
15195)
15196
15197const (
15198	// ResourceRecordSetFailoverPrimary is a ResourceRecordSetFailover enum value
15199	ResourceRecordSetFailoverPrimary = "PRIMARY"
15200
15201	// ResourceRecordSetFailoverSecondary is a ResourceRecordSetFailover enum value
15202	ResourceRecordSetFailoverSecondary = "SECONDARY"
15203)
15204
15205const (
15206	// ResourceRecordSetRegionUsEast1 is a ResourceRecordSetRegion enum value
15207	ResourceRecordSetRegionUsEast1 = "us-east-1"
15208
15209	// ResourceRecordSetRegionUsEast2 is a ResourceRecordSetRegion enum value
15210	ResourceRecordSetRegionUsEast2 = "us-east-2"
15211
15212	// ResourceRecordSetRegionUsWest1 is a ResourceRecordSetRegion enum value
15213	ResourceRecordSetRegionUsWest1 = "us-west-1"
15214
15215	// ResourceRecordSetRegionUsWest2 is a ResourceRecordSetRegion enum value
15216	ResourceRecordSetRegionUsWest2 = "us-west-2"
15217
15218	// ResourceRecordSetRegionCaCentral1 is a ResourceRecordSetRegion enum value
15219	ResourceRecordSetRegionCaCentral1 = "ca-central-1"
15220
15221	// ResourceRecordSetRegionEuWest1 is a ResourceRecordSetRegion enum value
15222	ResourceRecordSetRegionEuWest1 = "eu-west-1"
15223
15224	// ResourceRecordSetRegionEuWest2 is a ResourceRecordSetRegion enum value
15225	ResourceRecordSetRegionEuWest2 = "eu-west-2"
15226
15227	// ResourceRecordSetRegionEuWest3 is a ResourceRecordSetRegion enum value
15228	ResourceRecordSetRegionEuWest3 = "eu-west-3"
15229
15230	// ResourceRecordSetRegionEuCentral1 is a ResourceRecordSetRegion enum value
15231	ResourceRecordSetRegionEuCentral1 = "eu-central-1"
15232
15233	// ResourceRecordSetRegionApSoutheast1 is a ResourceRecordSetRegion enum value
15234	ResourceRecordSetRegionApSoutheast1 = "ap-southeast-1"
15235
15236	// ResourceRecordSetRegionApSoutheast2 is a ResourceRecordSetRegion enum value
15237	ResourceRecordSetRegionApSoutheast2 = "ap-southeast-2"
15238
15239	// ResourceRecordSetRegionApNortheast1 is a ResourceRecordSetRegion enum value
15240	ResourceRecordSetRegionApNortheast1 = "ap-northeast-1"
15241
15242	// ResourceRecordSetRegionApNortheast2 is a ResourceRecordSetRegion enum value
15243	ResourceRecordSetRegionApNortheast2 = "ap-northeast-2"
15244
15245	// ResourceRecordSetRegionApNortheast3 is a ResourceRecordSetRegion enum value
15246	ResourceRecordSetRegionApNortheast3 = "ap-northeast-3"
15247
15248	// ResourceRecordSetRegionEuNorth1 is a ResourceRecordSetRegion enum value
15249	ResourceRecordSetRegionEuNorth1 = "eu-north-1"
15250
15251	// ResourceRecordSetRegionSaEast1 is a ResourceRecordSetRegion enum value
15252	ResourceRecordSetRegionSaEast1 = "sa-east-1"
15253
15254	// ResourceRecordSetRegionCnNorth1 is a ResourceRecordSetRegion enum value
15255	ResourceRecordSetRegionCnNorth1 = "cn-north-1"
15256
15257	// ResourceRecordSetRegionCnNorthwest1 is a ResourceRecordSetRegion enum value
15258	ResourceRecordSetRegionCnNorthwest1 = "cn-northwest-1"
15259
15260	// ResourceRecordSetRegionApEast1 is a ResourceRecordSetRegion enum value
15261	ResourceRecordSetRegionApEast1 = "ap-east-1"
15262
15263	// ResourceRecordSetRegionMeSouth1 is a ResourceRecordSetRegion enum value
15264	ResourceRecordSetRegionMeSouth1 = "me-south-1"
15265
15266	// ResourceRecordSetRegionApSouth1 is a ResourceRecordSetRegion enum value
15267	ResourceRecordSetRegionApSouth1 = "ap-south-1"
15268)
15269
15270const (
15271	// ReusableDelegationSetLimitTypeMaxZonesByReusableDelegationSet is a ReusableDelegationSetLimitType enum value
15272	ReusableDelegationSetLimitTypeMaxZonesByReusableDelegationSet = "MAX_ZONES_BY_REUSABLE_DELEGATION_SET"
15273)
15274
15275const (
15276	// StatisticAverage is a Statistic enum value
15277	StatisticAverage = "Average"
15278
15279	// StatisticSum is a Statistic enum value
15280	StatisticSum = "Sum"
15281
15282	// StatisticSampleCount is a Statistic enum value
15283	StatisticSampleCount = "SampleCount"
15284
15285	// StatisticMaximum is a Statistic enum value
15286	StatisticMaximum = "Maximum"
15287
15288	// StatisticMinimum is a Statistic enum value
15289	StatisticMinimum = "Minimum"
15290)
15291
15292const (
15293	// TagResourceTypeHealthcheck is a TagResourceType enum value
15294	TagResourceTypeHealthcheck = "healthcheck"
15295
15296	// TagResourceTypeHostedzone is a TagResourceType enum value
15297	TagResourceTypeHostedzone = "hostedzone"
15298)
15299
15300const (
15301	// VPCRegionUsEast1 is a VPCRegion enum value
15302	VPCRegionUsEast1 = "us-east-1"
15303
15304	// VPCRegionUsEast2 is a VPCRegion enum value
15305	VPCRegionUsEast2 = "us-east-2"
15306
15307	// VPCRegionUsWest1 is a VPCRegion enum value
15308	VPCRegionUsWest1 = "us-west-1"
15309
15310	// VPCRegionUsWest2 is a VPCRegion enum value
15311	VPCRegionUsWest2 = "us-west-2"
15312
15313	// VPCRegionEuWest1 is a VPCRegion enum value
15314	VPCRegionEuWest1 = "eu-west-1"
15315
15316	// VPCRegionEuWest2 is a VPCRegion enum value
15317	VPCRegionEuWest2 = "eu-west-2"
15318
15319	// VPCRegionEuWest3 is a VPCRegion enum value
15320	VPCRegionEuWest3 = "eu-west-3"
15321
15322	// VPCRegionEuCentral1 is a VPCRegion enum value
15323	VPCRegionEuCentral1 = "eu-central-1"
15324
15325	// VPCRegionApEast1 is a VPCRegion enum value
15326	VPCRegionApEast1 = "ap-east-1"
15327
15328	// VPCRegionMeSouth1 is a VPCRegion enum value
15329	VPCRegionMeSouth1 = "me-south-1"
15330
15331	// VPCRegionApSoutheast1 is a VPCRegion enum value
15332	VPCRegionApSoutheast1 = "ap-southeast-1"
15333
15334	// VPCRegionApSoutheast2 is a VPCRegion enum value
15335	VPCRegionApSoutheast2 = "ap-southeast-2"
15336
15337	// VPCRegionApSouth1 is a VPCRegion enum value
15338	VPCRegionApSouth1 = "ap-south-1"
15339
15340	// VPCRegionApNortheast1 is a VPCRegion enum value
15341	VPCRegionApNortheast1 = "ap-northeast-1"
15342
15343	// VPCRegionApNortheast2 is a VPCRegion enum value
15344	VPCRegionApNortheast2 = "ap-northeast-2"
15345
15346	// VPCRegionApNortheast3 is a VPCRegion enum value
15347	VPCRegionApNortheast3 = "ap-northeast-3"
15348
15349	// VPCRegionEuNorth1 is a VPCRegion enum value
15350	VPCRegionEuNorth1 = "eu-north-1"
15351
15352	// VPCRegionSaEast1 is a VPCRegion enum value
15353	VPCRegionSaEast1 = "sa-east-1"
15354
15355	// VPCRegionCaCentral1 is a VPCRegion enum value
15356	VPCRegionCaCentral1 = "ca-central-1"
15357
15358	// VPCRegionCnNorth1 is a VPCRegion enum value
15359	VPCRegionCnNorth1 = "cn-north-1"
15360)
15361