Public/Device/Get-CapaOneDevice.ps1

function Get-CapaOneDevice {
    <#
    .SYNOPSIS
    Retrieves devices from CapaOne.
    .DESCRIPTION
    Gets device inventory, optionally filtering by name or type.
    .PARAMETER Name
    Device name used to filter results.
    .PARAMETER Type
    Device type to filter (Laptop, Desktop, Virtual).
    .EXAMPLE
    PS> Get-CapaOneDevice -Name "PC01"
    #>

    [CmdletBinding()]
    param (
        [string]
        $Name,
        [ValiDateSet("Laptop","Desktop","Virtual")]
        [string]
        $Type
    )
    $Devices = (Invoke-CapaOneApi -Path "/organizations/{{OrgId}}/device/list").content
    if(-not [String]::IsNullOrWhiteSpace($Name)){
        $Devices = $Devices | Where-Object name -Like $Name
    }
    if(-not [String]::IsNullOrWhiteSpace($Type)){
        $Devices = $Devices | Where-Object deviceType -eq $Name
    }
    foreach ($d in $devices) {
        $d.PSObject.TypeNames.Insert(0,'Capa.CapaOne.Device')
    }
    return $Devices
}