property/Get-PropertyTemplates.ps1
function Get-PropertyTemplates { Param( [Parameter(Mandatory=$true)] [string] $PropertyId, [Parameter(Mandatory=$true)] [string] $PropertyVersion, [Parameter(Mandatory=$false)] [string] $GroupID, [Parameter(Mandatory=$false)] [string] $ContractId, [Parameter(Mandatory=$false)] [string] $EdgeRCFile = '~\.edgerc', [Parameter(Mandatory=$false)] [string] $Section = 'default', [Parameter(Mandatory=$false)] [string] $AccountSwitchKey ) $Rules = Get-PropertyRuleTree -PropertyId $PropertyId -PropertyVersion $PropertyVersion -GroupID $GroupId -ContractId $ContractId -EdgeRCFile $EdgeRCFile -Section $Section -AccountSwitchKey $AccountSwitchKey # Make Property Directory $OutputDir = ".\$($Rules.propertyName)" if(!(Test-Path $OutputDir)) { New-Item -Name $OutputDir -ItemType Directory | Out-Null } for($i = 0; $i -lt $Rules.rules.children.count; $i++) { $Child = $Rules.rules.children[$i] $SafeName = $Child.Name.Replace(" ","_") $Child | ConvertTo-Json -depth 100 | Out-File "$outputdir\$SafeName.json" -Force # Convert child to include statement for main.json $Rules.rules.children[$i] = "#include:$SafeName.json" } $main = New-Object -TypeName PSCustomObject $main | Add-Member -Name "rules" -MemberType NoteProperty -Value $Rules.rules $main | ConvertTo-Json -depth 100 | Out-File "$OutputDir\main.json" -Force } |