TemplateDeployment/New-ArmTemplateDeployment.ps1

function New-ArmTemplateDeployment
{
    [CmdletBinding()]
    Param (
        [Parameter()]
        $InputFile,
        
        [Parameter()]
        $InputParamFile, 
        
        $ResourceGroupName, 
        
        $DeploymentName, 
        
        $Mode
    )
    
    Begin
    {
        if (!(Test-InternalArmConnection))
        {
            Write-Error "Please use Connect-ArmSubscription"
            break
        }
        $BaseUri = "https://management.azure.com/subscriptions/$($script:CurrentSubscriptionId)/resourcegroups"
        
    }
    
    Process
    {
        $Uri = "$BaseUri/$ResourceGroupName/providers/microsoft.resources/deployments/$DeploymentName"
        $Data = "" | Select template, parameters, mode
        $Data.template = get-content $InputFile | convertfrom-json
        $Data.parameters = get-content $InputParamFile | convertfrom-json | select -ExpandProperty Parameters
        $Data.mode = $Mode

        $Data2 = "" | select properties
        $Data2.properties = $Data
        
        $Result = Post-InternalRest -uri $Uri -Data $Data2 -method "Put" -apiversion "2016-02-01"

        #List current operations
        $ListOptsUri = "$Uri/operations"

        Do 
        {
            $StatusResult = Get-InternalRest -Uri $ListOptsUri -apiversion "2016-02-01"
        }
        until ($StatusResult.value.count -gt 0)
        
        $state = $statusResult[0].value.properties.provisioningstate
        $StatusCode = $statusResult[0].value.properties.provisioningstate
        
        
    }
    
    
}