Public/Set-EdgeConnection.ps1
Function Set-EdgeConnection { <# .SYNOPSIS Sets connection information for Apigee Edge administrative actions .DESCRIPTION Sets connection information, including Organization name, and user credentials, for Apigee Edge administrative actions. .PARAMETER Org The Apigee Edge organization. .PARAMETER User The Apigee Edge administrative user. .PARAMETER Pass The password for the Apigee Edge administrative user. .PARAMETER MgmtUri The base Uri for the Edge API Management server. Default: https://api.enterprise.apigee.com .EXAMPLE Set-EdgeConnection -Org cap500 -User dino@apigee.com -Pass Secret1XYZ .FUNCTIONALITY ApigeeEdge #> [cmdletbinding()] param( [string]$Org, [Parameter(Mandatory=$True)][string]$User, [string]$Pass, [string]$MgmtUri = 'https://api.enterprise.apigee.com' ) if( $PSBoundParameters.ContainsKey('Org')) { $MyInvocation.MyCommand.Module.PrivateData['Org'] = $Org } if(! $PSBoundParameters.ContainsKey('User') ) { throw [System.ArgumentNullException] "provide -User and -Pass." } if (! $PSBoundParameters.ContainsKey('Pass')) { $SecurePass = Read-Host -assecurestring "Please enter your password: " $Pass = [System.Runtime.InteropServices.marshal]::PtrToStringAuto([System.Runtime.InteropServices.marshal]::SecureStringToBSTR($SecurePass)) } $MyInvocation.MyCommand.Module.PrivateData['MgmtUri'] = $MgmtUri $MyInvocation.MyCommand.Module.PrivateData['User'] = $User $pair = "${User}:${Pass}" $bytes = [System.Text.Encoding]::UTF8.GetBytes($pair) $base64 = [System.Convert]::ToBase64String($bytes) $secureString = ConvertTo-SecureString -Force -AsPlainText $base64 $MyInvocation.MyCommand.Module.PrivateData['AuthToken'] = $secureString Remove-Variable base64 Remove-Variable Pass Remove-Variable pair Remove-Variable bytes Remove-Variable secureString } |