'Check the current :ref:`cluster health <es-guide-reference-api-admin-cluster-health>`.
Request Parameters
The cluster health API accepts the following request parameters:
:param level: Can be one of cluster, indices or shards. Controls the
details level of the health information returned.
Defaults to *cluster*.
:param wait_for_status: One of green, yellow or red. Will wait (until
the timeout provided) until the status of the
cluster changes to the one provided.
By default, will not wait for any status.
:param wait_for_relocating_shards: A number controlling to how many
relocating shards to wait for.
Usually will be 0 to indicate to
wait till all relocation have
happened. Defaults to not to wait.
:param timeout: A time based parameter controlling how long to wait
if one of the wait_for_XXX are provided.
Defaults to 30s.'

def health(self, indices=None, level='cluster', wait_for_status=None, wait_for_relocating_shards=None, timeout=30):

    if indices:
        path = make_path('_cluster', 'health', ','.join(indices))
    else:
        path = make_path('_cluster', 'health')
    mapping = {}
    if (level != 'cluster'):
        if (level not in ['cluster', 'indices', 'shards']):
            raise ValueError(('Invalid    level:    %s' % level))
        mapping['level'] = level
    if wait_for_status:
        if (wait_for_status not in ['green', 'yellow', 'red']):
            raise ValueError(('Invalid    wait_for_status:    %s' % wait_for_status))
        mapping['wait_for_status'] = wait_for_status
        mapping['timeout'] = ('%ds' % timeout)
    return self.conn._send_request('GET', path, params=mapping)
