'Gets the information about health of an application deployed on a
Service Fabric node. using the specified policy.
Gets the information about health of an application deployed on a
Service Fabric node using the specified policy. Use
EventsHealthStateFilter to optionally filter for the collection of
HealthEvent objects reported on the deployed application based on
health state. Use DeployedServicePackagesHealthStateFilter to
optionally filter for DeployedServicePackageHealth children based on
health state. Use ApplicationHealthPolicy to optionally override the
health policies used to evaluate the health. This API only uses
\'ConsiderWarningAsError\' field of the ApplicationHealthPolicy. The
rest of the fields are ignored while evaluating the health of the
deployed application.
:param node_name: The name of the node.
:type node_name: str
:param application_id: The identity of the application. This is
typically the full name of the application without the \'fabric:\' URI
scheme.
:type application_id: str
: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 deployed_service_packages_health_state_filter: Allows
filtering of the deployed service package health state objects
returned in the result of deployed application health query based on
their health state.
The possible values for this parameter include integer value of one
of the following health states.
Only deployed service packages that match the filter are returned.
All deployed service packages are used to evaluate the aggregated
health state of the deployed application.
If not specified, all entries are returned.
The state values are flag based enumeration, so the value can be a
combination of these value obtained using bitwise \'OR\' operator.
For example, if the provided value is 6 then health state of service
packages 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 deployed_service_packages_health_state_filter: int
:param application_health_policy: Describes the health policies used
to evaluate the health of an application or one of its children.
If not present, the health evaluation uses the health policy from
application manifest or the default health policy.
:type application_health_policy: :class:`ApplicationHealthPolicy
<azure.servicefabric.models.ApplicationHealthPolicy>`
: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:`DeployedApplicationHealth
<azure.servicefabric.models.DeployedApplicationHealth>`
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`FabricErrorException<azure.servicefabric.models.FabricErrorException>`'

def get_deployed_application_health_using_policy(self, node_name, application_id, events_health_state_filter=0, deployed_service_packages_health_state_filter=0, application_health_policy=None, timeout=60, custom_headers=None, raw=False, **operation_config):

    api_version = '3.0'
    url = '/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetHealth'
    path_format_arguments = {'nodeName': self._serialize.url('node_name', node_name, 'str'), 'applicationId': self._serialize.url('application_id', application_id, 'str', skip_quote=True)}
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {}
    query_parameters['api-version'] = self._serialize.query('api_version', api_version, 'str')
    if (events_health_state_filter is not None):
        query_parameters['EventsHealthStateFilter'] = self._serialize.query('events_health_state_filter', events_health_state_filter, 'int')
    if (deployed_service_packages_health_state_filter is not None):
        query_parameters['DeployedServicePackagesHealthStateFilter'] = self._serialize.query('deployed_service_packages_health_state_filter', deployed_service_packages_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)
    if (application_health_policy is not None):
        body_content = self._serialize.body(application_health_policy, 'ApplicationHealthPolicy')
    else:
        body_content = None
    request = self._client.post(url, query_parameters)
    response = self._client.send(request, header_parameters, body_content, **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('DeployedApplicationHealth', response)
    if raw:
        client_raw_response = ClientRawResponse(deserialized, response)
        return client_raw_response
    return deserialized
