function ConvertTo-AWSCredentialEntry { <# .SYNOPSIS Makes some neatly queryable AWSCredential entries .PARAMETER CredentialEntry Dynamic credential data #> param ( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] [System.Collections.Hashtable[]]$CredentialEntry ) begin { $logLead = (Get-LogLeadName) $defaultTypeName = 'AWSCredentialEntry' $defaultKeys = @('Profile') $defaultDisplaySet = @('Profile','aws_access_key_id','toolkit_artifact_guid','region','output') $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 $CredentialEntry) { try { $properties = @{} foreach ($key in $entry.Keys) { $properties[$key.Replace(' ','')] = $entry.$key } $credential = New-Object PSCustomObject -Property $properties $credential.PSObject.TypeNames.Insert(0,$defaultTypeName) $credential | Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $PSStandardMembers $return += $credential } catch { Write-Warning "$logLead : Could not convert item to AWSCredentialEntry object. Check error below." Write-ErrorObject -ErrorItem $PSItem } } return $return } }