Public/set-AllegisIDNsource.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function set-AllegisIDNsource {
param(
    [string]$orgname,
    [string]$accesstoken,
    [string]$sourceid,
    [string]$name,
    [string]$description,
    [string]$owner,
    [boolean]$accounts,
    [boolean]$provisioning
    )
    $originalSource=get-AllegisIDNsource -orgName $orgname -sourceid $sourceid -accessToken $accesstoken -detailed $true
    $header=get-AllegisIDNprivateHeader $accessToken
    $privateuribase="https://$orgname.api.identitynow.com"
    $url="$privateuribase/cc/api/source/update/$sourceid"
    $body=''
    if ($name -ne $null){$body="$($body)name=$name&"}
    if ($description -ne $null){$body="$($body)description=$description&"}
    if ($owner -ne $null){
        $owneridentity=(get-AllegisIDNIdentitylist -orgname $orgname -uid $owner -accesstoken $accesstoken)
        $ownerdetails=$owneridentity.items.where{$_.alias -eq $owner}
        if ($owenerdetails.id.count -eq 1){$body="$($body)ownerId=$($ownerdetails[0].id)&"}
    }
    if ($provisioning -ne $null){$body="$($body)useForProvisioning=$provisioning&"}
    if ($accounts -ne $null){$body="$($body)useForAccounts=$accounts&"}
    if ($body.length -gt 1){$body=$body.Substring(0,$body.Length-1)}
    $response=Invoke-WebRequest -Uri $url -Method Post -UseBasicParsing -Headers $header -Body ([uri]::EscapeDataString($body)) -ContentType 'application/x-www-form-urlencoded'
    $sourceAccountProfile=$response.Content | ConvertFrom-Json
    return $sourceAccountProfile
}