package awsservicediscovery


// 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. AWS 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.
//
// > AWS 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.
// - AWS Cloud Map waits for 30 seconds.
// - If another `UpdateInstanceCustomHealthStatus` request doesn't arrive during that time to change the status back to healthy, AWS Cloud Map stops routing traffic to the resource.
//
// Example:
//   // The code below shows an example of how to instantiate this type.
//   // The values are placeholders you should change.
//   import "github.com/aws/aws-cdk-go/awscdk"
//
//   healthCheckCustomConfigProperty := &HealthCheckCustomConfigProperty{
//   	FailureThreshold: jsii.Number(123),
//   }
//
// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckcustomconfig.html
//
type CfnService_HealthCheckCustomConfigProperty struct {
	// > This parameter is no longer supported and is always set to 1.
	//
	// AWS 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 AWS 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. AWS Cloud Map still waits `30` seconds after the first request to make the change.
	// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-healthcheckcustomconfig.html#cfn-servicediscovery-service-healthcheckcustomconfig-failurethreshold
	//
	FailureThreshold *float64 `field:"optional" json:"failureThreshold" yaml:"failureThreshold"`
}

