function ConvertTo-AwsCredentialEntry { <# .SYNOPSIS Used to convert AWS credentials parsed from file to a standard / friendly format .DESCRIPTION Used to convert AWS credentials parsed from file to a standard / friendly format .PARAMETER CredentialData Credential data read from file by Get-AwsCredentialConfiguration .LINK Get-AwsCredentialConfiguration #> [CmdletBinding()] param ( [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)] [System.Collections.ArrayList]$CredentialData ) begin { $logLead = Get-LogLeadName $defaultTypeName = 'AwsCredentialEntry' $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 { $entryArray = @() foreach ($entry in $CredentialData) { try { $entry.PSObject.TypeNames.Insert(0, $defaultTypeName) Add-Member -MemberType MemberSet -Name PSStandardMembers -Value $PSStandardMembers -InputObject $entry $entryArray += $entry } catch { Write-Warning "$logLead : Could not convert item to AwsCredentialEntry object. Exception: $($_.Exception.Message)" } } return $entryArray } }