public/complete/company_directories.psm1
function Search-CompanyDirectories { <# .SYNOPSIS Function to search the blackberry uem api by username with pagination. .DESCRIPTION Search for users in all configured company directories. This will most often be used in order to create a directory-linked user (see the "Users" resource for creating a directory-linked user). .PARAMETER query_value A required non-empty value to search for directory users, using a case-insensitive prefix match. For AD company directories, an Ambiguous Name Resolution (ANR) search is performed. For LDAP company directories, the search is performed across various configured fields, for example displayName, emailAddress, firstName, lastName, username. .PARAMETER limit The maximum number of matching directory users to get. If specified, the value must be between 1 and 100, inclusive. Defaults to 100 if not provided. .PARAMETER include_existing_users The maximum number of matching directory users to get. If specified, the value must be between 1 and 100, inclusive. Defaults to 100 if not provided. .OUTPUTS psCustomObject .EXAMPLE Search-CompanyDirectories -query_value 'marshall' -limit 50 -include_existing_users $true .LINK https://developer.blackberry.com/files/bws/reference/blackberry_uem_12_18_rest/resource_Company_directories.html#resource_Company_directories_getUsers_GET #> Param( [Parameter(Mandatory = $true)] [string]$query_value, [Parameter(Mandatory = $false)] [ValidateRange(1,100)] [int]$limit = 100, [Parameter(Mandatory = $false)] [bool]$include_existing_users = $false ) Begin{ Write-Debug "Entering Function: $($MyInvocation.MyCommand)" $rest_params = Get-RestParams -method 'Get' -media_type 'directoryusers' -endpoint "/directories/users?search=$query_value&limit=$limit&includeExistingUsers=$include_existing_users" } Process{ try { Invoke-IgnoreCertForPS5 $Response = Invoke-RestMethod -Uri $rest_params.api_url -Headers $rest_params.headers -Method $rest_params.method return $Response } catch { Switch -Wildcard ($_.Exception.Response.StatusCode.value__) { '400' {Write-Error "Invalid request. For example, invalid field semantics or missing required field."} '409' {Write-Error "No company directories configured."} default {Write-Error "HTTP: $_"} } } } } |