Private/New-CustomAzResourceGroup.ps1

function Global:New-CustomAzResourceGroup {
    [CmdletBinding()]
    param(        
        [Parameter(Mandatory = $true, Position = 0)]
        [string]
        $ResourceGroupName,        
        [Parameter(Mandatory = $true, Position = 1)]
        [string]
        $ResourceLocation,
        [Parameter(Mandatory = $true, Position = 1)]
        [bool]
        $CreateIfNotExisting
    )
    process {
        Write-CustomHost -Message "Checking if Resource Group already exists..."
        $resourceGroup = Get-AzResourceGroup -Name $resourceGroupName -Location $resourceLocation -ErrorAction SilentlyContinue
        if (-not($resourceGroup)) {
            if ($CreateIfNotExisting) {
                $resourceGroup = New-AzResourceGroup -Name $ResourceGroupName -Location $ResourceLocation
            }
            else {
                Write-Error "Resource Group '$resourceGroupName' does not exist."
            }
        }
        $resourceGroup
    }    
}