'Updates the specified service using the given update description.
Updates the specified service using the given update description.
:param service_id: The identity of the service. This is typically the
full name of the service without the \'fabric:\' URI scheme.
:type service_id: str
:param service_update_description: The updated configuration for the
service.
:type service_update_description: :class:`ServiceUpdateDescription
<azure.servicefabric.models.ServiceUpdateDescription>`
: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 update_service(self, service_id, service_update_description, timeout=60, custom_headers=None, raw=False, **operation_config):

    api_version = '3.0'
    url = '/Services/{serviceId}/$/Update'
    path_format_arguments = {'serviceId': self._serialize.url('service_id', service_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(service_update_description, 'ServiceUpdateDescription')
    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
