Public/Fleets/Get-FleetTeam.ps1

function Get-FleetTeam {
    <#
    .SYNOPSIS
        Gets Fleet Premium fleets (formerly called teams).
 
    .DESCRIPTION
        Lists fleets or retrieves one fleet by ID from GET /api/v1/fleet/fleets.
        The REST resource is "fleets". Create and get responses still return the fleet under the "team" property.
 
    .PARAMETER Id
        Fleet ID. Use 0 for hosts that are not assigned to a fleet.
 
    .PARAMETER Name
        Case-insensitive partial name match applied after the fleet list is retrieved.
 
    .PARAMETER Page
        Page number. When omitted, every page is retrieved.
 
    .PARAMETER PerPage
        Page size. The default is 100.
 
    .EXAMPLE
        Get-FleetTeam
 
        Lists every fleet.
 
    .EXAMPLE
        Get-FleetTeam -Id 1
 
        Gets fleet 1.
 
    .NOTES
        This cmdlet requires Fleet Premium. Fleet Free responds with HTTP 402.
        https://fleetdm.com/docs/rest-api/rest-api#list-fleets
 
    .LINK
        https://fleetdm.com/docs/rest-api/rest-api#list-fleets
    #>

    [CmdletBinding(DefaultParameterSetName = 'List')]
    param(
        [Parameter(ParameterSetName = 'ById', Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
        [ValidateRange(0, [int]::MaxValue)]
        [int]$Id,

        [Parameter(ParameterSetName = 'List')]
        [string]$Name,

        [Parameter(ParameterSetName = 'List')]
        [ValidateRange(0, [int]::MaxValue)]
        [int]$Page,

        [Parameter(ParameterSetName = 'List')]
        [ValidateRange(1, 500)]
        [int]$PerPage = 100
    )

    process {
        if ($PSCmdlet.ParameterSetName -eq 'ById') {
            $response = Invoke-FleetDMRequest -Endpoint "fleets/$Id" -Method GET
            $fleet = Get-FleetRecord -Response $response
            if (-not $fleet) {
                Write-Warning "No fleet data returned for ID: $Id"
                return
            }
            return $fleet
        }

        $queryParams = @{ per_page = $PerPage }
        if ($PSBoundParameters.ContainsKey('Page')) {
            $queryParams['page'] = $Page
        }

        $followPagination = -not $PSBoundParameters.ContainsKey('Page')
        if ($followPagination) {
            $response = Invoke-FleetDMRequest -Endpoint 'fleets' -QueryParameters $queryParams -FollowPagination
        }
        else {
            $response = Invoke-FleetDMRequest -Endpoint 'fleets' -QueryParameters $queryParams
        }

        $result = Get-FleetListResult -Response $response -Name 'fleets' -TypeName 'FleetDM.Team'
        if ($Name) {
            $result = @($result | Where-Object { $_.name -like "*$Name*" })
        }

        return $result
    }
}