import { Value } from '../../../cloudformation/Value';
/**
  An object that represents the health check policy for a virtual node’s listener.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html">the AWS Docs</a>
*/
export interface HealthCheckProps {
    /** <code>Path</code>  <a name="cfn-appmesh-virtualnode-healthcheck-path"></a>
  The destination path for the health check request. This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    path?: Value<string>;
    /** <code>UnhealthyThreshold</code>  <a name="cfn-appmesh-virtualnode-healthcheck-unhealthythreshold"></a>
  The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy.<br />
  
  Required: Yes<br />
  
  Minimum: <code>2</code><br />
  
  Maximum: <code>10</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    unhealthyThreshold: Value<number>;
    /** <code>Port</code>  <a name="cfn-appmesh-virtualnode-healthcheck-port"></a>
  The destination port for the health check request. This port must match the port defined in the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping">PortMapping</a> for the listener.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>65535</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    port?: Value<number>;
    /** <code>HealthyThreshold</code>  <a name="cfn-appmesh-virtualnode-healthcheck-healthythreshold"></a>
  The number of consecutive successful health checks that must occur before declaring listener healthy.<br />
  
  Required: Yes<br />
  
  Minimum: <code>2</code><br />
  
  Maximum: <code>10</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    healthyThreshold: Value<number>;
    /** <code>TimeoutMillis</code>  <a name="cfn-appmesh-virtualnode-healthcheck-timeoutmillis"></a>
  The amount of time to wait when receiving a response from the health check, in milliseconds.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    timeoutMillis: Value<number>;
    /** <code>Protocol</code>  <a name="cfn-appmesh-virtualnode-healthcheck-protocol"></a>
  The protocol for the health check request. If you specify <code>grpc</code>, then your service must conform to the <a href="https://github.com/grpc/grpc/blob/master/doc/health-checking.md">GRPC Health Checking Protocol</a>.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>grpc | http | http2 | tcp</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    protocol: Value<'grpc' | 'http' | 'http2' | 'tcp'>;
    /** <code>IntervalMillis</code>  <a name="cfn-appmesh-virtualnode-healthcheck-intervalmillis"></a>
  The time period in milliseconds between each health check execution.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    intervalMillis: Value<number>;
}
