SecretManagement.HashiCorp.HCP.Vault.Secrets.Extension/public/Get-SecretInfo.ps1
function Get-SecretInfo { [CmdletBinding()] param ( [string] $Filter, [string] $VaultName, [hashtable] $AdditionalParameters ) try { if (Test-SecretVault -VaultName $VaultName -AdditionalParameters $AdditionalParameters) { $uri = ('{0}/secrets/{1}/organizations/{2}/projects/{3}/apps/{4}/secrets?pagination.page_size={5}' -f $script:HCPBaseUri, $script:HCPApiVersion, $AdditionalParameters.OrganizationId, $AdditionalParameters.ProjectId, $AdditionalParameters.AppName, $script:HCPApiPageSize) $secret = (Invoke-RestMethod -Uri $uri -Method Get -Headers $script:authorizationHeader).secrets if ($Filter -ne '*') { $secret = $secret | Where-Object { $_.Name -match $Filter } } $secret | ForEach-Object { $metadata = [Ordered]@{ 'type' = $PSItem.type 'latest_version' = $PSItem.latest_version 'created_at' = $PSItem.created_at 'created_by' = $PSItem.created_by 'sync_status' = $PSItem.sync_status 'static_version' = $PSItem.static_version 'version_count' = $PSItem.version_count } return @(,[Microsoft.PowerShell.SecretManagement.SecretInformation]::new( $PSItem.name, [Microsoft.PowerShell.SecretManagement.SecretType]::SecureString, $VaultName, $metadata)) } } } catch { Write-Error $_ } } |