ps/Modules/Alkami.DevOps.Common/Private/ConvertTo-AwsCredentialEntry.ps1

46 lines
1.7 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
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
}
}