Public/Get-MerakiNetworkClientsUsageHistories.ps1
function Get-MerakiNetworkClientsUsageHistories { <# .SYNOPSIS Retrieves the usage histories for the clients of a given network. .DESCRIPTION This function retrieves the usage histories for the clients of a given network, according to the specified parameters. .PARAMETER AuthToken The Meraki API token to be used for the request. .PARAMETER NetworkId The ID of the network whose clients' usage histories are to be retrieved. .PARAMETER Clients The MAC addresses of the clients whose usage histories are to be retrieved. Multiple MAC addresses can be specified by separating them with commas. .PARAMETER SSIDNumber The number of the SSID whose clients' usage histories are to be retrieved. If not specified, usage histories for all SSIDs will be retrieved. .PARAMETER PerPage The number of entries per page to include in the response. If not specified, the default value of 1000 will be used. .PARAMETER StartingAfter A pagination parameter indicating the starting client whose usage history records should be included in the response. .PARAMETER EndingBefore A pagination parameter indicating the ending client whose usage history records should be included in the response. .PARAMETER T0 The beginning of the time range for which to retrieve usage history records. This should be specified as a UNIX timestamp in seconds. .PARAMETER T1 The end of the time range for which to retrieve usage history records. This should be specified as a UNIX timestamp in seconds. .PARAMETER Timespan The timespan for which to retrieve usage history records, in seconds. If specified, this will override the T0 and T1 parameters. .EXAMPLE PS C:\> Get-MerakiNetworkClientsUsageHistories -AuthToken "12345" -NetworkId "N_1234" -Clients "00:11:22:33:44:55, 11:22:33:44:55:66" -SSIDNumber 1 -Timespan 3600 Retrieves the usage histories for the clients with MAC addresses 00:11:22:33:44:55 and 11:22:33:44:55:66 on SSID 1 of the network with ID "N_1234" for the past hour. .NOTES For more information on the API endpoint this function uses, see the following documentation: https://developer.cisco.com/meraki/api-v1/#!get-network-clients-usage-histories #> param ( [parameter(Mandatory=$true)] [string]$AuthToken, [parameter(Mandatory=$true)] [string]$NetworkId, [parameter(Mandatory=$true)] [string]$Clients, [parameter(Mandatory=$false)] [int]$SSIDNumber, [parameter(Mandatory=$false)] [int]$PerPage = 1000, [parameter(Mandatory=$false)] [string]$StartingAfter, [parameter(Mandatory=$false)] [string]$EndingBefore, [parameter(Mandatory=$false)] [string]$T0, [parameter(Mandatory=$false)] [string]$T1, [parameter(Mandatory=$false)] [int]$Timespan ) try { $header = @{ "X-Cisco-Meraki-API-Key" = $AuthToken } $queryParams = @{} $queryParams['clients'] = $clients if ($ssidNumber) { $queryParams['ssidNumber'] = $ssidNumber } if ($perPage) { $queryParams['perPage'] = $perPage } if ($startingAfter) { $queryParams['startingAfter'] = $startingAfter } if ($endingBefore) { $queryParams['endingBefore'] = $endingBefore } if ($timespan) { $queryParams['timespan'] = $timespan } else { if ($t0) { $queryParams['t0'] = $t0 } if ($t1) { $queryParams['t1'] = $t1 } } $queryString = New-MerakiQueryString -queryParams $queryParams $URL = "https://api.meraki.com/api/v1/networks/$networkId/clients/usageHistories?$queryString" $URI = [uri]::EscapeUriString($URL) $response = Invoke-RestMethod -Method Get -Uri $URI -Header $header return $response } catch { Write-Error $_ } } |