Public/Addresses/Get-AspireAddresses.ps1

<#
.SYNOPSIS
    Retrieves a list of addresses from the Aspire API.
.DESCRIPTION
    Uses Invoke-AspireRequest to perform a GET request to the /Addresses endpoint with support for OData query parameters.
.PARAMETER Filter
    Optional OData filter query (e.g., "City eq 'New York'").
.PARAMETER Top
    Optional number of records to return (integer).
.PARAMETER Skip
    Optional number of records to skip (integer).
.PARAMETER Select
    Optional comma-separated list of fields to include (e.g., "AddressID,City").
.PARAMETER Expand
    Optional comma-separated list of related entities to expand (e.g., "Customer").
.PARAMETER OrderBy
    Optional OData orderby query (e.g., "City asc").
.PARAMETER PageNumber
    Optional page number for pagination (integer).
.PARAMETER Limit
    Optional limit for the number of records per page (integer).
.OUTPUTS
    The response from the API containing the list of addresses.
.EXAMPLE
    Get-AspireAddresses -Filter "City eq 'New York'" -Top 10 -Skip 5 -Select "AddressID,City" -Expand "Customer" -OrderBy "City asc" -PageNumber 1 -Limit 20
#>

function Get-AspireAddresses {
    [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 "/Addresses" -QueryParams $queryParams
}