public/complete/devices.psm1
function Search-Devices { <# .SYNOPSIS Function to Search for devices. .DESCRIPTION Function to Search for devices. .PARAMETER activation_date Date value in ISO-8601 format yyyy-MM-ddTHH:mm:ss.SSSZ. Use operators > or >= for the minimum date, and/or < or <= for the maximum date. For example: activationDate>=1970-01-01T00:00:00.000Z,activationDate<=1970-12-31T23:59:59.000Z. .PARAMETER operator "Less Than", "Less Than Or Equal To", "Greater Than", "Greater Than Or Equal To" .PARAMETER dynamics_container_id Identifier of a Dynamics container that is activated on a device. When searching by a BlackBerry Dynamics container Id, response will additionally contain user-device application route link that corresponds to the Dynamics application to which the container belongs and the user who owns the device. .PARAMETER guid GUID of the device. .PARAMETER imei IMEI of the device. .PARAMETER meid MEID of the device. .PARAMETER ownership 'CORPORATE' or 'PERSONAL' .PARAMETER udid UDID of the device. .PARAMETER wifi_mac_address WIFI MAC address of the device. .PARAMETER shared_device_only Filter to return only devices that are part of shared device groups. If filter is not specified then all the devices will be returned .PARAMETER os The operating system of the device. .PARAMETER os_family_name The operating system family name of the device. .PARAMETER hardware_model The hardware model of the device. .PARAMETER hardware_vendor_company_name The hardware vendor company name of the device. .PARAMETER enrollment_type The enrollment type of the device. .PARAMETER include_total If you want the total number of devices matching the search included in the response (which may be different from the number of devices actually returned) set this to true; otherwise set to false. By default the total will not be included in the response. .PARAMETER max The maximum number of device results to get, between 1 and 1000 inclusive. If not specified, a value of 100 will be used. .PARAMETER offset The number of matching devices to exclude from the beginning of the list of devices in the response; greater than or equal to 0. If not specified, a value of 0 will be used to indicate that no matches should be excluded. Used in order to get "pages" of results. For example, to get the first 50 matching devices, specify max=50 (and optionally offset=0); and to get the next 50 matching devices specify max=50 and offset=50, and so on. .EXAMPLE Search-Devices -guid '714a8084-a059-4fbc-91c3-99daea0d0fb8' -activation_date $date -operator "Less Than Or Equal To" -max 25 .EXAMPLE Search-UEMAPiUser -user 'stephan*' -offset 10 .LINK https://developer.blackberry.com/files/bws/reference/blackberry_uem_12_18_rest/resource_Devices.html#resource_Devices_getDevices_GET #> param( [Parameter(Mandatory = $False)] [Datetime] $activation_date, [ValidateSet("Less Than", "Less Than Or Equal To", "Greater Than", "Greater Than Or Equal To")] [string] $operator, [Parameter(Mandatory = $False)] [string] $dynamics_container_id, [Parameter(Mandatory = $False)] [System.Guid] $guid, [Parameter(Mandatory = $False)] [string] $imei, [Parameter(Mandatory = $False)] [string] $meid, [Parameter(Mandatory = $False)] [string] $ownership, [Parameter(Mandatory = $False)] [string] $udid, [Parameter(Mandatory = $False)] [string] $wifi_mac_address, [Parameter(Mandatory = $False)] [Bool] $shared_device_only, [Parameter(Mandatory = $False)] [string] $os, [Parameter(Mandatory = $False)] [string] $os_family_name, [Parameter(Mandatory = $False)] [string] $hardware_model, [Parameter(Mandatory = $False)] [string] $hardware_vendor_company_name, [Parameter(Mandatory = $False)] [ValidateSet("EXTERNAL_SERVICE", "FULL_CONTROL_KNOX","MDM_CONTROLS","STRONG_AUTHENTICATION_BY_BLACKBERRY", "USER_PRIVACY","USER_PRIVACY_AFW","USER_PRIVACY_AFW_PREMIUM","USER_PRIVACY_DYNAMICS","USER_PRIVACY_KNOX", "USER_PRIVACY_USER_ENROLLMENT","USER_PRIVACY_WITH_PROFILES","WORK_AND_PERSONAL_CORPORATE", "WORK_AND_PERSONAL_REGULATED","WORK_SPACE_ONLY","WORK_SPACE_ONLY_AFW","WORK_SPACE_ONLY_AFW_PREMIUM","WORK_SPACE_ONLY_KNOX")] [string] $enrollment_type, [Parameter(Mandatory = $False)] [bool] $include_total = $false, [Parameter(Mandatory = $False)] [ValidateRange(1, 1000)] [int] $max = 100, [Parameter(Mandatory = $False)] [ValidateRange(0, 50)] [int] $offset = 0 ) begin { $Headers = @{ 'Accept' = 'application/vnd.blackberry.devices-v1+json' 'Authorization' = $global:env:uem_auth_token } $base_url = $global:env:uem_environment + "/devices?query=" $query = New-DeviceQuery -search_params $PSBoundParameters -ErrorAction Stop $api_url = $base_url + $query Write-host $api_url } process { try { Invoke-IgnoreCertForPS5 $Response = Invoke-RestMethod -Uri $api_url -Headers $Headers -Method Get return $Response } catch { Switch -Wildcard ($_.Exception.Response.StatusCode.value__) { '400' { Write-Error "Invalid Search Query" } default { Write-Error "Authentication failed: $_" } } } } } |