/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ServiceDiscovery { namespace Model { /** *

A complex type that contains information about an instance that AWS Cloud Map * creates when you submit a RegisterInstance request.

See * Also:

AWS * API Reference

*/ class AWS_SERVICEDISCOVERY_API Instance { public: Instance(); Instance(Aws::Utils::Json::JsonView jsonValue); Instance& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline Instance& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline Instance& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

An identifier that you want to associate with the instance. Note the * following:

  • If the service that is specified by * ServiceId includes settings for an SRV record, the * value of InstanceId is automatically included as part of the value * for the SRV record. For more information, see DnsRecord * > Type.

  • You can use this value to update an existing * instance.

  • To register a new instance, you must specify a value * that is unique among instances that you register by using the same service.

    *
  • If you specify an existing InstanceId and * ServiceId, AWS Cloud Map updates the existing DNS records. If * there's also an existing health check, AWS Cloud Map deletes the old health * check and creates a new one.

    The health check isn't deleted * immediately, so it will still appear for a while if you submit a * ListHealthChecks request, for example.

*/ inline Instance& WithId(const char* value) { SetId(value); return *this;} /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline const Aws::String& GetCreatorRequestId() const{ return m_creatorRequestId; } /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline bool CreatorRequestIdHasBeenSet() const { return m_creatorRequestIdHasBeenSet; } /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline void SetCreatorRequestId(const Aws::String& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = value; } /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline void SetCreatorRequestId(Aws::String&& value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId = std::move(value); } /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline void SetCreatorRequestId(const char* value) { m_creatorRequestIdHasBeenSet = true; m_creatorRequestId.assign(value); } /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline Instance& WithCreatorRequestId(const Aws::String& value) { SetCreatorRequestId(value); return *this;} /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline Instance& WithCreatorRequestId(Aws::String&& value) { SetCreatorRequestId(std::move(value)); return *this;} /** *

A unique string that identifies the request and that allows failed * RegisterInstance requests to be retried without the risk of * executing the operation twice. You must use a unique * CreatorRequestId string every time you submit a * RegisterInstance request if you're registering additional instances * for the same namespace and service. CreatorRequestId can be any * unique string, for example, a date/time stamp.

*/ inline Instance& WithCreatorRequestId(const char* value) { SetCreatorRequestId(value); return *this;} /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

A string map that contains the following information for the service that you * specify in ServiceId:

  • The attributes that apply to * the records that are defined in the service.

  • For each * attribute, the applicable value.

Supported attribute keys * include the following:

AWS_ALIAS_DNS_NAME

*

If you want AWS Cloud Map to create a Route 53 alias record that routes * traffic to an Elastic Load Balancing load balancer, specify the DNS name that is * associated with the load balancer. For information about how to get the DNS * name, see "DNSName" in the topic AliasTarget.

*

Note the following:

  • The configuration for the service that * is specified by ServiceId must include settings for an * A record, an AAAA record, or both.

  • *

    In the service that is specified by ServiceId, the value of * RoutingPolicy must be WEIGHTED.

  • If * the service that is specified by ServiceId includes * HealthCheckConfig settings, AWS Cloud Map will create the health * check, but it won't associate the health check with the alias record.

  • *
  • Auto naming currently doesn't support creating alias records that route * traffic to AWS resources other than ELB load balancers.

  • If you * specify a value for AWS_ALIAS_DNS_NAME, don't specify values for * any of the AWS_INSTANCE attributes.

* AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 * instance ID for the instance. The AWS_INSTANCE_IPV4 attribute * contains the primary private IPv4 address.

AWS_INSTANCE_CNAME *

If the service configuration includes a CNAME record, the * domain name that you want Route 53 to return in response to DNS queries, for * example, example.com.

This value is required if the service * specified by ServiceId includes settings for an CNAME * record.

AWS_INSTANCE_IPV4

If the service configuration * includes an A record, the IPv4 address that you want Route 53 to * return in response to DNS queries, for example, 192.0.2.44.

*

This value is required if the service specified by ServiceId * includes settings for an A record. If the service includes settings * for an SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_IPV6

If the service configuration includes an * AAAA record, the IPv6 address that you want Route 53 to return in * response to DNS queries, for example, * 2001:0db8:85a3:0000:0000:abcd:0001:2345.

This value is * required if the service specified by ServiceId includes settings * for an AAAA record. If the service includes settings for an * SRV record, you must specify a value for * AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

* AWS_INSTANCE_PORT

If the service includes an SRV * record, the value that you want Route 53 to return for the port.

If the * service includes HealthCheckConfig, the port on the endpoint that * you want Route 53 to send requests to.

This value is required if you * specified settings for an SRV record or a Route 53 health check * when you created the service.

*/ inline Instance& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } private: Aws::String m_id; bool m_idHasBeenSet; Aws::String m_creatorRequestId; bool m_creatorRequestIdHasBeenSet; Aws::Map m_attributes; bool m_attributesHasBeenSet; }; } // namespace Model } // namespace ServiceDiscovery } // namespace Aws