'Create an Http Health Check.
:param  name: Name of health check
:type   name: ``str``
:keyword  host: Hostname of health check request.  Defaults to empty
and public IP is used instead.
:type     host: ``str``
:keyword  path: The request path for the check.  Defaults to /.
:type     path: ``str``
:keyword  port: The TCP port number for the check.  Defaults to 80.
:type     port: ``int``
:keyword  interval: How often (in seconds) to check.  Defaults to 5.
:type     interval: ``int``
:keyword  timeout: How long to wait before failing. Defaults to 5.
:type     timeout: ``int``
:keyword  unhealthy_threshold: How many failures before marking
unhealthy.  Defaults to 2.
:type     unhealthy_threshold: ``int``
:keyword  healthy_threshold: How many successes before marking as
healthy.  Defaults to 2.
:type     healthy_threshold: ``int``
:keyword  description: The description of the check.  Defaults to None.
:type     description: ``str`` or ``None``
:return:  Health Check object
:rtype:   :class:`GCEHealthCheck`'

def ex_create_healthcheck(self, name, host=None, path=None, port=None, interval=None, timeout=None, unhealthy_threshold=None, healthy_threshold=None, description=None):

    hc_data = {}
    hc_data['name'] = name
    if host:
        hc_data['host'] = host
    if description:
        hc_data['description'] = description
    hc_data['requestPath'] = (path or '/')
    hc_data['port'] = (port or 80)
    hc_data['checkIntervalSec'] = (interval or 5)
    hc_data['timeoutSec'] = (timeout or 5)
    hc_data['unhealthyThreshold'] = (unhealthy_threshold or 2)
    hc_data['healthyThreshold'] = (healthy_threshold or 2)
    request = '/global/httpHealthChecks'
    self.connection.async_request(request, method='POST', data=hc_data)
    return self.ex_get_healthcheck(name)
