This is something we’re thinking about, but would like to ensure that we’re providing a sufficiently robust set of capabilities within the template language syntax itself.
What scenarios are “overly complicated and hard to maintain”? This will help us understand where we need to invest.Jonathan Bedrava commented
One example of something that's probably more complicated than it ought to be is how Azure SQL server tiers are specified in an ARM template. You need to know a GUID representing the service objective tier, the edition name, and then the maxSize you specify must fall within the a compatible range. Another example might be that some of the naming is not uniform between the Azure portal and the ARM template language. E.g., "cloud services" are "domain names" and so on. Despite the Very few of the questions I've had about leveraging ARM templates have been answered by documentation
Moreover, the overall capabilities of the ARM templates are shrouded in mystery unless you want to dig into all the existing gallery templates. I can now add storage accounts, but can I add a storage queue to that account? I have no idea.