Apache Libcloud looks interesting

libcloud has been around for quite some time now. Several modules in ansible use it (The Google Compute Engine modules).

For a unified API it is pretty nice, but it often lacks full functionality for the APIs usually due to maintaining consistence between providers.

Yep.

Our policy is to use the native bindings for a particular provider whenever available to expose the maximum number of knobs and switches.

libcloud works when something else better doesn’t exist in Python, or if that’s the primary way the community around that particular provider does things.