/*
* 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
{
///
/// Public DNS and HTTP namespaces only. A complex type that contains settings
/// for an optional health check. If you specify settings for a health check, Cloud Map
/// associates the health check with the records that you specify in DnsConfig
.
///
///
///
/// If you specify a health check configuration, you can specify either HealthCheckCustomConfig
/// or HealthCheckConfig
but not both.
///
///
///
/// Health checks are basic Route 53 health checks that monitor an Amazon Web Services
/// endpoint. For information about pricing for health checks, see Amazon
/// Route 53 Pricing.
///
///
///
/// Note the following about configuring health checks.
///
/// - A and AAAA records
-
///
/// If
DnsConfig
includes configurations for both A
and AAAA
/// records, Cloud Map creates a health check that uses the IPv4 address to check the
/// health of the resource. If the endpoint tthat's specified by the IPv4 address is unhealthy,
/// Route 53 considers both the A
and AAAA
records to be unhealthy.
///
///
/// - CNAME records
-
///
/// You can't specify settings for
HealthCheckConfig
when the DNSConfig
/// includes CNAME
for the value of Type
. If you do, the CreateService
/// request will fail with an InvalidInput
error.
///
/// - Request interval
-
///
/// A Route 53 health checker in each health-checking Amazon Web Services Region sends
/// a health check request to an endpoint every 30 seconds. On average, your endpoint
/// receives a health check request about every two seconds. However, health checkers
/// don't coordinate with one another. Therefore, you might sometimes see several requests
/// in one second that's followed by a few seconds with no health checks at all.
///
///
- Health checking regions
-
///
/// Health checkers perform checks from all Route 53 health-checking Regions. For a list
/// of the current Regions, see Regions.
///
///
- Alias records
-
///
/// When you register an instance, if you include the
AWS_ALIAS_DNS_NAME
/// attribute, Cloud Map creates a Route 53 alias record. Note the following:
///
/// -
///
/// Route 53 automatically sets
EvaluateTargetHealth
to true for alias records.
/// When EvaluateTargetHealth
is true, the alias record inherits the health
/// of the referenced Amazon Web Services resource. such as an ELB load balancer. For
/// more information, see EvaluateTargetHealth.
///
/// -
///
/// If you include
HealthCheckConfig
and then use the service to register
/// an instance that creates an alias record, Route 53 doesn't create the health check.
///
///
- Charges for health checks
-
///
/// Health checks are basic Route 53 health checks that monitor an Amazon Web Services
/// endpoint. For information about pricing for health checks, see Amazon
/// Route 53 Pricing.
///
///
///
public partial class HealthCheckConfig
{
private int? _failureThreshold;
private string _resourcePath;
private HealthCheckType _type;
///
/// Gets and sets the property FailureThreshold.
///
/// The number of consecutive health checks that an endpoint must pass or fail for Route 53
/// to change the current status of the endpoint from unhealthy to healthy or the other
/// way around. For more information, see How
/// Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer
/// Guide.
///
///
[AWSProperty(Min=1, Max=10)]
public int FailureThreshold
{
get { return this._failureThreshold.GetValueOrDefault(); }
set { this._failureThreshold = value; }
}
// Check to see if FailureThreshold property is set
internal bool IsSetFailureThreshold()
{
return this._failureThreshold.HasValue;
}
///
/// Gets and sets the property ResourcePath.
///
/// The path that you want Route 53 to request when performing health checks. The path
/// can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format
/// for when the endpoint is healthy. An example file is /docs/route53-health-check.html
.
/// Route 53 automatically adds the DNS name for the service. If you don't specify a value
/// for ResourcePath
, the default value is /
.
///
///
///
/// If you specify TCP
for Type
, you must not specify
/// a value for ResourcePath
.
///
///
[AWSProperty(Max=255)]
public string ResourcePath
{
get { return this._resourcePath; }
set { this._resourcePath = value; }
}
// Check to see if ResourcePath property is set
internal bool IsSetResourcePath()
{
return this._resourcePath != null;
}
///
/// Gets and sets the property Type.
///
/// The type of health check that you want to create, which indicates how Route 53 determines
/// whether an endpoint is healthy.
///
///
///
/// You can't change the value of Type
after you create a health check.
///
///
///
/// You can create the following types of health checks:
///
/// -
///
/// HTTP: Route 53 tries to establish a TCP connection. If successful, Route 53
/// submits an HTTP request and waits for an HTTP status code of 200 or greater and less
/// than 400.
///
///
-
///
/// HTTPS: Route 53 tries to establish a TCP connection. If successful, Route 53
/// submits an HTTPS request and waits for an HTTP status code of 200 or greater and less
/// than 400.
///
///
///
/// If you specify HTTPS for the value of
Type
, the endpoint must support
/// TLS v1.0 or later.
///
/// -
///
/// TCP: Route 53 tries to establish a TCP connection.
///
///
///
/// If you specify
TCP
for Type
, don't specify a value for ResourcePath
.
///
///
///
/// For more information, see How
/// Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer
/// Guide.
///
///
[AWSProperty(Required=true)]
public HealthCheckType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}