Private/OutputCreatedResouces.ps1

function Write-CreatedResouces{
    [CmdletBinding()]
    param(
        [Parameter(Mandatory, ValueFromPipeline)][pscustomobject]$Payload
    )

    #Output resource group values
    $RG = $Payload.RGName
    $Location = $Payload.Location

    Write-Host "Provisioned resource group $RG in the $Location region"

    #Output virtual network values
    $VirtualNetwork = $Payload.VnetName
    $FirewallSubnetName = $Payload.FirewallSubnetName
    $JumboxSubnetName= $Payload.JumboxSubnetName
    $VirtualNetworkAddressPrefix = $Payload.VirtualNetworkAddressPrefix
    $FirewallAddressPrefix = $Payload.FirewallAddressPrefix
    $JumboxAddressPrefix = $Payload.JumboxAddressPrefix

    Write-Host "Provisioned virtual network $VirtualNetwork with address prefix $VirtualNetworkAddressPrefix"
    Write-Host "Provisioned virtual subnet $FirewallSubnetName with address prefix $FirewallAddressPrefix"
    Write-Host "Provisioned virtual subnet $JumboxSubnetName with address prefix $JumboxAddressPrefix"
    
    #Output jumpbox values
    $NICName = $Payload.NICName
    $VMName = $Payload.VMName
    $VMUsername = $Payload.Username

    Write-Host "Provisioned network interface client $NICName"
    Write-Host "Provisioned virtual machine $VMName with username $VMUsername"

    #Output firewall values
    $PipName = $Payload.LBPipName
    $PipAddress = $Payload.PipAddress
    $FirewallName = $Payload.FirewallName
    $RouteTableName = $Payload.RouteTableName
    $NATRuleName = $Payload.NATRuleName
    $NatRuleCollectionName = $Payload.NatRuleCollectionName


    Write-Host "Provisioned firewall $FirewallName with public IP address $PipName and address $PipAddress"
    Write-Host "Provisioned route table $RouteTableName"
    Write-Host "Provisioned NAT rule collection $NatRuleCollectionName with NAT rule $NATRuleName"

    #Output Log Analytics values
    $WorkspaceName = $Payload.WorkspaceName
    Write-Host "Provisioned Log Analytics workspace $WorkspaceName"

    [pscustomobject]$Payload
}

function Write-DeletedResouces{
    [CmdletBinding()]
    param(
        [Parameter(Mandatory, ValueFromPipeline)][pscustomobject]$Payload
    )

    $RG = $Payload.RGName

    Write-Host "Removed resource group $RG"
}