code: func (r *DiskSubresource) Delete(l object.VirtualDeviceList) ([]types.BaseVirtualDeviceConfigSpec, error) {
  	log.Printf("[DEBUG] %s: Beginning delete", r)
  	disk, err := r.findVirtualDisk(l, false)
  	if err != nil {
  		return nil, fmt.Errorf("cannot find disk device: %s", err)
  	}
  	deleteSpec, err := object.VirtualDeviceList{disk}.ConfigSpec(types.VirtualDeviceConfigSpecOperationRemove)
  	if err != nil {
  		return nil, err
  	}
  	if len(deleteSpec) != 1 {
  		return nil, fmt.Errorf("incorrect number of config spec items returned - expected 1, got %d", len(deleteSpec))
  	}
  	if r.Get("keep_on_remove").(bool) || r.Get("attach").(bool) {
  		// Clear file operation so that the disk is kept on remove.
  		deleteSpec[0].GetVirtualDeviceConfigSpec().FileOperation = ""
  	}
  	log.Printf("[DEBUG] %s: Device config operations from update: %s", r, DeviceChangeString(deleteSpec))
  	log.Printf("[DEBUG] %s: Delete completed", r)
  	return deleteSpec, nil
  }
docs: // Delete deletes a vsphere_virtual_machine disk sub-resource.