/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ServiceDiscovery { namespace 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:

*

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:

  1. You * create a service.

  2. You register an instance.

  3. *

    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.

  4. The third-party * health-checker determines that the resource is unhealthy and notifies your * application.

  5. Your application submits an * UpdateInstanceCustomHealthStatus request.

  6. Cloud * Map waits for 30 seconds.

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

See Also:

AWS * API Reference

*/ class HealthCheckCustomConfig { public: AWS_SERVICEDISCOVERY_API HealthCheckCustomConfig(); AWS_SERVICEDISCOVERY_API HealthCheckCustomConfig(Aws::Utils::Json::JsonView jsonValue); AWS_SERVICEDISCOVERY_API HealthCheckCustomConfig& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SERVICEDISCOVERY_API Aws::Utils::Json::JsonValue Jsonize() const; }; } // namespace Model } // namespace ServiceDiscovery } // namespace Aws