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