Guiding customers to modern defaults
As services develop and evolve, they gather various switches to enable the "modern" behavior.
For example:
resource workerFunctionSite 'Microsoft.Web/sites@2021-01-15' = {
kind: 'functionapp'
}
or
resource storageacc 'Microsoft.Storage/storageAccounts@2021-04-01' = {
kind: 'StorageV2'
}
Portal can automatically default these switches to their latest value or hide them in some other way. These create an extra barrier for entry for customers getting started with IaC as they need to discover correct values and carry them forever.
One possible solution to this is analyzers that would point to modern defaults, another, pointed out by @anthony-c-martin, is a module registry where defaults would be encapsulated in modules.
We can likely do a lot of these with new linter rules, but it would also be interesting to see if any of this can be expressed in the RP swaggers, so that RPs have control over this type of behavior.
Also would be cool if external user's can contribute to this "knowledge base"