1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// A complex type that contains information about the Amazon Route 53 DNS records
10// that you want AWS Cloud Map to create when you register an instance.
11type DnsConfig struct {
12
13	// An array that contains one DnsRecord object for each Route 53 DNS record that
14	// you want AWS Cloud Map to create when you register an instance.
15	//
16	// This member is required.
17	DnsRecords []DnsRecord
18
19	// The ID of the namespace to use for DNS configuration.
20	//
21	// Deprecated: Top level attribute in request should be used to reference
22	// namespace-id
23	NamespaceId *string
24
25	// The routing policy that you want to apply to all Route 53 DNS records that AWS
26	// Cloud Map creates when you register an instance and specify this service. If you
27	// want to use this service to register instances that create alias records,
28	// specify WEIGHTED for the routing policy. You can specify the following values:
29	// MULTIVALUE If you define a health check for the service and the health check is
30	// healthy, Route 53 returns the applicable value for up to eight instances. For
31	// example, suppose the service includes configurations for one A record and a
32	// health check, and you use the service to register 10 instances. Route 53
33	// responds to DNS queries with IP addresses for up to eight healthy instances. If
34	// fewer than eight instances are healthy, Route 53 responds to every DNS query
35	// with the IP addresses for all of the healthy instances. If you don't define a
36	// health check for the service, Route 53 assumes that all instances are healthy
37	// and returns the values for up to eight instances. For more information about the
38	// multivalue routing policy, see Multivalue Answer Routing
39	// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue)
40	// in the Route 53 Developer Guide. WEIGHTED Route 53 returns the applicable value
41	// from one randomly selected instance from among the instances that you registered
42	// using the same service. Currently, all records have the same weight, so you
43	// can't route more or less traffic to any instances. For example, suppose the
44	// service includes configurations for one A record and a health check, and you use
45	// the service to register 10 instances. Route 53 responds to DNS queries with the
46	// IP address for one randomly selected instance from among the healthy instances.
47	// If no instances are healthy, Route 53 responds to DNS queries as if all of the
48	// instances were healthy. If you don't define a health check for the service,
49	// Route 53 assumes that all instances are healthy and returns the applicable value
50	// for one randomly selected instance. For more information about the weighted
51	// routing policy, see Weighted Routing
52	// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted)
53	// in the Route 53 Developer Guide.
54	RoutingPolicy RoutingPolicy
55}
56
57// A complex type that contains information about changes to the Route 53 DNS
58// records that AWS Cloud Map creates when you register an instance.
59type DnsConfigChange struct {
60
61	// An array that contains one DnsRecord object for each Route 53 record that you
62	// want AWS Cloud Map to create when you register an instance.
63	//
64	// This member is required.
65	DnsRecords []DnsRecord
66}
67
68// A complex type that contains the ID for the Route 53 hosted zone that AWS Cloud
69// Map creates when you create a namespace.
70type DnsProperties struct {
71
72	// The ID for the Route 53 hosted zone that AWS Cloud Map creates when you create a
73	// namespace.
74	HostedZoneId *string
75}
76
77// A complex type that contains information about the Route 53 DNS records that you
78// want AWS Cloud Map to create when you register an instance.
79type DnsRecord struct {
80
81	// The amount of time, in seconds, that you want DNS resolvers to cache the
82	// settings for this record. Alias records don't include a TTL because Route 53
83	// uses the TTL for the AWS resource that an alias record routes traffic to. If you
84	// include the AWS_ALIAS_DNS_NAME attribute when you submit a RegisterInstance
85	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)
86	// request, the TTL value is ignored. Always specify a TTL for the service; you can
87	// use a service to register instances that create either alias or non-alias
88	// records.
89	//
90	// This member is required.
91	TTL *int64
92
93	// The type of the resource, which indicates the type of value that Route 53
94	// returns in response to DNS queries. You can specify values for Type in the
95	// following combinations:
96	//
97	// * A
98	//
99	// * AAAA
100	//
101	// * A and AAAA
102	//
103	// * SRV
104	//
105	// * CNAME
106	//
107	// If you want
108	// AWS Cloud Map to create a Route 53 alias record when you register an instance,
109	// specify A or AAAA for Type. You specify other settings, such as the IP address
110	// for A and AAAA records, when you register an instance. For more information, see
111	// RegisterInstance
112	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html).
113	// The following values are supported: A Route 53 returns the IP address of the
114	// resource in IPv4 format, such as 192.0.2.44. AAAA Route 53 returns the IP
115	// address of the resource in IPv6 format, such as
116	// 2001:0db8:85a3:0000:0000:abcd:0001:2345. CNAME Route 53 returns the domain name
117	// of the resource, such as www.example.com. Note the following:
118	//
119	// * You specify the
120	// domain name that you want to route traffic to when you register an instance. For
121	// more information, see Attributes
122	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html#cloudmap-RegisterInstance-request-Attributes)
123	// in the topic RegisterInstance
124	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html).
125	//
126	// *
127	// You must specify WEIGHTED for the value of RoutingPolicy.
128	//
129	// * You can't specify
130	// both CNAME for Type and settings for HealthCheckConfig. If you do, the request
131	// will fail with an InvalidInput error.
132	//
133	// SRV Route 53 returns the value for an SRV
134	// record. The value for an SRV record uses the following values: priority weight
135	// port service-hostname Note the following about the values:
136	//
137	// * The values of
138	// priority and weight are both set to 1 and can't be changed.
139	//
140	// * The value of port
141	// comes from the value that you specify for the AWS_INSTANCE_PORT attribute when
142	// you submit a RegisterInstance
143	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_RegisterInstance.html)
144	// request.
145	//
146	// * The value of service-hostname is a concatenation of the following
147	// values:
148	//
149	// * The value that you specify for InstanceId when you register an
150	// instance.
151	//
152	// * The name of the service.
153	//
154	// * The name of the namespace.
155	//
156	// For
157	// example, if the value of InstanceId is test, the name of the service is backend,
158	// and the name of the namespace is example.com, the value of service-hostname is:
159	// test.backend.example.com
160	//
161	// If you specify settings for an SRV record, note the
162	// following:
163	//
164	// * If you specify values for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or
165	// both in the RegisterInstance request, AWS Cloud Map automatically creates A
166	// and/or AAAA records that have the same name as the value of service-hostname in
167	// the SRV record. You can ignore these records.
168	//
169	// * If you're using a system that
170	// requires a specific SRV format, such as HAProxy, see the Name
171	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html#cloudmap-CreateService-request-Name)
172	// element in the documentation about CreateService for information about how to
173	// specify the correct name format.
174	//
175	// This member is required.
176	Type RecordType
177}
178
179// Public DNS and HTTP namespaces only. A complex type that contains settings for
180// an optional health check. If you specify settings for a health check, AWS Cloud
181// Map associates the health check with the records that you specify in DnsConfig.
182// If you specify a health check configuration, you can specify either
183// HealthCheckCustomConfig or HealthCheckConfig but not both. Health checks are
184// basic Route 53 health checks that monitor an AWS endpoint. For information about
185// pricing for health checks, see Amazon Route 53 Pricing
186// (http://aws.amazon.com/route53/pricing/). Note the following about configuring
187// health checks. A and AAAA records If DnsConfig includes configurations for both
188// A and AAAA records, AWS Cloud Map creates a health check that uses the IPv4
189// address to check the health of the resource. If the endpoint that is specified
190// by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records
191// to be unhealthy. CNAME records You can't specify settings for HealthCheckConfig
192// when the DNSConfig includes CNAME for the value of Type. If you do, the
193// CreateService request will fail with an InvalidInput error. Request interval A
194// Route 53 health checker in each health-checking region sends a health check
195// request to an endpoint every 30 seconds. On average, your endpoint receives a
196// health check request about every two seconds. However, health checkers don't
197// coordinate with one another, so you'll sometimes see several requests per second
198// followed by a few seconds with no health checks at all. Health checking regions
199// Health checkers perform checks from all Route 53 health-checking regions. For a
200// list of the current regions, see Regions
201// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions).
202// Alias records When you register an instance, if you include the
203// AWS_ALIAS_DNS_NAME attribute, AWS Cloud Map creates a Route 53 alias record.
204// Note the following:
205//
206// * Route 53 automatically sets EvaluateTargetHealth to true
207// for alias records. When EvaluateTargetHealth is true, the alias record inherits
208// the health of the referenced AWS resource. such as an ELB load balancer. For
209// more information, see EvaluateTargetHealth
210// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth).
211//
212// *
213// If you include HealthCheckConfig and then use the service to register an
214// instance that creates an alias record, Route 53 doesn't create the health
215// check.
216//
217// Charges for health checks Health checks are basic Route 53 health checks
218// that monitor an AWS endpoint. For information about pricing for health checks,
219// see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
220type HealthCheckConfig struct {
221
222	// The type of health check that you want to create, which indicates how Route 53
223	// determines whether an endpoint is healthy. You can't change the value of Type
224	// after you create a health check. You can create the following types of health
225	// checks:
226	//
227	// * HTTP: Route 53 tries to establish a TCP connection. If successful,
228	// Route 53 submits an HTTP request and waits for an HTTP status code of 200 or
229	// greater and less than 400.
230	//
231	// * HTTPS: Route 53 tries to establish a TCP
232	// connection. If successful, Route 53 submits an HTTPS request and waits for an
233	// HTTP status code of 200 or greater and less than 400. If you specify HTTPS for
234	// the value of Type, the endpoint must support TLS v1.0 or later.
235	//
236	// * TCP: Route 53
237	// tries to establish a TCP connection. If you specify TCP for Type, don't specify
238	// a value for ResourcePath.
239	//
240	// For more information, see How Route 53 Determines
241	// Whether an Endpoint Is Healthy
242	// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
243	// in the Route 53 Developer Guide.
244	//
245	// This member is required.
246	Type HealthCheckType
247
248	// The number of consecutive health checks that an endpoint must pass or fail for
249	// Route 53 to change the current status of the endpoint from unhealthy to healthy
250	// or vice versa. For more information, see How Route 53 Determines Whether an
251	// Endpoint Is Healthy
252	// (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)
253	// in the Route 53 Developer Guide.
254	FailureThreshold *int32
255
256	// The path that you want Route 53 to request when performing health checks. The
257	// path can be any value for which your endpoint will return an HTTP status code of
258	// 2xx or 3xx when the endpoint is healthy, such as the file
259	// /docs/route53-health-check.html. Route 53 automatically adds the DNS name for
260	// the service. If you don't specify a value for ResourcePath, the default value is
261	// /. If you specify TCP for Type, you must not specify a value for ResourcePath.
262	ResourcePath *string
263}
264
265// A complex type that contains information about an optional custom health check.
266// A custom health check, which requires that you use a third-party health checker
267// to evaluate the health of your resources, is useful in the following
268// circumstances:
269//
270// * You can't use a health check that is defined by
271// HealthCheckConfig because the resource isn't available over the internet. For
272// example, you can use a custom health check when the instance is in an Amazon
273// VPC. (To check the health of resources in a VPC, the health checker must also be
274// in the VPC.)
275//
276// * You want to use a third-party health checker regardless of where
277// your resources are.
278//
279// If you specify a health check configuration, you can
280// specify either HealthCheckCustomConfig or HealthCheckConfig but not both. To
281// change the status of a custom health check, submit an
282// UpdateInstanceCustomHealthStatus request. AWS Cloud Map doesn't monitor the
283// status of the resource, it just keeps a record of the status specified in the
284// most recent UpdateInstanceCustomHealthStatus request. Here's how custom health
285// checks work:
286//
287// * You create a service and specify a value for FailureThreshold.
288// The failure threshold indicates the number of 30-second intervals you want AWS
289// Cloud Map to wait between the time that your application sends an
290// UpdateInstanceCustomHealthStatus
291// (https://docs.aws.amazon.com/cloud-map/latest/api/API_UpdateInstanceCustomHealthStatus.html)
292// request and the time that AWS Cloud Map stops routing internet traffic to the
293// corresponding resource.
294//
295// * You register an instance.
296//
297// * You configure a
298// third-party health checker to monitor the resource that is associated with the
299// new instance. AWS Cloud Map doesn't check the health of the resource
300// directly.
301//
302// * The third-party health-checker determines that the resource is
303// unhealthy and notifies your application.
304//
305// * Your application submits an
306// UpdateInstanceCustomHealthStatus request.
307//
308// * AWS Cloud Map waits for
309// (FailureThreshold x 30) seconds.
310//
311// * If another UpdateInstanceCustomHealthStatus
312// request doesn't arrive during that time to change the status back to healthy,
313// AWS Cloud Map stops routing traffic to the resource.
314type HealthCheckCustomConfig struct {
315
316	// This parameter has been deprecated and is always set to 1. AWS Cloud Map waits
317	// for approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus
318	// request before changing the status of the service instance. The number of
319	// 30-second intervals that you want AWS Cloud Map to wait after receiving an
320	// UpdateInstanceCustomHealthStatus request before it changes the health status of
321	// a service instance. Sending a second or subsequent
322	// UpdateInstanceCustomHealthStatus request with the same value before 30 seconds
323	// has passed doesn't accelerate the change. AWS Cloud Map still waits 30 seconds
324	// after the first request to make the change.
325	//
326	// Deprecated: Configurable FailureThreshold of HealthCheckCustomConfig is
327	// deprecated. It will always have value 1.
328	FailureThreshold *int32
329}
330
331// In a response to a DiscoverInstances
332// (https://docs.aws.amazon.com/cloud-map/latest/api/API_DiscoverInstances.html)
333// request, HttpInstanceSummary contains information about one instance that
334// matches the values that you specified in the request.
335type HttpInstanceSummary struct {
336
337	// If you included any attributes when you registered the instance, the values of
338	// those attributes.
339	Attributes map[string]string
340
341	// If you configured health checking in the service, the current health status of
342	// the service instance.
343	HealthStatus HealthStatus
344
345	// The ID of an instance that matches the values that you specified in the request.
346	InstanceId *string
347
348	// The name of the namespace that you specified when you registered the instance.
349	NamespaceName *string
350
351	// The name of the service that you specified when you registered the instance.
352	ServiceName *string
353}
354
355// A complex type that contains the name of an HTTP namespace.
356type HttpProperties struct {
357
358	// The name of an HTTP namespace.
359	HttpName *string
360}
361
362// A complex type that contains information about an instance that AWS Cloud Map
363// creates when you submit a RegisterInstance request.
364type Instance struct {
365
366	// An identifier that you want to associate with the instance. Note the
367	// following:
368	//
369	// * If the service that is specified by ServiceId includes settings
370	// for an SRV record, the value of InstanceId is automatically included as part of
371	// the value for the SRV record. For more information, see DnsRecord > Type
372	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_DnsRecord.html#cloudmap-Type-DnsRecord-Type).
373	//
374	// *
375	// You can use this value to update an existing instance.
376	//
377	// * To register a new
378	// instance, you must specify a value that is unique among instances that you
379	// register by using the same service.
380	//
381	// * If you specify an existing InstanceId and
382	// ServiceId, AWS Cloud Map updates the existing DNS records. If there's also an
383	// existing health check, AWS Cloud Map deletes the old health check and creates a
384	// new one. The health check isn't deleted immediately, so it will still appear for
385	// a while if you submit a ListHealthChecks request, for example.
386	//
387	// This member is required.
388	Id *string
389
390	// A string map that contains the following information for the service that you
391	// specify in ServiceId:
392	//
393	// * The attributes that apply to the records that are
394	// defined in the service.
395	//
396	// * For each attribute, the applicable value.
397	//
398	// Supported
399	// attribute keys include the following: AWS_ALIAS_DNS_NAME If you want AWS Cloud
400	// Map to create a Route 53 alias record that routes traffic to an Elastic Load
401	// Balancing load balancer, specify the DNS name that is associated with the load
402	// balancer. For information about how to get the DNS name, see "DNSName" in the
403	// topic AliasTarget
404	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html).
405	// Note the following:
406	//
407	// * The configuration for the service that is specified by
408	// ServiceId must include settings for an A record, an AAAA record, or both.
409	//
410	// * In
411	// the service that is specified by ServiceId, the value of RoutingPolicy must be
412	// WEIGHTED.
413	//
414	// * If the service that is specified by ServiceId includes
415	// HealthCheckConfig settings, AWS Cloud Map will create the health check, but it
416	// won't associate the health check with the alias record.
417	//
418	// * Auto naming currently
419	// doesn't support creating alias records that route traffic to AWS resources other
420	// than ELB load balancers.
421	//
422	// * If you specify a value for AWS_ALIAS_DNS_NAME, don't
423	// specify values for any of the AWS_INSTANCE attributes.
424	//
425	// AWS_EC2_INSTANCE_ID HTTP
426	// namespaces only. The Amazon EC2 instance ID for the instance. The
427	// AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.
428	// AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the
429	// domain name that you want Route 53 to return in response to DNS queries, for
430	// example, example.com. This value is required if the service specified by
431	// ServiceId includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the
432	// service configuration includes an A record, the IPv4 address that you want Route
433	// 53 to return in response to DNS queries, for example, 192.0.2.44. This value is
434	// required if the service specified by ServiceId includes settings for an A
435	// record. If the service includes settings for an SRV record, you must specify a
436	// value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both. AWS_INSTANCE_IPV6 If
437	// the service configuration includes an AAAA record, the IPv6 address that you
438	// want Route 53 to return in response to DNS queries, for example,
439	// 2001:0db8:85a3:0000:0000:abcd:0001:2345. This value is required if the service
440	// specified by ServiceId includes settings for an AAAA record. If the service
441	// includes settings for an SRV record, you must specify a value for
442	// AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both. AWS_INSTANCE_PORT If the service
443	// includes an SRV record, the value that you want Route 53 to return for the port.
444	// If the service includes HealthCheckConfig, the port on the endpoint that you
445	// want Route 53 to send requests to. This value is required if you specified
446	// settings for an SRV record or a Route 53 health check when you created the
447	// service.
448	Attributes map[string]string
449
450	// A unique string that identifies the request and that allows failed
451	// RegisterInstance requests to be retried without the risk of executing the
452	// operation twice. You must use a unique CreatorRequestId string every time you
453	// submit a RegisterInstance request if you're registering additional instances for
454	// the same namespace and service. CreatorRequestId can be any unique string, for
455	// example, a date/time stamp.
456	CreatorRequestId *string
457}
458
459// A complex type that contains information about the instances that you registered
460// by using a specified service.
461type InstanceSummary struct {
462
463	// A string map that contains the following information:
464	//
465	// * The attributes that are
466	// associate with the instance.
467	//
468	// * For each attribute, the applicable
469	// value.
470	//
471	// Supported attribute keys include the following:
472	//
473	// * AWS_ALIAS_DNS_NAME:
474	// For an alias record that routes traffic to an Elastic Load Balancing load
475	// balancer, the DNS name that is associated with the load balancer.
476	//
477	// *
478	// AWS_EC2_INSTANCE_ID: (HTTP namespaces only) The Amazon EC2 instance ID for the
479	// instance. When the AWS_EC2_INSTANCE_ID attribute is specified, then the
480	// AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.
481	//
482	// *
483	// AWS_INSTANCE_CNAME: For a CNAME record, the domain name that Route 53 returns in
484	// response to DNS queries, for example, example.com.
485	//
486	// * AWS_INSTANCE_IPV4: For an
487	// A record, the IPv4 address that Route 53 returns in response to DNS queries, for
488	// example, 192.0.2.44.
489	//
490	// * AWS_INSTANCE_IPV6: For an AAAA record, the IPv6 address
491	// that Route 53 returns in response to DNS queries, for example,
492	// 2001:0db8:85a3:0000:0000:abcd:0001:2345.
493	//
494	// * AWS_INSTANCE_PORT: For an SRV
495	// record, the value that Route 53 returns for the port. In addition, if the
496	// service includes HealthCheckConfig, the port on the endpoint that Route 53 sends
497	// requests to.
498	Attributes map[string]string
499
500	// The ID for an instance that you created by using a specified service.
501	Id *string
502}
503
504// A complex type that contains information about a specified namespace.
505type Namespace struct {
506
507	// The Amazon Resource Name (ARN) that AWS Cloud Map assigns to the namespace when
508	// you create it.
509	Arn *string
510
511	// The date that the namespace was created, in Unix date/time format and
512	// Coordinated Universal Time (UTC). The value of CreateDate is accurate to
513	// milliseconds. For example, the value 1516925490.087 represents Friday, January
514	// 26, 2018 12:11:30.087 AM.
515	CreateDate *time.Time
516
517	// A unique string that identifies the request and that allows failed requests to
518	// be retried without the risk of executing an operation twice.
519	CreatorRequestId *string
520
521	// The description that you specify for the namespace when you create it.
522	Description *string
523
524	// The ID of a namespace.
525	Id *string
526
527	// The name of the namespace, such as example.com.
528	Name *string
529
530	// A complex type that contains information that's specific to the type of the
531	// namespace.
532	Properties *NamespaceProperties
533
534	// The number of services that are associated with the namespace.
535	ServiceCount *int32
536
537	// The type of the namespace. The methods for discovering instances depends on the
538	// value that you specify:
539	//
540	// * HTTP: Instances can be discovered only
541	// programmatically, using the AWS Cloud Map DiscoverInstances API.
542	//
543	// * DNS_PUBLIC:
544	// Instances can be discovered using public DNS queries and using the
545	// DiscoverInstances API.
546	//
547	// * DNS_PRIVATE: Instances can be discovered using DNS
548	// queries in VPCs and using the DiscoverInstances API.
549	Type NamespaceType
550}
551
552// A complex type that identifies the namespaces that you want to list. You can
553// choose to list public or private namespaces.
554type NamespaceFilter struct {
555
556	// Specify TYPE.
557	//
558	// This member is required.
559	Name NamespaceFilterName
560
561	// If you specify EQ for Condition, specify either DNS_PUBLIC or DNS_PRIVATE. If
562	// you specify IN for Condition, you can specify DNS_PUBLIC, DNS_PRIVATE, or both.
563	//
564	// This member is required.
565	Values []string
566
567	// The operator that you want to use to determine whether ListNamespaces returns a
568	// namespace. Valid values for condition include:
569	//
570	// * EQ: When you specify EQ for
571	// the condition, you can choose to list only public namespaces or private
572	// namespaces, but not both. EQ is the default condition and can be omitted.
573	//
574	// * IN:
575	// When you specify IN for the condition, you can choose to list public namespaces,
576	// private namespaces, or both.
577	//
578	// * BETWEEN: Not applicable
579	Condition FilterCondition
580}
581
582// A complex type that contains information that is specific to the namespace type.
583type NamespaceProperties struct {
584
585	// A complex type that contains the ID for the Route 53 hosted zone that AWS Cloud
586	// Map creates when you create a namespace.
587	DnsProperties *DnsProperties
588
589	// A complex type that contains the name of an HTTP namespace.
590	HttpProperties *HttpProperties
591}
592
593// A complex type that contains information about a namespace.
594type NamespaceSummary struct {
595
596	// The Amazon Resource Name (ARN) that AWS Cloud Map assigns to the namespace when
597	// you create it.
598	Arn *string
599
600	// The date and time that the namespace was created.
601	CreateDate *time.Time
602
603	// A description for the namespace.
604	Description *string
605
606	// The ID of the namespace.
607	Id *string
608
609	// The name of the namespace. When you create a namespace, AWS Cloud Map
610	// automatically creates a Route 53 hosted zone that has the same name as the
611	// namespace.
612	Name *string
613
614	// A complex type that contains information that is specific to the namespace type.
615	Properties *NamespaceProperties
616
617	// The number of services that were created using the namespace.
618	ServiceCount *int32
619
620	// The type of the namespace, either public or private.
621	Type NamespaceType
622}
623
624// A complex type that contains information about a specified operation.
625type Operation struct {
626
627	// The date and time that the request was submitted, in Unix date/time format and
628	// Coordinated Universal Time (UTC). The value of CreateDate is accurate to
629	// milliseconds. For example, the value 1516925490.087 represents Friday, January
630	// 26, 2018 12:11:30.087 AM.
631	CreateDate *time.Time
632
633	// The code associated with ErrorMessage. Values for ErrorCode include the
634	// following:
635	//
636	// * ACCESS_DENIED
637	//
638	// * CANNOT_CREATE_HOSTED_ZONE
639	//
640	// * EXPIRED_TOKEN
641	//
642	// *
643	// HOSTED_ZONE_NOT_FOUND
644	//
645	// * INTERNAL_FAILURE
646	//
647	// * INVALID_CHANGE_BATCH
648	//
649	// *
650	// THROTTLED_REQUEST
651	ErrorCode *string
652
653	// If the value of Status is FAIL, the reason that the operation failed.
654	ErrorMessage *string
655
656	// The ID of the operation that you want to get information about.
657	Id *string
658
659	// The status of the operation. Values include the following:
660	//
661	// * SUBMITTED: This is
662	// the initial state immediately after you submit a request.
663	//
664	// * PENDING: AWS Cloud
665	// Map is performing the operation.
666	//
667	// * SUCCESS: The operation succeeded.
668	//
669	// * FAIL:
670	// The operation failed. For the failure reason, see ErrorMessage.
671	Status OperationStatus
672
673	// The name of the target entity that is associated with the operation:
674	//
675	// *
676	// NAMESPACE: The namespace ID is returned in the ResourceId property.
677	//
678	// * SERVICE:
679	// The service ID is returned in the ResourceId property.
680	//
681	// * INSTANCE: The instance
682	// ID is returned in the ResourceId property.
683	Targets map[string]string
684
685	// The name of the operation that is associated with the specified ID.
686	Type OperationType
687
688	// The date and time that the value of Status changed to the current value, in Unix
689	// date/time format and Coordinated Universal Time (UTC). The value of UpdateDate
690	// is accurate to milliseconds. For example, the value 1516925490.087 represents
691	// Friday, January 26, 2018 12:11:30.087 AM.
692	UpdateDate *time.Time
693}
694
695// A complex type that lets you select the operations that you want to list.
696type OperationFilter struct {
697
698	// Specify the operations that you want to get:
699	//
700	// * NAMESPACE_ID: Gets operations
701	// related to specified namespaces.
702	//
703	// * SERVICE_ID: Gets operations related to
704	// specified services.
705	//
706	// * STATUS: Gets operations based on the status of the
707	// operations: SUBMITTED, PENDING, SUCCEED, or FAIL.
708	//
709	// * TYPE: Gets specified types
710	// of operation.
711	//
712	// * UPDATE_DATE: Gets operations that changed status during a
713	// specified date/time range.
714	//
715	// This member is required.
716	Name OperationFilterName
717
718	// Specify values that are applicable to the value that you specify for Name:
719	//
720	// *
721	// NAMESPACE_ID: Specify one namespace ID.
722	//
723	// * SERVICE_ID: Specify one service
724	// ID.
725	//
726	// * STATUS: Specify one or more statuses: SUBMITTED, PENDING, SUCCEED, or
727	// FAIL.
728	//
729	// * TYPE: Specify one or more of the following types: CREATE_NAMESPACE,
730	// DELETE_NAMESPACE, UPDATE_SERVICE, REGISTER_INSTANCE, or DEREGISTER_INSTANCE.
731	//
732	// *
733	// UPDATE_DATE: Specify a start date and an end date in Unix date/time format and
734	// Coordinated Universal Time (UTC). The start date must be the first value.
735	//
736	// This member is required.
737	Values []string
738
739	// The operator that you want to use to determine whether an operation matches the
740	// specified value. Valid values for condition include:
741	//
742	// * EQ: When you specify EQ
743	// for the condition, you can specify only one value. EQ is supported for
744	// NAMESPACE_ID, SERVICE_ID, STATUS, and TYPE. EQ is the default condition and can
745	// be omitted.
746	//
747	// * IN: When you specify IN for the condition, you can specify a list
748	// of one or more values. IN is supported for STATUS and TYPE. An operation must
749	// match one of the specified values to be returned in the response.
750	//
751	// * BETWEEN:
752	// Specify a start date and an end date in Unix date/time format and Coordinated
753	// Universal Time (UTC). The start date must be the first value. BETWEEN is
754	// supported for UPDATE_DATE.
755	Condition FilterCondition
756}
757
758// A complex type that contains information about an operation that matches the
759// criteria that you specified in a ListOperations
760// (https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html)
761// request.
762type OperationSummary struct {
763
764	// The ID for an operation.
765	Id *string
766
767	// The status of the operation. Values include the following:
768	//
769	// * SUBMITTED: This is
770	// the initial state immediately after you submit a request.
771	//
772	// * PENDING: AWS Cloud
773	// Map is performing the operation.
774	//
775	// * SUCCESS: The operation succeeded.
776	//
777	// * FAIL:
778	// The operation failed. For the failure reason, see ErrorMessage.
779	Status OperationStatus
780}
781
782// A complex type that contains information about the specified service.
783type Service struct {
784
785	// The Amazon Resource Name (ARN) that AWS Cloud Map assigns to the service when
786	// you create it.
787	Arn *string
788
789	// The date and time that the service was created, in Unix format and Coordinated
790	// Universal Time (UTC). The value of CreateDate is accurate to milliseconds. For
791	// example, the value 1516925490.087 represents Friday, January 26, 2018
792	// 12:11:30.087 AM.
793	CreateDate *time.Time
794
795	// A unique string that identifies the request and that allows failed requests to
796	// be retried without the risk of executing the operation twice. CreatorRequestId
797	// can be any unique string, for example, a date/time stamp.
798	CreatorRequestId *string
799
800	// The description of the service.
801	Description *string
802
803	// A complex type that contains information about the Route 53 DNS records that you
804	// want AWS Cloud Map to create when you register an instance.
805	DnsConfig *DnsConfig
806
807	// Public DNS and HTTP namespaces only. A complex type that contains settings for
808	// an optional health check. If you specify settings for a health check, AWS Cloud
809	// Map associates the health check with the records that you specify in DnsConfig.
810	// For information about the charges for health checks, see Amazon Route 53 Pricing
811	// (http://aws.amazon.com/route53/pricing/).
812	HealthCheckConfig *HealthCheckConfig
813
814	// A complex type that contains information about an optional custom health check.
815	// If you specify a health check configuration, you can specify either
816	// HealthCheckCustomConfig or HealthCheckConfig but not both.
817	HealthCheckCustomConfig *HealthCheckCustomConfig
818
819	// The ID that AWS Cloud Map assigned to the service when you created it.
820	Id *string
821
822	// The number of instances that are currently associated with the service.
823	// Instances that were previously associated with the service but that have been
824	// deleted are not included in the count. The count might not reflect pending
825	// registrations and deregistrations.
826	InstanceCount *int32
827
828	// The name of the service.
829	Name *string
830
831	// The ID of the namespace that was used to create the service.
832	NamespaceId *string
833
834	// Describes the systems that can be used to discover the service instances.
835	// DNS_HTTP The service instances can be discovered using either DNS queries or the
836	// DiscoverInstances API operation. HTTP The service instances can only be
837	// discovered using the DiscoverInstances API operation. DNS Reserved.
838	Type ServiceType
839}
840
841// A complex type that contains changes to an existing service.
842type ServiceChange struct {
843
844	// A description for the service.
845	Description *string
846
847	// A complex type that contains information about the Route 53 DNS records that you
848	// want AWS Cloud Map to create when you register an instance.
849	DnsConfig *DnsConfigChange
850
851	// Public DNS and HTTP namespaces only. A complex type that contains settings for
852	// an optional health check. If you specify settings for a health check, AWS Cloud
853	// Map associates the health check with the records that you specify in DnsConfig.
854	// If you specify a health check configuration, you can specify either
855	// HealthCheckCustomConfig or HealthCheckConfig but not both. Health checks are
856	// basic Route 53 health checks that monitor an AWS endpoint. For information about
857	// pricing for health checks, see Amazon Route 53 Pricing
858	// (http://aws.amazon.com/route53/pricing/). Note the following about configuring
859	// health checks. A and AAAA records If DnsConfig includes configurations for both
860	// A and AAAA records, AWS Cloud Map creates a health check that uses the IPv4
861	// address to check the health of the resource. If the endpoint that is specified
862	// by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records
863	// to be unhealthy. CNAME records You can't specify settings for HealthCheckConfig
864	// when the DNSConfig includes CNAME for the value of Type. If you do, the
865	// CreateService request will fail with an InvalidInput error. Request interval A
866	// Route 53 health checker in each health-checking region sends a health check
867	// request to an endpoint every 30 seconds. On average, your endpoint receives a
868	// health check request about every two seconds. However, health checkers don't
869	// coordinate with one another, so you'll sometimes see several requests per second
870	// followed by a few seconds with no health checks at all. Health checking regions
871	// Health checkers perform checks from all Route 53 health-checking regions. For a
872	// list of the current regions, see Regions
873	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions).
874	// Alias records When you register an instance, if you include the
875	// AWS_ALIAS_DNS_NAME attribute, AWS Cloud Map creates a Route 53 alias record.
876	// Note the following:
877	//
878	// * Route 53 automatically sets EvaluateTargetHealth to true
879	// for alias records. When EvaluateTargetHealth is true, the alias record inherits
880	// the health of the referenced AWS resource. such as an ELB load balancer. For
881	// more information, see EvaluateTargetHealth
882	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth).
883	//
884	// *
885	// If you include HealthCheckConfig and then use the service to register an
886	// instance that creates an alias record, Route 53 doesn't create the health
887	// check.
888	//
889	// Charges for health checks Health checks are basic Route 53 health checks
890	// that monitor an AWS endpoint. For information about pricing for health checks,
891	// see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
892	HealthCheckConfig *HealthCheckConfig
893}
894
895// A complex type that lets you specify the namespaces that you want to list
896// services for.
897type ServiceFilter struct {
898
899	// Specify NAMESPACE_ID.
900	//
901	// This member is required.
902	Name ServiceFilterName
903
904	// The values that are applicable to the value that you specify for Condition to
905	// filter the list of services.
906	//
907	// This member is required.
908	Values []string
909
910	// The operator that you want to use to determine whether a service is returned by
911	// ListServices. Valid values for Condition include the following:
912	//
913	// * EQ: When you
914	// specify EQ, specify one namespace ID for Values. EQ is the default condition and
915	// can be omitted.
916	//
917	// * IN: When you specify IN, specify a list of the IDs for the
918	// namespaces that you want ListServices to return a list of services for.
919	//
920	// *
921	// BETWEEN: Not applicable.
922	Condition FilterCondition
923}
924
925// A complex type that contains information about a specified service.
926type ServiceSummary struct {
927
928	// The Amazon Resource Name (ARN) that AWS Cloud Map assigns to the service when
929	// you create it.
930	Arn *string
931
932	// The date and time that the service was created.
933	CreateDate *time.Time
934
935	// The description that you specify when you create the service.
936	Description *string
937
938	// A complex type that contains information about the Amazon Route 53 DNS records
939	// that you want AWS Cloud Map to create when you register an instance.
940	DnsConfig *DnsConfig
941
942	// Public DNS and HTTP namespaces only. A complex type that contains settings for
943	// an optional health check. If you specify settings for a health check, AWS Cloud
944	// Map associates the health check with the records that you specify in DnsConfig.
945	// If you specify a health check configuration, you can specify either
946	// HealthCheckCustomConfig or HealthCheckConfig but not both. Health checks are
947	// basic Route 53 health checks that monitor an AWS endpoint. For information about
948	// pricing for health checks, see Amazon Route 53 Pricing
949	// (http://aws.amazon.com/route53/pricing/). Note the following about configuring
950	// health checks. A and AAAA records If DnsConfig includes configurations for both
951	// A and AAAA records, AWS Cloud Map creates a health check that uses the IPv4
952	// address to check the health of the resource. If the endpoint that is specified
953	// by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records
954	// to be unhealthy. CNAME records You can't specify settings for HealthCheckConfig
955	// when the DNSConfig includes CNAME for the value of Type. If you do, the
956	// CreateService request will fail with an InvalidInput error. Request interval A
957	// Route 53 health checker in each health-checking region sends a health check
958	// request to an endpoint every 30 seconds. On average, your endpoint receives a
959	// health check request about every two seconds. However, health checkers don't
960	// coordinate with one another, so you'll sometimes see several requests per second
961	// followed by a few seconds with no health checks at all. Health checking regions
962	// Health checkers perform checks from all Route 53 health-checking regions. For a
963	// list of the current regions, see Regions
964	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions).
965	// Alias records When you register an instance, if you include the
966	// AWS_ALIAS_DNS_NAME attribute, AWS Cloud Map creates a Route 53 alias record.
967	// Note the following:
968	//
969	// * Route 53 automatically sets EvaluateTargetHealth to true
970	// for alias records. When EvaluateTargetHealth is true, the alias record inherits
971	// the health of the referenced AWS resource. such as an ELB load balancer. For
972	// more information, see EvaluateTargetHealth
973	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth).
974	//
975	// *
976	// If you include HealthCheckConfig and then use the service to register an
977	// instance that creates an alias record, Route 53 doesn't create the health
978	// check.
979	//
980	// Charges for health checks Health checks are basic Route 53 health checks
981	// that monitor an AWS endpoint. For information about pricing for health checks,
982	// see Amazon Route 53 Pricing (http://aws.amazon.com/route53/pricing/).
983	HealthCheckConfig *HealthCheckConfig
984
985	// A complex type that contains information about an optional custom health check.
986	// A custom health check, which requires that you use a third-party health checker
987	// to evaluate the health of your resources, is useful in the following
988	// circumstances:
989	//
990	// * You can't use a health check that is defined by
991	// HealthCheckConfig because the resource isn't available over the internet. For
992	// example, you can use a custom health check when the instance is in an Amazon
993	// VPC. (To check the health of resources in a VPC, the health checker must also be
994	// in the VPC.)
995	//
996	// * You want to use a third-party health checker regardless of where
997	// your resources are.
998	//
999	// If you specify a health check configuration, you can
1000	// specify either HealthCheckCustomConfig or HealthCheckConfig but not both. To
1001	// change the status of a custom health check, submit an
1002	// UpdateInstanceCustomHealthStatus request. AWS Cloud Map doesn't monitor the
1003	// status of the resource, it just keeps a record of the status specified in the
1004	// most recent UpdateInstanceCustomHealthStatus request. Here's how custom health
1005	// checks work:
1006	//
1007	// * You create a service and specify a value for FailureThreshold.
1008	// The failure threshold indicates the number of 30-second intervals you want AWS
1009	// Cloud Map to wait between the time that your application sends an
1010	// UpdateInstanceCustomHealthStatus
1011	// (https://docs.aws.amazon.com/cloud-map/latest/api/API_UpdateInstanceCustomHealthStatus.html)
1012	// request and the time that AWS Cloud Map stops routing internet traffic to the
1013	// corresponding resource.
1014	//
1015	// * You register an instance.
1016	//
1017	// * You configure a
1018	// third-party health checker to monitor the resource that is associated with the
1019	// new instance. AWS Cloud Map doesn't check the health of the resource
1020	// directly.
1021	//
1022	// * The third-party health-checker determines that the resource is
1023	// unhealthy and notifies your application.
1024	//
1025	// * Your application submits an
1026	// UpdateInstanceCustomHealthStatus request.
1027	//
1028	// * AWS Cloud Map waits for
1029	// (FailureThreshold x 30) seconds.
1030	//
1031	// * If another UpdateInstanceCustomHealthStatus
1032	// request doesn't arrive during that time to change the status back to healthy,
1033	// AWS Cloud Map stops routing traffic to the resource.
1034	HealthCheckCustomConfig *HealthCheckCustomConfig
1035
1036	// The ID that AWS Cloud Map assigned to the service when you created it.
1037	Id *string
1038
1039	// The number of instances that are currently associated with the service.
1040	// Instances that were previously associated with the service but that have been
1041	// deleted are not included in the count. The count might not reflect pending
1042	// registrations and deregistrations.
1043	InstanceCount *int32
1044
1045	// The name of the service.
1046	Name *string
1047
1048	// Describes the systems that can be used to discover the service instances.
1049	// DNS_HTTP The service instances can be discovered using either DNS queries or the
1050	// DiscoverInstances API operation. HTTP The service instances can only be
1051	// discovered using the DiscoverInstances API operation. DNS Reserved.
1052	Type ServiceType
1053}
1054
1055// A custom key-value pair associated with a resource.
1056type Tag struct {
1057
1058	// The key identifier, or name, of the tag.
1059	//
1060	// This member is required.
1061	Key *string
1062
1063	// The string value associated with the key of the tag. You can set the value of a
1064	// tag to an empty string, but you can't set the value of a tag to null.
1065	//
1066	// This member is required.
1067	Value *string
1068}
1069