function ConvertTo-AWSConfigEntry { <# .SYNOPSIS Makes some neatly queryable AWSConfig entries .PARAMETER AWSConfigEntry Dynamic config data #> param ( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] [System.Collections.Hashtable[]]$ConfigEntry ) begin { $logLead = (Get-LogLeadName) $defaultTypeName = 'AWSConfigEntry' $defaultKeys = @('Name') $defaultDisplaySet = @('Name','role_arn','mfa_serial','region','source_profile') $defaultDisplayPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultDisplayPropertySet',[string[]]$defaultDisplaySet) $defaultKeyPropertySet = New-Object System.Management.Automation.PSPropertySet('DefaultKeyPropertySet',[string[]]$defaultKeys) $PSStandardMembers = [System.Management.Automation.PSMemberInfo[]]@($defaultDisplayPropertySet,$defaultKeyPropertySet) } process { $return = @() foreach ($entry in $ConfigEntry) { try { $properties = @{} foreach ($key in $entry.Keys) { $properties[$key.Replace(' ','')] = $entry.$key } $config = New-Object PSCustomObject -Property $properties $config.PSObject.TypeNames.Insert(0,$defaultTypeName) $config | Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $PSStandardMembers $return += $config } catch { Write-Warning "$logLead : Could not convert item to AWSConfigEntry object. Check error below." Write-ErrorObject -ErrorItem $PSItem } } return $return } }