SecretManagement.VMware.CloudFoundation.Extension/public/Get-SecretInfo.ps1
function Get-SecretInfo { [CmdletBinding()] param ( [string] $Filter, [string] $VaultName, [hashtable] $AdditionalParameters ) $server = Resolve-SecretVault -Server $AdditionalParameters.Server Test-SecretVault -VaultName $VaultName -AdditionalParameters $AdditionalParameters $results = @() $uri = ('{0}/v1/credentials' -f $server) $results += (Invoke-RestMethod -Uri $uri -Headers $script:headers @script:irmSplat).elements $uri = ('{0}/v1/system/credentials/service' -f $server) $results += Invoke-RestMethod -Uri $uri -Headers $script:headers @script:irmSplat if (-not([string]::IsNullOrEmpty($Filter)) -and $Filter -ne '*') { if ($Filter -match '\/') { $resourceName = $filter.split('/')[0] $userName = $filter.split('/')[-1] $results = $results | Where-Object { $_.resource.resourceName -match $resourceName -and $_.username -match $username } } else { $results = $results | Where-Object { $_.resource.resourceName -match $Filter -or $_.username -match $Filter -or $_.id -match $Filter } } } $results | ForEach-Object { if ($PSItem.Resource.Count -gt 0) { $metadata = [Ordered]@{ 'Id' = $PSItem.Id 'CredentialType' = $PSItem.credentialType 'AccountType' = $PSItem.accountType 'CreationTimestamp' = $PSItem.CreationTimestamp 'ModificationTimestamp' = $PSItem.ModificationTimestamp 'Resource' = $PSItem.resource } return @(,[Microsoft.PowerShell.SecretManagement.SecretInformation]::new( ('{0}/{1}' -f $PSItem.resource.resourceName, $PSItem.userName), # Name of secret "String", # Secret data type [Microsoft.PowerShell.SecretManagement.SecretType] $VaultName, # Name of vault $metadata)) # Optional Metadata parameter } else { $metadata = [Ordered]@{ 'CredentialType' = $PSItem.credentialType 'EntityType' = $PSItem.EntityType 'CreationTimestamp' = $PSItem.CreationTime 'ModificationTimestamp' = $PSItem.ModificationTime 'TargetType' = $PSItem.TargetType } return @(,[Microsoft.PowerShell.SecretManagement.SecretInformation]::new( ('{0}' -f $PSItem.userName), # Name of secret "String", # Secret data type [Microsoft.PowerShell.SecretManagement.SecretType] $VaultName, # Name of vault $metadata)) # Optional Metadata parameter } } } |