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 31 32 33 34 35 36 37 38 39 40 |
function set-AllegisIDNsource { param( [string]$orgname, [string]$accesstoken, [string]$sourceid, [string]$name, [string]$description, [string]$owner, [boolean]$accounts, [boolean]$provisioning, [pscustomobject]$correlationConfig ) $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" if ($name -eq $null){$name=$originalSource.name} if ($description -eq $null){$description=$originalSource.description} if ($provisioning -eq $null){$provisioning=$originalSource.useForProvisioning} if ($accounts -eq $null){$accounts=$originalSource.useForAccounts} $ownerid=$originalSource.owner.id if ($owner -ne $null){ $owneridentity=(get-AllegisIDNIdentity -orgname $orgname -uid $owner -accesstoken $accesstoken) $ownerdetails=@($owneridentity).where{$_.alias -eq $owner} if ($ownerdetails.id.count -eq 1){$ownerid=$ownerdetails[0].id} } if ($correlationConfig -ne $null){ if ($correlationConfig.attributeAssignments -ne $null){$correlationConfig=$correlationConfig.attributeAssignments} $json=$correlationConfig | ConvertTo-Json -Depth 10 -Compress $json='{"attributeAssignments":' + $json + '}' $body="correlationConfig=$json" }else{ $body="name=$name&description=$description&ownerId=$ownerid&useForProvisioning=$provisioning&useForAccounts=$accounts" } $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 } |