rules/Azure.Template.Rule.ps1
# # Validation rules for Azure template and parameter files # #region Template # Synopsis: Use ARM template file structure Rule 'Azure.Template.TemplateFile' -Type 'System.IO.FileInfo' -If { (IsTemplateFile) } -Tag @{ release = 'GA' } { $jsonObject = ReadJsonFile -Path $TargetObject.FullName $jsonObject | Exists '$schema', 'contentVersion', 'resources' -All $jsonObject.PSObject.Properties | Within 'Name' '$schema', 'contentVersion', 'metadata', 'parameters', 'functions', 'variables', 'resources', 'outputs' } #endregion Template #region Parameters # Synopsis: Use ARM parameter file structure Rule 'Azure.Template.ParameterFile' -Type 'System.IO.FileInfo' -If { (IsParameterFile) } -Tag @{ release = 'GA' } { $jsonObject = ReadJsonFile -Path $TargetObject.FullName $jsonObject | Exists '$schema', 'contentVersion', 'parameters' -All $jsonObject.PSObject.Properties | Within 'Name' '$schema', 'contentVersion', 'metadata', 'parameters' } #endregion Parameters |