function New-PackageMetadataObject { <# .SYNOPSIS Creates a (mostly) empty metadata object. Utilized by Classify-Packages. .PARAMETER ServerFilter Limits the deployment to a specific list of servers. .PARAMETER ServersString List of servers. #> [CmdletBinding()] param( $ServerFilter, $ServersString ) $packageMetadata = New-Object psobject -property @{ WebPackagesToInstall = @() AppPackagesToInstall = @() MicPackagesToInstall = @() WebPackagesToUninstall = @() AppPackagesToUninstall = @() MicPackagesToUninstall = @() AwsSettings = @{ } HasWebInstalls = $false HasAppInstalls = $false HasMicInstalls = $false HasWebUninstalls = $false HasAppUninstalls = $false HasMicUninstalls = $false ServerFilter = @() ServerFilterRaw = $ServerFilter OriginalServerList = @() OriginalServerListRaw = $ServersString Servers = @() ServersToQuery = @() WebServers = @() AppServers = @() MicServers = @() FabServers = @() HasWebServers = $false HasAppServers = $false HasMicServers = $false HasFabServers = $false SelectedFabServer = "" HasBadPackages = $false BadWebPackagesToUninstall = @() BadAppPackagesToUninstall = @() BadMicPackagesToUninstall = @() BadFabPackagesToUninstall = @() EnvironmentLabel = "" EnvironmentName = "" EnvironmentNameSafeDesignation = "" EnvironmentHosting = "" EnvironmentType = "" InstalledOrbVersion = "" IsDisasterRecovery = "" ForceReinstallPackages = "" InstallToAppsAndMics = "" PackageToVersions = @{ } IsRollingDeploy = $false DisableMicroserviceNewRelic = $false PackageToServers = @{} MigrationOnlyPackages = @() IsEclairInstalledOnAllHosts = $false EclairInstallData = @() } return $packageMetadata }