code: def delete_work_item(self, id, project=None, destroy=None):
          
          route_values = {}
          if project is not None:
              route_values['project'] = self._serialize.url('project', project, 'str')
          if id is not None:
              route_values['id'] = self._serialize.url('id', id, 'int')
          query_parameters = {}
          if destroy is not None:
              query_parameters['destroy'] = self._serialize.query('destroy', destroy, 'bool')
          response = self._send(http_method='DELETE',
                                location_id='72c7ddf8-2cdc-4f60-90cd-ab71c14a399b',
                                version='5.1-preview.3',
                                route_values=route_values,
                                query_parameters=query_parameters)
          return self._deserialize('WorkItemDelete', response)
docs: DeleteWorkItem.
          [Preview API] Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution.
          :param int id: ID of the work item to be deleted
          :param str project: Project ID or project name
          :param bool destroy: Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone.
          :rtype: :class:`<WorkItemDelete> <azure.devops.v5_1.work-item-tracking.models.WorkItemDelete>`