Public/Get-MerakiNetworkWirelessClientLatencyHistory.ps1

function Get-MerakiNetworkWirelessClientLatencyHistory {
    <#
.SYNOPSIS
   Retrieves the historical latency data for a wireless client in Meraki Dashboard.
.DESCRIPTION
   This function retrieves the historical latency data for a wireless client in Meraki Dashboard using the Meraki REST API.
.PARAMETER AuthToken
   The API token used to authenticate the request. This token can be generated in the Meraki Dashboard under Organization > Settings > Dashboard API access.
.PARAMETER networkId
   The ID of the network containing the client to retrieve latency data for.
.PARAMETER clientId
   The ID of the client to retrieve latency data for.
.PARAMETER t0
   The beginning of the time range for the data. This parameter is ignored if timespan is provided.
.PARAMETER t1
   The end of the time range for the data. This parameter is ignored if timespan is provided.
.PARAMETER timespan
   The timespan of the data to retrieve, in seconds. If timespan is provided, t0 and t1 are ignored.
.PARAMETER resolution
   The time resolution of the data to retrieve, in seconds.
.EXAMPLE
   PS C:\> Get-MerakiNetworkWirelessClientLatencyHistory -AuthToken $token -networkId $networkId -clientId $clientId -timespan 3600
   Retrieves the historical latency data for the specified client for the past hour.
.INPUTS
   None. You cannot pipe objects to this function.
.OUTPUTS
   The function returns a collection of latency data objects, each containing the following properties:
   - latencyMs: the latency in milliseconds.
   - ts: the timestamp for the data in UNIX timestamp format.
.NOTES
   This function requires the Meraki PowerShell module, which can be installed from the PowerShell Gallery using the following command:
   Install-Module -Name Meraki
#>

    [CmdletBinding()]
    param (
        [parameter(Mandatory=$true)]
        [string]$AuthToken,
        [parameter(Mandatory=$true)]
        [string]$networkId,
        [parameter(Mandatory=$true)]
        [string]$clientId,
        [parameter(Mandatory=$false)]
        [string]$t0 = $null,
        [parameter(Mandatory=$false)]
        [string]$t1 = $null,
        [parameter(Mandatory=$false)]
        [int]$timespan = $null,
        [parameter(Mandatory=$false)]
        [int]$resolution = $null
    )
    try {
        $header = @{
            "X-Cisco-Meraki-API-Key" = $AuthToken
        }
        $queryParams = @{}
        if ($timespan) {
            $queryParams['timespan'] = $timespan
        } else {
            if ($t0) {
                $queryParams['t0'] = $t0
            }
            if ($t1) {
                $queryParams['t1'] = $t1
            }
        }
    
        if ($resolution) {
            $queryParams['resolution'] = $resolution
        }
    
        $queryString = New-MerakiQueryString -queryParams $queryParams
    
        $URL = "https://api.meraki.com/api/v1/networks/$networkId/wireless/clients/$clientId/latencyHistory?$queryString"
    
        $URI = [uri]::EscapeUriString($URL)
    
        $response = Invoke-RestMethod -Method Get -Uri $URI -Header $header -UserAgent "MerakiPowerShellModule/1.0.2 DocNougat"
        return $response
    }
    catch {
        Write-Debug $_
        Throw $_
    }
}