Functions/Add-ARMparameter.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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
#Requires -Version 5.0 function Add-ARMparameter { <# .SYNOPSIS Add an ARM parameter to an ARM template. .DESCRIPTION Add an ARM parameter to an ARM template .PARAMETER InputObject The PSCustomObject of type 'ARMparameter' to be added to the ARM template. .PARAMETER Template The ARM template of type 'ARMtemplate' the parameter should be added to. If not specified, it will add the parameter to the module-level template .EXAMPLE $adminUser = New-ARMparameter -Name adminUsername -Type String Add-ARMparameter -InputObject $adminUser This will add the parameter adminUsername to the module level template .EXAMPLE New-ARMparameter -Name adminUsername -Type String | Add-ARMparameter -Template $myTemplate This will add the parameter adminUsername to the userdefined template $myTemplate .INPUTS PSCustomObject .OUTPUTS PSCustomObject .NOTES Author: Tore Groneng Website: www.firstpoint.no Twitter: @ToreGroneng #> [cmdletbinding()] Param( [Parameter(Mandatory, ValueFromPipeline)] [PSTypeName('ARMparameter')] $InputObject , [PSTypeName('ARMtemplate')] $Template , [switch] $PassThru ) Begin { $f = $MyInvocation.InvocationName Write-Verbose -Message "$f - START" } Process { Write-Verbose -Message "$f - Processing" if (-not $Template) { Write-Verbose -Message "$f - Using module level template" $Template = $script:Template } if ($Template) { Write-Verbose -Message "$f - Have a template" foreach ($prop in $InputObject.PSobject.Properties) { $value = $prop.Value Write-Verbose -Message "$f - Processing property $($prop.Name)" $Template.parameters | Add-Member -MemberType NoteProperty -Name $prop.Name -Value $value } } else { Write-Verbose -Message "$f - Template not found" } if ($PassThru.IsPresent) { $InputObject } } End { Write-Verbose -Message "$f - End" } } |