Public/Set-ALConnectorCred.ps1

function Set-ALConnectorCred {
<#
.SYNOPSIS
  Sets Connector Credentials
.DESCRIPTION
  Sets Connector Username and Pass
.PARAMETER websession
  Existing Webrequest session for ELM Appliance
.PARAMETER config
  Configuration settings for specific connector (Use get-alconnectordetail)
.PARAMETER connector
  Configurations for specific connector (Use get-alconnector)
.PARAMETER UserName
  Username to be used for Connector
.PARAMETER password
  password to be used for Connector
.EXAMPLE
  Set-ALconnectorCred -websession $websession -config $ConnectorConfig -connector $connector -username "domain\first.last" -password "Test123
#>

[cmdletbinding(SupportsShouldProcess = $true, ConfirmImpact="High")]
Param(
[Parameter(Mandatory=$true)]$websession,
[Parameter(Mandatory=$true)][string]$username,
[Parameter(Mandatory=$true)][string]$password,
[Parameter(Mandatory=$true)][PSCustomObject]$config,
[Parameter(Mandatory=$true)][PSCustomObject]$connector
)
Begin {Write-Verbose "BEGIN: $($MyInvocation.MyCommand)"}

Process{

#do the request
$headers = @{
  "Cookie" = ("UMCSessionCoookie=" + $($websession.token))
  "Accept" = "*/*"
  "Content-Type" = "application/json"
  "Host" = "$($websession.aplip):$($connector.ConfigurationSslPort)"
  "Referer" =  "https://$($websession.aplip):$($connector.ConfigurationSslPort)/ui/"
}
try
{
    $urlv = "https://$($websession.aplip):$($connector.ConfigurationSslPort)/api/Configurations/Verify"
    $url = "https://$($websession.aplip):$($connector.ConfigurationSslPort)/api/Configurations/$($connector.Id)"
    
    write-verbose "Old Config:"
    $config | Format-List
    
    $config.pccConfig.userName = $username
    $config.pccConfig | Add-Member -MemberType NoteProperty -Name password -Value $password
    $configjson = $config |ConvertTo-Json -Depth 100

    write-verbose "New Config:"
    $config | Format-List
   
    write-verbose "Verifying Connector Creds..."
    Invoke-RestMethod -Method Post -Uri $urlv -WebSession $websession -Headers $headers -Body $configJSON
    write-verbose "Changing Connector Creds..."
    if ($PSCmdlet.ShouldProcess("Setting Connector Password")) {
    $content = Invoke-RestMethod -Method Put -Uri $url -WebSession $websession -Headers $headers -Body $configJSON
    write-verbose "Change Successful"
    }

} catch {
  if($_.ErrorDetails.Message)
  {
    $temp = $_.ErrorDetails.Message|ConvertFrom-Json
    if($temp.message)
    {
      Write-error $temp.message
    }
    else {
      Write-error $temp.error.message
      Write-error $temp.error.sqlmessage
      write-error $temp.error.staus
    }
    throw "Process failed!"
  }
  else {
    Write-error $temp.error.message
    Write-error $temp.error.sqlmessage
    write-error $temp.error.staus
  }
} finally {
    
    
}
return $content
}
end{Write-Verbose "END: $($MyInvocation.MyCommand)"}
}