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