46 lines
1.7 KiB
PowerShell
46 lines
1.7 KiB
PowerShell
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
|
|
}
|
|
} |