SecretManagement.VMware.CloudFoundation.Extension/private/New-SecretVaultAccessToken.ps1
function New-SecretVaultAccessToken { [CmdletBinding()] param ( [string] $VaultName, [hashtable] $AdditionalParameters, [string] $Server, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [PSCredential] $Credential ) if (-not($Credential)) { $credential = Get-Credential -Message 'Enter VMware Cloud Foundation credential that has been granted the ADMIN role' } $uri = ('{0}/v1/tokens' -f $Server) $body = @{ 'username' = $credential.UserName 'password' = $credential.GetNetworkCredential().Password } | ConvertTo-Json $request = Invoke-RestMethod -Uri $uri -Method POST -Headers $script:defaultHeaders -Body $body @script:irmSplat if ($statusCode -ne '200') { throw 'Invalid credential passed' } else { Set-Variable -Name ('SecretManagement_{0}_AccessToken' -f $VaultName) -Value $request.accessToken -Scope Script -Force Set-Variable -Name ('SecretManagement_{0}_RefreshToken' -f $VaultName) -Value $request.refreshToken.id -Scope Script -Force $script:headers = $script:defaultHeaders.Clone() $script:headers.Add('Authorization', ('Bearer {0}' -f (Get-Variable -Name ('SecretManagement_{0}_AccessToken' -f $VaultName) -Scope Script).Value)) } } |