'Deletes an existing Service Fabric service.
Deletes an existing Service Fabric service. A service must be created
before it can be deleted. By default Service Fabric will try to close
service replicas in a graceful manner and then delete the service.
However if service is having issues closing the replica gracefully,
the delete operation may take a long time or get stuck. Use the
optional ForceRemove flag to skip the graceful close sequence and
forcefully delete the service.
: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 force_remove: Remove a Service Fabric application or service
forcefully without going through the graceful shutdown sequence.
This parameter can be used to forcefully delete an application or
service for which delete is timing out due to issues in the service
code that prevents graceful close of replicas.
:type force_remove: bool
: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 delete_service(self, service_id, force_remove=None, timeout=60, custom_headers=None, raw=False, **operation_config):

    api_version = '3.0'
    url = '/Services/{serviceId}/$/Delete'
    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 (force_remove is not None):
        query_parameters['ForceRemove'] = self._serialize.query('force_remove', force_remove, 'bool')
    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.post(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)
    if raw:
        client_raw_response = ClientRawResponse(None, response)
        return client_raw_response
