'Gets the health of a Service Fabric cluster.
Gets the health of a Service Fabric cluster.
Use EventsHealthStateFilter to filter the collection of health events
reported on the cluster based on the health state.
Similarly, use NodesHealthStateFilter and
ApplicationsHealthStateFilter to filter the collection of nodes and
applications returned based on their aggregated health state.
:param nodes_health_state_filter: Allows filtering of the node health
state objects returned in the result of cluster health query
based on their health state. The possible values for this parameter
include integer value of one of the
following health states. Only nodes that match the filter are
returned. All nodes are used to evaluate the aggregated health state.
If not specified, all entries are returned.
The state values are flag based enumeration, so the value could be a
combination of these values obtained using bitwise \'OR\' operator.
For example, if the provided value is 6 then health state of nodes
with HealthState value of OK (2) and Warning (4) are returned.
- Default - Default value. Matches any HealthState. The value is
zero.
- None - Filter that doesnât match any HealthState value. Used in
order to return no results on a given collection of states. The
value is 1.
- Ok - Filter that matches input with HealthState value Ok. The value
is 2.
- Warning - Filter that matches input with HealthState value Warning.
The value is 4.
- Error - Filter that matches input with HealthState value Error. The
value is 8.
- All - Filter that matches input with any HealthState value. The
value is 65535.
:type nodes_health_state_filter: int
:param applications_health_state_filter: Allows filtering of the
application health state objects returned in the result of cluster
health
query based on their health state.
The possible values for this parameter include integer value obtained
from members or bitwise operations
on members of HealthStateFilter enumeration. Only applications that
match the filter are returned.
All applications are used to evaluate the aggregated health state. If
not specified, all entries are returned.
The state values are flag based enumeration, so the value could be a
combination of these values obtained using bitwise \'OR\' operator.
For example, if the provided value is 6 then health state of
applications with HealthState value of OK (2) and Warning (4) are
returned.
- Default - Default value. Matches any HealthState. The value is
zero.
- None - Filter that doesnât match any HealthState value. Used in
order to return no results on a given collection of states. The
value is 1.
- Ok - Filter that matches input with HealthState value Ok. The value
is 2.
- Warning - Filter that matches input with HealthState value Warning.
The value is 4.
- Error - Filter that matches input with HealthState value Error. The
value is 8.
- All - Filter that matches input with any HealthState value. The
value is 65535.
:type applications_health_state_filter: int
:param events_health_state_filter: Allows filtering the collection of
HealthEvent objects returned based on health state.
The possible values for this parameter include integer value of one
of the following health states.
Only events that match the filter are returned. All events are used
to evaluate the aggregated health state.
If not specified, all entries are returned. The state values are flag
based enumeration, so the value could be a combination of these
value obtained using bitwise \'OR\' operator. For example, If the
provided value is 6 then all of the events with HealthState value of
OK (2) and Warning (4) are returned.
- Default - Default value. Matches any HealthState. The value is
zero.
- None - Filter that doesnât match any HealthState value. Used in
order to return no results on a given collection of states. The
value is 1.
- Ok - Filter that matches input with HealthState value Ok. The value
is 2.
- Warning - Filter that matches input with HealthState value Warning.
The value is 4.
- Error - Filter that matches input with HealthState value Error. The
value is 8.
- All - Filter that matches input with any HealthState value. The
value is 65535.
:type events_health_state_filter: int
:param timeout: The server timeout for performing the operation in
seconds. This specifies the time duration that the client is willing
to wait for the requested operation to complete. The default value
for this parameter is 60 seconds.
:type timeout: long
:param dict custom_headers: headers that will be added to the request
:param bool raw: returns the direct response alongside the
deserialized response
:param operation_config: :ref:`Operation configuration
overrides<msrest:optionsforoperations>`.
:rtype: :class:`ClusterHealth
<azure.servicefabric.models.ClusterHealth>`
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`FabricErrorException<azure.servicefabric.models.FabricErrorException>`'

def get_cluster_health(self, nodes_health_state_filter=0, applications_health_state_filter=0, events_health_state_filter=0, timeout=60, custom_headers=None, raw=False, **operation_config):

    api_version = '3.0'
    url = '/$/GetClusterHealth'
    query_parameters = {}
    query_parameters['api-version'] = self._serialize.query('api_version', api_version, 'str')
    if (nodes_health_state_filter is not None):
        query_parameters['NodesHealthStateFilter'] = self._serialize.query('nodes_health_state_filter', nodes_health_state_filter, 'int')
    if (applications_health_state_filter is not None):
        query_parameters['ApplicationsHealthStateFilter'] = self._serialize.query('applications_health_state_filter', applications_health_state_filter, 'int')
    if (events_health_state_filter is not None):
        query_parameters['EventsHealthStateFilter'] = self._serialize.query('events_health_state_filter', events_health_state_filter, 'int')
    if (timeout is not None):
        query_parameters['timeout'] = self._serialize.query('timeout', timeout, 'long', maximum=4294967295, minimum=1)
    header_parameters = {}
    header_parameters['Content-Type'] = 'application/json;    charset=utf-8'
    if custom_headers:
        header_parameters.update(custom_headers)
    request = self._client.get(url, query_parameters)
    response = self._client.send(request, header_parameters, **operation_config)
    if (response.status_code not in [200]):
        raise models.FabricErrorException(self._deserialize, response)
    deserialized = None
    if (response.status_code == 200):
        deserialized = self._deserialize('ClusterHealth', response)
    if raw:
        client_raw_response = ClientRawResponse(deserialized, response)
        return client_raw_response
    return deserialized
