The general idea is that services that have an abstraction use a namespace in the form of `Fog::Service::Provider`. Those that do not have a generalized abstraction take the form of `Fog::Provider::Service`. I believe this was done to provide a less evasive upgrade path for end users as well as make them aware of the state of abstraction. This unfortunately seems to be tribal knowledge.