cache/AllAzureResources.init.cache.ps1
$MyFile= $MyInvocation.MyCommand.ScriptBlock.File $myName = $MyFile | Split-Path -Leaf $myName = $myName -replace '\.init\.cache\.ps1' $myRoot = $MyFile | Split-Path $MyOutputFile = Join-Path $myRoot "$myName.cache.json" $providers = az provider list -o json | ConvertFrom-Json if (-not $providers) { Write-Error "Could not list providers. You may not be logged in." return } $allResources =foreach ($provider in $providers) { $provider.psobject.properties.remove('ID') $provider.psobject.properties.remove('RegistrationState') $provider.psobject.properties.remove('Authorizations') foreach ($resourceInfo in $provider.resourceTypes) { $resourceInfo.ResourceType = "$($provider.namespace)/$($resourceInfo.ResourceType)" $resourceInfo } } $allResourcesByType = $allResources | Group-Object ResourceType -AsHashTable $allResourcesByType | ConvertTo-Json -Depth 20 | Set-Content $MyOutputFile |