this is great, but I would argue the biggest issue with infrastructure as code is this:

the structure and syntax for AWS is entirely different from Azure is entirely different from GCP.

Instead of abstracting to CSS, I would argue modeling what Bytecode did in java for multi-operating system, we should do for infrastructure of code.

That way, you could easily replicate in different environments, free yourself from vendor lock, and have readability/re-usability all in one.

This is what I want from infrastructure as code and I have yet to see it.

This is what Multy (https://github.com/multycloud/multy) aims to do