Private/Test-Parameters.ps1
# Will be called in VM function Global:Test-Parameters { [CmdletBinding()] <# .SYNOPSIS ... .DESCRIPTION ... #> param( [Parameter(Mandatory = $true)] [string] $KeyVaultName, [Parameter(Mandatory = $true)] [string] $StorageAccountName ) process { # Check KeyVault Write-CustomHost -Message "Checking if KeyVault name is still available..." $StatusCode = $null $uri = "https://$($KeyVaultName).vault.azure.net" try { $response = invoke-WebRequest -Uri $Uri -ErrorAction Stop $StatusCode = $Response.StatusCode } catch [System.Net.WebException] { $StatusCode = $_.Exception.Response.StatusCode.value__ } if ($null -ne $StatusCode){ throw "KeyVaultName $KeyVaultName is already in use." } # Check StorageAccount Write-CustomHost -Message "Checking if StorageAccount name is still available..." $StatusCode = $null $uri = "https://$($StorageAccountName).blob.core.windows.net/" try { $response = invoke-WebRequest -Uri $Uri -ErrorAction Stop $StatusCode = $Response.StatusCode } catch [System.Net.WebException] { $StatusCode = $_.Exception.Response.StatusCode.value__ } if ($null -ne $StatusCode){ throw "StorageAccount name $StorageAccountName is already in use." } } } |