status.ps1
# Status and Progress APIs # Get Infocyte HUNT Jobs (Active jobs or all jobs) function Get-ICJobs ([Switch]$All, [HashTable]$Where, [Switch]$NoLimit) { $url = ("$HuntServerAddress/api/jobs") $filter = @{ order = "createdOn" limit = $resultlimit skip = 0 where = @{ and = @() } } if ($where.count -gt 0) { $where.GetEnumerator() | % { $filter['where']['and'] += @{ $($_.key) = $($_.value) } } } if ($All) { Write-Verbose "Getting All Jobs from Infocyte HUNT: $HuntServer" } else { Write-Verbose "Getting Active Jobs from Infocyte HUNT: $HuntServer" $filter['where']['and'] = @{ state = "active" } } _ICGetMethod -url $url -filter $filter -NoLimit:$NoLimit } # Get Infocyte HUNT User Audit Logs function Get-ICUserAuditLogs ([Switch]$NoLimit, [HashTable]$Where) { $url = ("$HuntServerAddress/api/useractivities") $filter = @{ order = "createdOn" limit = $resultlimit skip = 0 where = @{ and = @() } } if ($where.count -gt 0) { $where.GetEnumerator() | % { $filter['where']['and'] += @{ $($_.key) = $($_.value) } } } Write-Verbose "Getting User Activity Logs from Infocyte HUNT: $HuntServer" _ICGetMethod -url $url -filter $filter -NoLimit:$NoLimit } # Get Infocyte HUNT User Tasks. These are the items in the task dropdown in the UI. function Get-ICUserTask { [cmdletbinding()] param( [String]$UserTaskId, [Switch]$Active, [Switch]$All, [HashTable]$Where, [Switch]$NoLimit ) $filter = @{ order = "endedOn" limit = $resultlimit skip = 0 where = @{ and = @() } } if ($where.count -gt 0) { $where.GetEnumerator() | % { $filter['where']['and'] += @{ $($_.key) = $($_.value) } } } if ($UserTaskId) { $url = ("$HuntServerAddress/api/usertasks/$UserTaskId") } else { if ($All) { Write-Verbose "Getting All User Tasks from Infocyte HUNT: $HuntServer" $url = ("$HuntServerAddress/api/usertasks") } else { Write-Verbose "Getting Active Tasks from Infocyte HUNT: $HuntServer" $url = ("$HuntServerAddress/api/usertasks/active") } } if ($Active) { Write-Verbose "Getting Running Tasks from Infocyte HUNT: $HuntServer" $filter['where']['and'] += @{ status = "Active" } } _ICGetMethod -url $url -filter $filter -NoLimit:$NoLimit } function Get-ICUserTaskItem { [cmdletbinding()] param( [parameter(Mandatory=$true, Position=0)] [ValidateNotNullOrEmpty()] [String]$UserTaskId, [Switch]$IncludeProgress, [HashTable]$Where, [Switch]$NoLimit ) $filter = @{ limit = $resultlimit skip = 0 order = "updatedOn" where = @{ and = @( @{ userTaskId = $UserTaskId } ) } } if ($where.count -gt 0) { $where.GetEnumerator() | % { $filter['where']['and'] += @{ $($_.key) = $($_.value) } } } Write-Verbose "Getting All User Task Items from Infocyte HUNT: $HuntServer" $url = ("$HuntServerAddress/api/userTaskItems") if ($IncludeProgress) { $items = _ICGetMethod -url $url -filter $filter -NoLimit:$NoLimit $items | foreach { if ($_.id) { $progress = @() Get-ICUserTaskItemProgress -taskItemId $_.id | foreach { $progress += "$($_.createdOn) $($_.text)" } $_ | Add-Member -MemberType "NoteProperty" -name "progress" -value $progress } } $items } else { _ICGetMethod -url $url -filter $filter -NoLimit:$NoLimit } } function Get-ICUserTaskItemProgress { param( [parameter(Mandatory=$true, Position=0)] [ValidateNotNullOrEmpty()] [String]$taskItemId, [HashTable]$Where, [Switch]$NoLimit ) $url = ("$HuntServerAddress/api/userTaskItemProgresses") $filter = @{ order = @("createdOn desc", "id") limit = $resultlimit skip = 0 where = @{ and = @( @{ taskItemId = $taskItemId} ) } } if ($where.count -gt 0) { $where.GetEnumerator() | % { $filter['where']['and'] += @{ $($_.key) = $($_.value) } } } _ICGetMethod -url $url -filter $filter -NoLimit:$NoLimit } |