code: def detach_usb_device(self, id_p, done):
          
          if not isinstance(id_p, basestring):
              raise TypeError("id_p can only be an instance of type basestring")
          if not isinstance(done, bool):
              raise TypeError("done can only be an instance of type bool")
          self._call("detachUSBDevice",
                       in_p=[id_p, done])
docs: Notification that a VM is going to detach (@a done = @c false) or has
          already detached (@a done = @c true) the given USB device.
          When the @a done = @c true request is completed, the VM process will
          get a :py:func:`IInternalSessionControl.on_usb_device_detach` 
          notification.
          
          In the @a done = @c true case, the server must run its own filters
          and filters of all VMs but this one on the detached device
          as if it were just attached to the host computer.
  
          in id_p of type str
  
          in done of type bool