CloudAccount/CloudAccount.psm1
Import-Module -Name $PSScriptRoot\..\Util\Util function Get-RMCloudAccountsForCurrentProject { param() $UserLoginStatus = Test-UserLoggedIn if (!$UserLoginStatus) { return } $CurrentProjectId = Get-Variable -Name "RMContext-CurrentProjectId" -ValueOnly $Result = @() $Response = Get-RMCloudAccountInternal -OrganizationId $CurrentProjectId -PageNumber 0 $Result += $Response for ($index = 1; $index -lt $Response.page.totalPages; $index++) { $Result += Get-RMCloudAccountInternal -OrganizationId $OrganizationId -PageNumber $index } return $Result } function Get-RMCloudAccountByName { param( [string] $CloudAccountName ) $PagedOrgCloudAccounts = Get-RMCloudAccountsForCurrentProject foreach ($PagedOrgCloudAccount in $PagedOrgCloudAccounts) { foreach ($CloudAccount in $PagedOrgCloudAccount.content) { if ($CloudAccountName -eq $CloudAccount.name) { return $CloudAccount } } } $ProjectName = Get-Variable -Name "RMContext-CurrentProjectName" -ValueOnly $OrgName = Get-Variable -Name "RMContext-CurrentOrganizationName" -ValueOnly throw "Cloud account '$CloudAccountName' does not exist in current project '$ProjectName' of organization '$OrgName'" } function Get-CachedCloudAttribute { param( [System.Object] $CloudAccount ) $RMLoginResult = Get-Variable -Name "RMContext-UserLogin" -ValueOnly $Uri = Get-Variable -Name "RMContext-ReactorURI" -ValueOnly $Headers = @{ Accept = "application/rm+json" "X-Auth-Token" = $RMLoginResult.token } $Params = @{ Method = "Get" Uri = $Uri + "/cloudaccounts/" + $CloudAccount.id + "/cachedattributes" Headers = $Headers } return Invoke-RMRestMethod -Params $Params } function Get-CloudAttributesSummary { param( [System.Object] $CloudAccount ) $RMLoginResult = Get-Variable -Name "RMContext-UserLogin" -ValueOnly $Uri = Get-Variable -Name "RMContext-ReactorURI" -ValueOnly $Headers = @{ Accept = "application/rm+json" "X-Auth-Token" = $RMLoginResult.token } $Params = @{ Method = "Get" Uri = $Uri + "/cloudaccounts/" + $CloudAccount.id + "/attributes?summary=true" Headers = $Headers } return Invoke-RMRestMethod -Params $Params } function Get-RMCloudAccountInternal { param( [string] $OrganizationId, [int] $PageNumber ) $RMLoginResult = Get-Variable -Name "RMContext-UserLogin" $Uri = Get-Variable -Name "RMContext-ReactorURI" $Headers = @{ Accept = "application/rm+json" "X-Auth-Token" = $RMLoginResult.Value.token } $Params = @{ Method = "Get" Uri = $Uri.Value + "/organizations/" + $OrganizationId + "/cloudaccounts?size=25&page=" + $PageNumber + "&sort=created_at%2Cdesc" Headers = $Headers } return Invoke-RMRestMethod -Params $Params } Export-ModuleMember -Function Get-RMCloudAccountByName, Get-CachedCloudAttribute, Get-CloudAttributesSummary |