As part of the VMware open source program, we have to update this repository with the correct license and copyright information. We add the BSD-2 Clause License for this repository. We mark all source code provided by VMware with the Copyright notice under BSD-2 Clause license. * Update repository license to BSD 2-Clause License * Update Copyright
98 lines
4.1 KiB
PowerShell
98 lines
4.1 KiB
PowerShell
<#
|
|
Copyright 2021 VMware, Inc.
|
|
SPDX-License-Identifier: BSD-2-Clause
|
|
#>
|
|
Function Get-CSPAccessToken {
|
|
<#
|
|
.NOTES
|
|
===========================================================================
|
|
Created by: William Lam
|
|
Date: 07/23/2018
|
|
Organization: VMware
|
|
Blog: https://www.virtuallyghetto.com
|
|
Twitter: @lamw
|
|
===========================================================================
|
|
|
|
.DESCRIPTION
|
|
Converts a Refresh Token from the VMware Console Services Portal
|
|
to CSP Access Token to access CSP API
|
|
.PARAMETER RefreshToken
|
|
The Refresh Token from the VMware Console Services Portal
|
|
.EXAMPLE
|
|
Get-CSPAccessToken -RefreshToken $RefreshToken
|
|
#>
|
|
Param (
|
|
[Parameter(Mandatory=$true)][String]$RefreshToken
|
|
)
|
|
|
|
$results = Invoke-WebRequest -Uri "https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/authorize" -Method POST -Headers @{accept='application/json'} -Body "refresh_token=$RefreshToken"
|
|
if($results.StatusCode -ne 200) {
|
|
Write-Host -ForegroundColor Red "Failed to retrieve Access Token, please ensure your VMC Refresh Token is valid and try again"
|
|
break
|
|
}
|
|
$accessToken = ($results | ConvertFrom-Json).access_token
|
|
Write-Host "CSP Auth Token has been successfully retrieved and saved to `$env:cspAuthToken"
|
|
$env:cspAuthToken = $accessToken
|
|
}
|
|
|
|
Function Get-CSPServices {
|
|
<#
|
|
.NOTES
|
|
===========================================================================
|
|
Created by: William Lam
|
|
Date: 07/23/2018
|
|
Organization: VMware
|
|
Blog: https://www.virtuallyghetto.com
|
|
Twitter: @lamw
|
|
===========================================================================
|
|
|
|
.DESCRIPTION
|
|
Returns the list of CSP Services avialable for given user
|
|
.EXAMPLE
|
|
Get-CSPServices
|
|
#>
|
|
If (-Not $env:cspAuthToken) { Write-error "CSP Auth Token not found, please run Get-CSPAccessToken" } Else {
|
|
$results = Invoke-WebRequest -Uri "https://console.cloud.vmware.com/csp/gateway/slc/api/definitions?expand=1" -Method GET -ContentType "application/json" -UseBasicParsing -Headers @{"csp-auth-token"="$env:cspAuthToken"}
|
|
((($results.Content) | ConvertFrom-Json).results | where {$_.visible -eq $true}).displayName
|
|
}
|
|
}
|
|
|
|
Function Get-CSPRefreshTokenExpiry {
|
|
<#
|
|
.NOTES
|
|
===========================================================================
|
|
Created by: William Lam
|
|
Date: 01/10/2019
|
|
Organization: VMware
|
|
Blog: https://www.virtuallyghetto.com
|
|
Twitter: @lamw
|
|
===========================================================================
|
|
|
|
.DESCRIPTION
|
|
Retrieve the expiry for a given CSP Refresh Token
|
|
.PARAMETER RefreshToken
|
|
Retrieve the expiry for a given CSP Refresh Token
|
|
.EXAMPLE
|
|
Get-CSPRefreshTokenExpiry -RefreshToken $RefreshToken
|
|
#>
|
|
Param (
|
|
[Parameter(Mandatory=$true)][String]$RefreshToken
|
|
)
|
|
|
|
$body = @{"tokenValue"="$RefreshToken"}
|
|
$json = $body | ConvertTo-Json
|
|
$results = Invoke-WebRequest -Uri "https://console.cloud.vmware.com/csp/gateway/am/api/auth/api-tokens/details" -Method POST -ContentType "application/json" -UseBasicParsing -Body $json
|
|
$tokenDetails = (($results.Content) | ConvertFrom-Json)
|
|
|
|
$createDate = (Get-Date -Date "01/01/1970").AddMilliseconds($tokenDetails.createdAt).ToLocalTime()
|
|
$usedDate = (Get-Date -Date "01/01/1970").AddMilliseconds($tokenDetails.lastUsedAt).ToLocalTime()
|
|
$expiryDate = (Get-Date -Date "01/01/1970").AddMilliseconds($tokenDetails.expiresAt).ToLocalTime()
|
|
|
|
$tmp = [pscustomobject] @{
|
|
LastUsedDate = $usedDate;
|
|
CreatedDate = $createDate;
|
|
ExpiryDate = $expiryDate;
|
|
}
|
|
$tmp | Format-List
|
|
}
|