/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the servicediscovery-2017-03-14.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.ServiceDiscovery.Model
{
///
/// A complex type that contains information about an instance that Cloud Map creates
/// when you submit a RegisterInstance request.
///
public partial class Instance
{
private Dictionary _attributes = new Dictionary();
private string _creatorRequestId;
private string _id;
///
/// Gets and sets the property 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 a 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 AliasTarget->DNSName
/// 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 creates 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
/// Amazon Web Services 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_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.
///
///
///
public Dictionary Attributes
{
get { return this._attributes; }
set { this._attributes = value; }
}
// Check to see if Attributes property is set
internal bool IsSetAttributes()
{
return this._attributes != null && this._attributes.Count > 0;
}
///
/// Gets and sets the property 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).
///
///
[AWSProperty(Max=64)]
public string CreatorRequestId
{
get { return this._creatorRequestId; }
set { this._creatorRequestId = value; }
}
// Check to see if CreatorRequestId property is set
internal bool IsSetCreatorRequestId()
{
return this._creatorRequestId != null;
}
///
/// Gets and sets the property Id.
///
/// 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 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.
///
///
///
[AWSProperty(Required=true, Max=64)]
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
}
}