I've found an issue in the VNET peering template that breaks the deployment script. The script defines the template parameter "fortiGateNamePrefix" but the ARM template is expecting "fortigateNamePrefix". Simply changing the case of the letter "g" fixes this.
Enter location (e.g. eastus2): australiasoutheast
--> Deployment in 'australiasoutheast' location ...
Enter prefix: lojmelb
--> Using prefix 'lojmelb' for all resources ...
Enter username: loj
--> Using username 'loj' ...
Enter password:
--> Creating lojmelb-RG resource group ...
{
"id": "/subscriptions/75de9f41-d4c2-4597-bbe3-c69fe62f9528/resourceGroups/lojmelb-RG",
"location": "australiasoutheast",
"managedBy": null,
"name": "lojmelb-RG",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
--> Validation deployment in lojmelb-RG resource group ...
unrecognized template parameter 'fortiGateNamePrefix'. Allowed parameters: acceleratedNetworking, adminPassword, adminUsername, fortigateImageSKU, fortigateImageVersion, fortigateNamePrefix, fortinetTags, instanceType, location, publicIP2Name, publicIP2NewOrExisting, publicIP2ResourceGroup, publicIP3Name, publicIP3NewOrExisting, publicIP3ResourceGroup, publicIPName, publicIPNewOrExisting, publicIPResourceGroup, subnet1Name, subnet1Prefix, subnet1Spoke1Name, subnet1Spoke1Prefix, subnet1Spoke2Name, subnet1Spoke2Prefix, subnet2Name, subnet2Prefix, subnet3Name,subnet3Prefix, subnet4Name, subnet4Prefix, subnet5Name, subnet5Prefix, subnet6Name, subnet6Prefix, vnetAddressPrefix, vnetAddressPrefixSpoke1, vnetAddressPrefixSpoke2, vnetName, vnetNameSpoke1, vnetNameSpoke2, vnetNewOrExisting, vnetNewOrExistingSpoke1, vnetNewOrExistingSpoke2, vnetResourceGroup, vnetResourceGroupSpoke1, vnetResourceGroupSpoke2
--> Validation failed ...