-
Notifications
You must be signed in to change notification settings - Fork 17
/
Get-CsDetectId.psm1
61 lines (52 loc) · 1.43 KB
/
Get-CsDetectId.psm1
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function Get-CsDetectId {
<#
.SYNOPSIS
Search for detection IDs
.PARAMETER FILTER
The filter expression that should be used to limit the results
.PARAMETER QUERY
Search all detection metadata for the provided string
.PARAMETER LIMIT
The maximum records to return [default: 5000]
.PARAMETER OFFSET
The offset to start retrieving records from [default: 0]
.PARAMETER ALL
Repeat request until all results are returned
#>
[CmdletBinding()]
[OutputType([psobject])]
param(
[string]
$Filter,
[string]
$Query,
[ValidateRange(1,5000)]
[int]
$Limit = 5000,
[int]
$Offset = 0,
[switch]
$All
)
process{
$Param = @{
Uri = '/detects/queries/detects/v1?limit=' + [string] $Limit + '&offset=' + [string] $Offset
Method = 'get'
Header = @{
accept = 'application/json'
}
}
switch ($PSBoundParameters.Keys) {
'Filter' { $Param.Uri += '&filter=' + $Filter }
'Query' { $Param.Uri += '&q=' + $Query }
'Verbose' { $Param['Verbose'] = $true }
'Debug' { $Param['Debug'] = $true }
}
if ($All) {
Join-CsResult -Activity $MyInvocation.MyCommand.Name -Param $Param
}
else {
Invoke-CsAPI @Param
}
}
}