Public/Get-DattoBcdrDevice.ps1
|
function Get-DattoBcdrDevice { <# .SYNOPSIS Returns BCDR devices or one device by serial number. .DESCRIPTION Implements GET /v1/bcdr/device and GET /v1/bcdr/device/{serialNumber}. Organization-restricted API keys return only permitted devices. .PARAMETER SerialNumber The device serial number. .PARAMETER Page The one-based API page number for device listings. .PARAMETER PerPage The number of devices requested per page. .PARAMETER ShowHiddenDevices The integer flag Datto uses to indicate whether hidden devices should be included. .PARAMETER ShowChildResellerDevices The integer flag Datto uses to indicate whether child reseller devices should be included. .PARAMETER All Retrieves every listing page. .PARAMETER RawResponse Returns the API response body or envelope without extracting items. .PARAMETER Connection A connection object, name, or ID. .EXAMPLE Get-DattoBcdrDevice -All -ShowHiddenDevices 1 .EXAMPLE Get-DattoBcdrDevice -SerialNumber 'ABC123ABC1' #> [CmdletBinding(DefaultParameterSetName = 'List')] param( [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName, ParameterSetName = 'BySerial')] [ValidateNotNullOrEmpty()][string]$SerialNumber, [Parameter(ParameterSetName = 'List')][ValidateRange(1, [int]::MaxValue)][int]$Page = 1, [Parameter(ParameterSetName = 'List')][ValidateRange(1, [int]::MaxValue)][int]$PerPage = 25, [Parameter(ParameterSetName = 'List')][Nullable[int]]$ShowHiddenDevices, [Parameter(ParameterSetName = 'List')][Nullable[int]]$ShowChildResellerDevices, [Parameter(ParameterSetName = 'List')][switch]$All, [Parameter()][switch]$RawResponse, [Parameter()][AllowNull()][object]$Connection ) process { if ($PSCmdlet.ParameterSetName -eq 'BySerial') { $serial = ConvertTo-DattoApiPathSegment -Value $SerialNumber Invoke-DattoApiRequest -Path "/v1/bcdr/device/$serial" -RawResponse:$RawResponse -Connection $Connection } else { $query = @{ _page = $Page; _perPage = $PerPage } if ($PSBoundParameters.ContainsKey('ShowHiddenDevices')) { $query['showHiddenDevices'] = $ShowHiddenDevices } if ($PSBoundParameters.ContainsKey('ShowChildResellerDevices')) { $query['showChildResellerDevices'] = $ShowChildResellerDevices } Invoke-DattoApiRequest -Path '/v1/bcdr/device' -Query $query -All:$All -ResultProperty 'items' -RawResponse:$RawResponse -Connection $Connection } } } |