function Get-TeamCityHostnames { <# .SYNOPSIS Returns an array of hostnames of the TeamCity server and agent instances .PARAMETER Type Type of TeamCity host(s) to return: All, Server(s), or Agent(s) #> [CmdletBinding()] [OutputType([string[]])] param( [Parameter(Mandatory = $false)] [ValidateSet("All", "Server", "Agent")] [string]$Type = "All", [Parameter(Mandatory = $false)] [string]$ProfileName ) $logLead = Get-LogLeadName # Because I don't feel like using SharedVariables (yet) if (Test-StringIsNullOrWhitespace -Value $ProfileName) { $TeamCityHosts = @{ All = @("team316179.fh.local", "tea316155.fh.local", "tea31697.fh.local", "tea316229.fh.local", "tea316208.fh.local", "tea46658.fh.local", "tea37021.fh.local", "tea370104.fh.local", "tea37168.fh.local", "tea37079.fh.local", "tea370181.fh.local", "tea370219.fh.local", "tea37020.fh.local", "tea370123.fh.local") Server = @("team316179.fh.local", "tea37020.fh.local", "tea370123.fh.local") Agent = @("tea316155.fh.local", "tea31697.fh.local", "tea316229.fh.local", "tea316208.fh.local", "tea46658.fh.local", "tea37021.fh.local", "tea370104.fh.local", "tea37168.fh.local", "tea37079.fh.local", "tea370181.fh.local", "tea370219.fh.local") } Write-Host "$logLead : Returning TeamCity Hosts of type - $Type - From all AWS Accounts" } elseif ($ProfileName -eq "temp-prod") { $TeamCityHosts = @{ All = @("team316179.fh.local", "tea316155.fh.local", "tea31697.fh.local", "tea316229.fh.local", "tea316208.fh.local", "tea46658.fh.local") Server = @("team316179.fh.local") Agent = @("tea316155.fh.local", "tea31697.fh.local", "tea316229.fh.local", "tea316208.fh.local", "tea46658.fh.local") } Write-Host "$logLead : Returning TeamCity Hosts of type - $Type - From the AWS Production Account" } elseif ($ProfileName -eq "temp-mgmt") { $TeamCityHosts = @{ All = @("tea37021.fh.local", "tea370104.fh.local", "tea37168.fh.local", "tea37079.fh.local", "tea370181.fh.local", "tea370219.fh.local", "tea37020.fh.local", "tea370123.fh.local") Server = @("tea37020.fh.local", "tea370123.fh.local") Agent = @("tea37021.fh.local", "tea370104.fh.local", "tea37168.fh.local", "tea37079.fh.local", "tea370181.fh.local", "tea370219.fh.local") } Write-Host "$logLead : Returning TeamCity Hosts of type - $Type - From the AWS Management Account" } else { Write-Warning "ProfileName does not fall under the criteria of temp-prod or temp-mgmt, exiting function..." return } $hostnamesToReturn = $TeamCityHosts[$Type] return $hostnamesToReturn }