/*
* 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 optional custom health check. A
/// custom health check, which requires that you use a third-party health checker to evaluate
/// the health of your resources, is useful in the following circumstances:
///
/// -
///
/// You can't use a health check that's defined by
HealthCheckConfig
because
/// the resource isn't available over the internet. For example, you can use a custom
/// health check when the instance is in an Amazon VPC. (To check the health of resources
/// in a VPC, the health checker must also be in the VPC.)
///
/// -
///
/// You want to use a third-party health checker regardless of where your resources are
/// located.
///
///
///
/// If you specify a health check configuration, you can specify either HealthCheckCustomConfig
/// or HealthCheckConfig
but not both.
///
///
///
/// To change the status of a custom health check, submit an UpdateInstanceCustomHealthStatus
/// request. Cloud Map doesn't monitor the status of the resource, it just keeps a record
/// of the status specified in the most recent UpdateInstanceCustomHealthStatus
/// request.
///
///
///
/// Here's how custom health checks work:
///
/// -
///
/// You create a service.
///
///
-
///
/// You register an instance.
///
///
-
///
/// You configure a third-party health checker to monitor the resource that's associated
/// with the new instance.
///
///
///
/// Cloud Map doesn't check the health of the resource directly.
///
///
-
///
/// The third-party health-checker determines that the resource is unhealthy and notifies
/// your application.
///
///
-
///
/// Your application submits an
UpdateInstanceCustomHealthStatus
request.
///
/// -
///
/// Cloud Map waits for 30 seconds.
///
///
-
///
/// If another
UpdateInstanceCustomHealthStatus
request doesn't arrive during
/// that time to change the status back to healthy, Cloud Map stops routing traffic to
/// the resource.
///
///
///
public partial class HealthCheckCustomConfig
{
private int? _failureThreshold;
///
/// Gets and sets the property FailureThreshold.
///
/// This parameter is no longer supported and is always set to 1. Cloud Map waits for
/// approximately 30 seconds after receiving an UpdateInstanceCustomHealthStatus
/// request before changing the status of the service instance.
///
///
///
/// The number of 30-second intervals that you want Cloud Map to wait after receiving
/// an UpdateInstanceCustomHealthStatus
request before it changes the health
/// status of a service instance.
///
///
///
/// Sending a second or subsequent UpdateInstanceCustomHealthStatus
request
/// with the same value before 30 seconds has passed doesn't accelerate the change. Cloud
/// Map still waits 30
seconds after the first request to make the change.
///
///
[Obsolete("Configurable FailureThreshold of HealthCheckCustomConfig is deprecated. It will always have value 1.")]
[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;
}
}
}