/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.servicediscovery.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS * API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class RegisterInstanceRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The ID of the service that you want to use for settings for the instance. *

*/ private String serviceId; /** *

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

* * *

* Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS * queries and any Type member of DnsRecord for the service contains SRV * because the InstanceId is discoverable by public DNS queries. *

*
*/ private String instanceId; /** *

* 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). *

*/ private String creatorRequestId; /** *

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

* * *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

* *
*
AWS_EC2_INSTANCE_ID
*
*

* HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the AWS_EC2_INSTANCE_ID * attribute is specified, then the only other attribute that can be specified is * AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the * AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 * characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided * attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
*
*/ private java.util.Map attributes; /** *

* The ID of the service that you want to use for settings for the instance. *

* * @param serviceId * The ID of the service that you want to use for settings for the instance. */ public void setServiceId(String serviceId) { this.serviceId = serviceId; } /** *

* The ID of the service that you want to use for settings for the instance. *

* * @return The ID of the service that you want to use for settings for the instance. */ public String getServiceId() { return this.serviceId; } /** *

* The ID of the service that you want to use for settings for the instance. *

* * @param serviceId * The ID of the service that you want to use for settings for the instance. * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterInstanceRequest withServiceId(String serviceId) { setServiceId(serviceId); return this; } /** *

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

* * *

* Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS * queries and any Type member of DnsRecord for the service contains SRV * because the InstanceId is discoverable by public DNS queries. *

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

* * *

* Do not include sensitive information in InstanceId if the namespace is discoverable by public * DNS queries and any Type member of DnsRecord for the service contains * SRV because the InstanceId is discoverable by public DNS queries. *

*/ public void setInstanceId(String instanceId) { this.instanceId = instanceId; } /** *

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

* * *

* Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS * queries and any Type member of DnsRecord for the service contains SRV * because the InstanceId is discoverable by public DNS queries. *

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

* * *

* Do not include sensitive information in InstanceId if the namespace is discoverable by * public DNS queries and any Type member of DnsRecord for the service contains * SRV because the InstanceId is discoverable by public DNS queries. *

*/ public String getInstanceId() { return this.instanceId; } /** *

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

*
    *
  • *

    * If the service that's 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's unique among instances that you register by using the * same service. *

    *
  • *
  • *

    * If you specify an existing InstanceId and ServiceId, Cloud Map updates the existing DNS * records, if any. If there's also an existing health check, 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. *

    *
  • *
* *

* Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS * queries and any Type member of DnsRecord for the service contains SRV * because the InstanceId is discoverable by public DNS queries. *

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

*
    *
  • *

    * If the service that's 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's unique among instances that you register by * using the same service. *

    *
  • *
  • *

    * If you specify an existing InstanceId and ServiceId, Cloud Map updates the * existing DNS records, if any. If there's also an existing health check, 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. *

    *
  • *
* *

* Do not include sensitive information in InstanceId if the namespace is discoverable by public * DNS queries and any Type member of DnsRecord for the service contains * SRV because the InstanceId is discoverable by public DNS queries. *

* @return Returns a reference to this object so that method calls can be chained together. */ public RegisterInstanceRequest withInstanceId(String instanceId) { setInstanceId(instanceId); 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). *

* * @param 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). */ public void setCreatorRequestId(String creatorRequestId) { this.creatorRequestId = 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). *

* * @return 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). */ public String getCreatorRequestId() { return this.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). *

* * @param 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). * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterInstanceRequest withCreatorRequestId(String creatorRequestId) { setCreatorRequestId(creatorRequestId); 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. *

    *
  • *
* *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

*
    *
  • *

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

    *
  • *
  • *

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

    *
  • *
  • *

    * If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud * Map will create the Route 53 health check, but it doesn't associate the health check with the alias record. *

    *
  • *
  • *

    * Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources * other than Elastic Load Balancing 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. If the AWS_EC2_INSTANCE_ID * attribute is specified, then the only other attribute that can be specified is * AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the * AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 * characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided * attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
*
* * @return 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. *

    *
  • *
* *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS * queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

*
    *
  • *

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

    *
  • *
  • *

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

    *
  • *
  • *

    * If the service that's specified by ServiceId includes HealthCheckConfig * settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with * the alias record. *

    *
  • *
  • *

    * Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services * resources other than Elastic Load Balancing 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. If the * AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be * specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is * specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private * IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name * is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of * all provided attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
*/ public java.util.Map getAttributes() { return 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. *

    *
  • *
* *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

*
    *
  • *

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

    *
  • *
  • *

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

    *
  • *
  • *

    * If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud * Map will create the Route 53 health check, but it doesn't associate the health check with the alias record. *

    *
  • *
  • *

    * Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources * other than Elastic Load Balancing 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. If the AWS_EC2_INSTANCE_ID * attribute is specified, then the only other attribute that can be specified is * AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the * AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 * characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided * attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
*
* * @param 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. *

    *
  • *
* *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS * queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

*
    *
  • *

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

    *
  • *
  • *

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

    *
  • *
  • *

    * If the service that's specified by ServiceId includes HealthCheckConfig * settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with * the alias record. *

    *
  • *
  • *

    * Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services * resources other than Elastic Load Balancing 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. If the * AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be * specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is * specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private * IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name * is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of * all provided attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
*/ public void setAttributes(java.util.Map attributes) { this.attributes = 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. *

    *
  • *
* *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

*
    *
  • *

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

    *
  • *
  • *

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

    *
  • *
  • *

    * If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud * Map will create the Route 53 health check, but it doesn't associate the health check with the alias record. *

    *
  • *
  • *

    * Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources * other than Elastic Load Balancing 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. If the AWS_EC2_INSTANCE_ID * attribute is specified, then the only other attribute that can be specified is * AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the * AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 * characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided * attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
*
* * @param 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. *

    *
  • *
* *

* Do not include sensitive information in the attributes if the namespace is discoverable by public DNS * queries. *

*
*

* Supported attribute keys include the following: *

*
*
AWS_ALIAS_DNS_NAME
*
*

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

*

* Note the following: *

*
    *
  • *

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

    *
  • *
  • *

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

    *
  • *
  • *

    * If the service that's specified by ServiceId includes HealthCheckConfig * settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with * the alias record. *

    *
  • *
  • *

    * Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services * resources other than Elastic Load Balancing 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. If the * AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be * specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is * specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private * IPv4 address. *

*
*
AWS_INIT_HEALTH_STATUS
*
*

* If the service configuration includes HealthCheckCustomConfig, you can optionally use * AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, * HEALTHY or UNHEALTHY. If you don't specify a value for * AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY. *

*
*
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. *

*
*
Custom attributes
*
*

* You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name * is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of * all provided attributes (sum of all keys and values) must not exceed 5,000 characters. *

*
* @return Returns a reference to this object so that method calls can be chained together. */ public RegisterInstanceRequest withAttributes(java.util.Map attributes) { setAttributes(attributes); return this; } /** * Add a single Attributes entry * * @see RegisterInstanceRequest#withAttributes * @returns a reference to this object so that method calls can be chained together. */ public RegisterInstanceRequest addAttributesEntry(String key, String value) { if (null == this.attributes) { this.attributes = new java.util.HashMap(); } if (this.attributes.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.attributes.put(key, value); return this; } /** * Removes all the entries added into Attributes. * * @return Returns a reference to this object so that method calls can be chained together. */ public RegisterInstanceRequest clearAttributesEntries() { this.attributes = null; return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getServiceId() != null) sb.append("ServiceId: ").append(getServiceId()).append(","); if (getInstanceId() != null) sb.append("InstanceId: ").append(getInstanceId()).append(","); if (getCreatorRequestId() != null) sb.append("CreatorRequestId: ").append(getCreatorRequestId()).append(","); if (getAttributes() != null) sb.append("Attributes: ").append(getAttributes()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof RegisterInstanceRequest == false) return false; RegisterInstanceRequest other = (RegisterInstanceRequest) obj; if (other.getServiceId() == null ^ this.getServiceId() == null) return false; if (other.getServiceId() != null && other.getServiceId().equals(this.getServiceId()) == false) return false; if (other.getInstanceId() == null ^ this.getInstanceId() == null) return false; if (other.getInstanceId() != null && other.getInstanceId().equals(this.getInstanceId()) == false) return false; if (other.getCreatorRequestId() == null ^ this.getCreatorRequestId() == null) return false; if (other.getCreatorRequestId() != null && other.getCreatorRequestId().equals(this.getCreatorRequestId()) == false) return false; if (other.getAttributes() == null ^ this.getAttributes() == null) return false; if (other.getAttributes() != null && other.getAttributes().equals(this.getAttributes()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getServiceId() == null) ? 0 : getServiceId().hashCode()); hashCode = prime * hashCode + ((getInstanceId() == null) ? 0 : getInstanceId().hashCode()); hashCode = prime * hashCode + ((getCreatorRequestId() == null) ? 0 : getCreatorRequestId().hashCode()); hashCode = prime * hashCode + ((getAttributes() == null) ? 0 : getAttributes().hashCode()); return hashCode; } @Override public RegisterInstanceRequest clone() { return (RegisterInstanceRequest) super.clone(); } }