'Deletes a deployment from the deployment history.
A template deployment that is currently running cannot be deleted.
Deleting a template deployment removes the associated deployment
operations. Deleting a template deployment does not affect the state of
the resource group. This is an asynchronous operation that returns a
status of 202 until the template deployment is successfully deleted.
The Location response header contains the URI that is used to obtain
the status of the process. While the process is running, a call to the
URI in the Location header returns a status of 202. When the process
finishes, the URI in the Location header returns a status of 204 on
success. If the asynchronous request failed, the URI in the Location
header returns an error-level status code.
:param resource_group_name: The name of the resource group with the
deployment to delete. The name is case insensitive.
:type resource_group_name: str
:param deployment_name: The name of the deployment to delete.
:type deployment_name: str
:param dict custom_headers: headers that will be added to the request
:param bool raw: returns the direct response alongside the
deserialized response
:rtype:
:class:`AzureOperationPoller<msrestazure.azure_operation.AzureOperationPoller>`
instance that returns None
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises: :class:`CloudError<msrestazure.azure_exceptions.CloudError>`'

def delete(self, resource_group_name, deployment_name, custom_headers=None, raw=False, **operation_config):

    url = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}'
    path_format_arguments = {'resourceGroupName': self._serialize.url('resource_group_name', resource_group_name, 'str', max_length=90, min_length=1, pattern='^[-\\w\\._\\(\\)]+$'), 'deploymentName': self._serialize.url('deployment_name', deployment_name, 'str', max_length=64, min_length=1, pattern='^[-\\w\\._\\(\\)]+$'), 'subscriptionId': self._serialize.url('self.config.subscription_id', self.config.subscription_id, 'str')}
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {}
    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')
    def long_running_send():
        request = self._client.delete(url, query_parameters)
        return self._client.send(request, header_parameters, **operation_config)
    def get_long_running_status(status_link, headers=None):
        request = self._client.get(status_link)
        if headers:
            request.headers.update(headers)
        return self._client.send(request, header_parameters, **operation_config)
    def get_long_running_output(response):
        if (response.status_code not in [202, 204]):
            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
    if raw:
        response = long_running_send()
        return get_long_running_output(response)
    long_running_operation_timeout = operation_config.get('long_running_operation_timeout', self.config.long_running_operation_timeout)
    return AzureOperationPoller(long_running_send, get_long_running_output, get_long_running_status, long_running_operation_timeout)
