I'm trying to provision the following API Management via ARM, with the following template (note specifically the apiVersion date of 2016-07-07). This results in the error:
Invalid parameter: Value cannot be null.\r\nParameter name: skuproperties
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"apimSettings": {
"type": "object",
"defaultValue": {
"sku": "Developer",
"skuCount": "1",
"publisherName": "",
"publisherEmail": ""
}
}
},
"variables": {
"apiManagementServiceName": "[concat('apim', uniqueString(resourceGroup().id))]"
},
"resources": [{
"apiVersion": "2016-07-07",
"name": "[variables('apiManagementServiceName')]",
"type": "Microsoft.ApiManagement/service",
"location": "[resourceGroup().location]",
"properties": {
"sku": {
"name": "[parameters('apimSettings').sku]",
"capacity": "[parameters('apimSettings').skuCount]"
},
"publisherEmail": "[parameters('apimSettings').publisherEmail]",
"publisherName": "[parameters('apimSettings').publisherName]"
}
}],
"outputs": {
"apimUri" : {
"type": "object",
"value": "[reference(variables('apiManagementServiceName'))]"
}
}
}
The schema for that version of API Management doesn't show 'skuProperties'. Note, the deployment works if I use the old version 2014-02-14. I also noted that the deployment template schema refers to the newer API Management schema.
Clearly it wants "skuproperties" but how would I know what to provide there?