'Restarts a code package deployed on a Service Fabric node in a
cluster.
Restarts a code package deployed on a Service Fabric node in a
cluster. This aborts the code package process, which will restart all
the user service replicas hosted in that process.
: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 restart_deployed_code_package_description: Describes the
deployed code package on Service Fabric node to restart.
:type restart_deployed_code_package_description:
:class:`RestartDeployedCodePackageDescription
<azure.servicefabric.models.RestartDeployedCodePackageDescription>`
: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 restart_deployed_code_package(self, node_name, application_id, restart_deployed_code_package_description, timeout=60, custom_headers=None, raw=False, **operation_config):

    api_version = '3.0'
    url = '/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/Restart'
    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 (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(restart_deployed_code_package_description, 'RestartDeployedCodePackageDescription')
    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
