functions/DesktopVirtualization/VMTemplates/Register-AVDMFVMTemplate.ps1

function Register-AVDMFVMTemplate {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true , ValueFromPipelineByPropertyName = $true )]
        [string] $ReferenceName,
        [Parameter(Mandatory = $true , ValueFromPipelineByPropertyName = $true )]
        [string] $AdminUsername,
        [Parameter(Mandatory = $true , ValueFromPipelineByPropertyName = $true )]
        [string] $VMSize,
        [Parameter(Mandatory = $true , ValueFromPipelineByPropertyName = $true )]
        [Object] $ImageReference,
        [Parameter(Mandatory = $true , ValueFromPipelineByPropertyName = $true )]
        [string] $WVDArtifactsURL
    )
    process {
        $script:VMTemplates[$ReferenceName] = @{
            AdminUserName   = $AdminUsername
            AdminPassword   = Get-RandomPassword
            VMSize          = $VMSize
            ImageReference  = $ImageReference | ConvertTo-PSFHashtable
            WVDArtifactsURL = $WVDArtifactsURL
        }
    }
}