/*
* 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;
}
}
}