I have been trying to find a way to discover Azure RM API resource properties programmatically using PowerShell or something similar. There does not even seem to be official documentation of all of the properties and their possible values.
Example:
The ARM resource Microsoft.Compute/virtualMachineScaleSets has properties such as upgradePolicy with possible values of Manual and Automatic. It also has a property called overProvision which is a boolean.
I've used the Azure Resource Explorer web tool to try to reverse-engineer some properties, however it doesn't describe what they do or their possible values. It only tells you what some of the properties are currently set to. But these properties do not necessarily match those which can be PUT to the API.
I've used the Azure Quickstart Templates to try to discover most of the properties on commonly used resources, however again this is like a vague kind of reverse engineering and not anything close to real documentation.