'Sends a health report on the Service Fabric replica.
Reports health state of the specified Service Fabric replica. The
report must contain the information about the source of the health
report and property on which it is reported.
The report is sent to a Service Fabric gateway Replica, which forwards
to the health store.
The report may be accepted by the gateway, but rejected by the health
store after extra validation.
For example, the health store may reject the report because of an
invalid parameter, like a stale sequence number.
To see whether the report was applied in the health store, run
GetReplicaHealth and check that the report appears in the
HealthEvents section.
:param partition_id: The identity of the partition.
:type partition_id: str
:param replica_id: The identifier of the replica.
:type replica_id: str
:param service_kind: The kind of service replica (Stateless or
Stateful) for which the health is being reported. Following are the
possible values.
- Stateless - Does not use Service Fabric to make its state highly
available or reliable. The value is 1
- Stateful - Uses Service Fabric to make its state or part of its
state highly available and reliable. The value is 2.
. Possible values include: \'Stateless\', \'Stateful\'
:type service_kind: str
:param health_information: Describes the health information for the
health report. This information needs to be present in all of the
health reports sent to the health manager.
:type health_information: :class:`HealthInformation
<azure.servicefabric.models.HealthInformation>`
: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: None
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`FabricErrorException<azure.servicefabric.models.FabricErrorException>`'

def report_replica_health(self, partition_id, replica_id, health_information, service_kind='Stateful', timeout=60, custom_headers=None, raw=False, **operation_config):

    api_version = '3.0'
    url = '/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/ReportHealth'
    path_format_arguments = {'partitionId': self._serialize.url('partition_id', partition_id, 'str', skip_quote=True), 'replicaId': self._serialize.url('replica_id', replica_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')
    query_parameters['ServiceKind'] = self._serialize.query('service_kind', service_kind, 'str')
    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)
    body_content = self._serialize.body(health_information, 'HealthInformation')
    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)
    if raw:
        client_raw_response = ClientRawResponse(None, response)
        return client_raw_response
