Add support for URL based volumes.

If the API looks ok, I will add it to the other API files.

thanks
--brendan
Moved this to be private, would rather save larger movements to a subsequent refactor.