Functions/Get-ARMtemplate.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#Requires -Version 5.0 function Get-ARMtemplate { <# .SYNOPSIS Get the ARM template defined at the module level .DESCRIPTION Get the ARM template defined at the module level .PARAMETER AsJSON Returns the ARM template as a JSON string .PARAMETER AsHashTableString Returns the ARM template as a Hashtable object .EXAMPLE Get-ARMtemplate | Get-ARMtempateScript .INPUTS PSCustomObject .OUTPUTS string .NOTES Author: Tore Groneng Website: www.firstpoint.no Twitter: @ToreGroneng #> [cmdletbinding( DefaultParameterSetName='foo' )] Param( [Parameter(ParameterSetName='JSON')] [switch]$AsJSON , [Parameter(ParameterSetName='HASH')] [switch]$AsHashTableString ) Begin { $f = $MyInvocation.InvocationName Write-Verbose -Message "$f - START" } Process { if ($AsJSON.IsPresent -eq $false -and $AsHashTableString.IsPresent -eq $false) { $Script:Template } if ($AsJSON.IsPresent) { $json = $Script:Template | ConvertTo-Json -Depth 99 $json = $json.replace("\u0027","'")#' $json } if ($AsHashTableString.IsPresent) { $Script:Template | ConvertTo-Hash | Out-HashString } } } |