'Deletes a web, mobile, or API app, or one of the deployment slots.
Deletes a web, mobile, or API app, or one of the deployment slots.
:param resource_group_name: Name of the resource group to which the
resource belongs.
:type resource_group_name: str
:param name: Name of the app to delete.
:type name: str
:param slot: Name of the deployment slot to delete. By default, the
API deletes the production slot.
:type slot: str
:param delete_metrics: If true, web app metrics are also deleted
:type delete_metrics: bool
:param delete_empty_server_farm: Specify true if the App Service plan
will be empty after app deletion and you want to delete the empty App
Service plan. By default, the empty App Service plan is not deleted.
:type delete_empty_server_farm: bool
:param skip_dns_registration: If true, DNS registration is skipped
:type skip_dns_registration: bool
: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:`CloudError<msrestazure.azure_exceptions.CloudError>`'

def delete_slot(self, resource_group_name, name, slot, delete_metrics=None, delete_empty_server_farm=None, skip_dns_registration=None, custom_headers=None, raw=False, **operation_config):

    url = '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}'
    path_format_arguments = {'resourceGroupName': self._serialize.url('resource_group_name', resource_group_name, 'str', max_length=90, min_length=1, pattern='^[-\\w\\._\\(\\)]+[^\\.]$'), 'name': self._serialize.url('name', name, 'str'), 'slot': self._serialize.url('slot', slot, 'str'), 'subscriptionId': self._serialize.url('self.config.subscription_id', self.config.subscription_id, 'str')}
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {}
    if (delete_metrics is not None):
        query_parameters['deleteMetrics'] = self._serialize.query('delete_metrics', delete_metrics, 'bool')
    if (delete_empty_server_farm is not None):
        query_parameters['deleteEmptyServerFarm'] = self._serialize.query('delete_empty_server_farm', delete_empty_server_farm, 'bool')
    if (skip_dns_registration is not None):
        query_parameters['skipDnsRegistration'] = self._serialize.query('skip_dns_registration', skip_dns_registration, 'bool')
    query_parameters['api-version'] = self._serialize.query('self.api_version', self.api_version, 'str')
    header_parameters = {}
    header_parameters['Content-Type'] = 'application/json;    charset=utf-8'
    if self.config.generate_client_request_id:
        header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
    if custom_headers:
        header_parameters.update(custom_headers)
    if (self.config.accept_language is not None):
        header_parameters['accept-language'] = self._serialize.header('self.config.accept_language', self.config.accept_language, 'str')
    request = self._client.delete(url, query_parameters)
    response = self._client.send(request, header_parameters, **operation_config)
    if (response.status_code not in [200, 404]):
        exp = CloudError(response)
        exp.request_id = response.headers.get('x-ms-request-id')
        raise exp
    if raw:
        client_raw_response = ClientRawResponse(None, response)
        return client_raw_response
