def deprovision(self, instance_id: str, details: DeprovisionDetails, async_allowed: bool) -> DeprovisionServiceSpec:
        """Deprovision an instance
        
        see openbrokerapi documentation
        
        Raises:
            ErrInstanceDoesNotExist: Instance does not exist.
        """
        
        # Find the instance
        instance = self._backend.find(instance_id)
        if not instance.isProvisioned():
            # the instance does not exist
            raise ErrInstanceDoesNotExist()
        
        return self._backend.delete(instance)