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