ps/Modules/Cole.PowerShell.Developer/Public/ConvertTo-AWSCredentialEntry.ps1
2023-05-30 22:51:22 -07:00

45 lines
1.8 KiB
PowerShell

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
}
}