public/LoadBalancing/Get-AWSWindowsHelpersLBDetailFromLBArn.ps1

<#
.Synopsis
   Returns the details of the load balancer as separate properties from a supplied ARN
.DESCRIPTION
   Returns the details of the load balancer as separate properties from a supplied ARN
.EXAMPLE
   Get-AWSWindowsHelpersLBDetailFromLBArn -awsLBARN "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/load-balancer-name/139d65287f94335F"
.INPUTS
   awsCertARN - ARN of the AWS load balancer
.OUTPUTS
   Returns a object with the following properties
   AWSRegion - AWS Region
   AWSAccountID - AWS account number
   LoadBalancerType - Value of "Application" or "Classic" is returned
   LoadBalancerName - Name of the load balancer
   LoadBalancerGUID - Unique ID of the load balancer (Application load balancers only)
.FUNCTIONALITY
   Retrieves from a AWS load balancer ARN the details about the load balancer as defined in the Output section above. Load balancer type is determined by
   presence of the "/app/" string in the ARN.
#>

Function Get-AWSWindowsHelpersLBDetailFromLBArn
{
    Param(
        [Parameter(Mandatory=$true)]
        $awsLBARN      
    )
    $result = $awsLBARN -Match 'arn:aws:elasticloadbalancing:(?<AWSRegion>\w{0,}\-\w{0,}\-\d{0,}):(?<AWSAccountID>\d{12}):loadbalancer\/(?<LoadBalancerType>app)?\/?(?<LoadBalancerName>[a-zA-Z0-9\-]{1,32})\/?(?<LoadBalancerGUID>\S{1,})?'
    if($result)
    {
        $loadbalancerType = $Matches.LoadBalancerType
        if($loadbalancerType -eq 'app')
        {
            $Matches.LoadBalancerType = 'Application'
        }
        else
        {
            $Matches.LoadBalancerType = 'Classic'
        }
        Return $Matches
    }
    Return $null
}