Public/Attachments/Get-AspireAttachmentFileData.ps1

<#
.SYNOPSIS
    Retrieves attachment file data from the Aspire API.
.DESCRIPTION
    Uses Invoke-AspireRequest to perform a GET request to the /Attachments/AttachmentFileData endpoint with support for OData query parameters.
.PARAMETER Filter
    Optional OData $filter query (e.g., "EntityType eq 'WorkTicket'").
.PARAMETER Top
    Optional $top number of records to return (integer).
.PARAMETER Skip
    Optional $skip number of records to skip (integer).
.PARAMETER Select
    Optional $select comma-separated list of fields to include (e.g., "AttachmentID,Name").
.PARAMETER Expand
    Optional $expand comma-separated list of related entities to expand.
.PARAMETER OrderBy
    Optional $orderby OData orderby query (e.g., "CreatedDate desc").
.PARAMETER PageNumber
    Optional $pageNumber for pagination (integer).
.PARAMETER Limit
    Optional $limit for the number of records per page (integer).
.OUTPUTS
    The response from the API containing the attachment file data.
.EXAMPLE
    Get-AspireAttachments -Filter "EntityType eq 'WorkTicket'" -Top 25 -OrderBy "CreatedDate desc"
#>

function Get-AspireAttachmentFileData {
    [CmdletBinding()]
    param(
        [string]$Filter = $null,
        [int]$Top = $null,
        [int]$Skip = $null,
        [string]$Select = $null,
        [string]$Expand = $null,
        [string]$OrderBy = $null,
        [int]$PageNumber = $null,
        [int]$Limit = $null
    )

    $queryParams = @{}
    if ($Filter) { $queryParams['$filter'] = $Filter }
    if ($Top) { $queryParams['$top'] = $Top }
    if ($Skip) { $queryParams['$skip'] = $Skip }
    if ($Select) { $queryParams['$select'] = $Select }
    if ($Expand) { $queryParams['$expand'] = $Expand }
    if ($OrderBy) { $queryParams['$orderby'] = $OrderBy }
    if ($PageNumber) { $queryParams['$pageNumber'] = $PageNumber }
    if ($Limit) { $queryParams['$limit'] = $Limit }

    return Invoke-AspireRequest -Method GET -Path "/Attachments/AttachmentFileData" -QueryParams $queryParams
}