Public/New-IAMCoreSyncJob.ps1
|
function New-IAMCoreSyncJob { [CmdletBinding(SupportsShouldProcess = $true)] param ( [Parameter(Mandatory = $false)] [ValidateSet("FullSyncTenant", "ConnectorImport")] [string] $JobType = "FullSyncTenant", [Parameter(Mandatory = $false, ParameterSetName = "Connector")] [ValidatePattern("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", ErrorMessage = "ConnectorId must be a valid GUID.")] # Is a guid connector object id [string] $ConnectorId ) if ($JobType -eq "ConnectorImport" -and -not $ConnectorId) { throw "ConnectorId is required when JobType is 'ConnectorImport'." } if ($PSCmdlet.ShouldProcess("Creating IAM Core sync job")) { $body = @{ jobType = $JobType } if ($JobType -eq "ConnectorImport") { $body.connectorId = $ConnectorId } $body = $body | convertto-json -Depth 10 $Result = Invoke-RestMethod -Uri "$Script:APIRoot/sync/jobs/" -Headers (Get-IAMCoreHeader) -Method Post -Body $body -ContentType "application/json" -SkipHttpErrorCheck -StatusCodeVariable "statuscode" if ($Result.IsSuccess) { return $Result.Data } else { throw "Failed to create IAM Core sync job (Status code $statuscode): $($Result)" } } } |