Public/Get-MerakiOrganizationLicenses.ps1
function Get-MerakiOrganizationLicenses { <# .SYNOPSIS Retrieves a list of licenses in an organization or for a specific device/network. .PARAMETER AuthToken Required. The authorization token for the Meraki dashboard API. .PARAMETER OrgId Optional. The ID of the organization for which to retrieve licenses. If not specified, the ID of the first organization associated with the provided authorization token will be used. .PARAMETER perPage Optional. The number of licenses per page to include in the response. .PARAMETER startingAfter Optional. A license ID to use as the starting point for the response. .PARAMETER endingBefore Optional. A license ID to use as the ending point for the response. .PARAMETER deviceSerial Optional. The serial number of a device for which to retrieve licenses. .PARAMETER networkId Optional. The ID of a network for which to retrieve licenses. .PARAMETER state Optional. The state of the licenses to retrieve. Valid values are "active", "expired", "expiring", and "unused". .EXAMPLE PS C:\> Get-MerakiOrganizationLicenses -AuthToken '1234' -perPage 50 Retrieves a list of the first 50 licenses in the first organization associated with the provided authorization token. .EXAMPLE PS C:\> Get-MerakiOrganizationLicenses -AuthToken '1234' -networkId 'L_1234' -state 'active' Retrieves a list of all active licenses for the network with the ID 'L_1234'. #> param ( [parameter(Mandatory=$true)] [string]$AuthToken, [parameter(Mandatory=$false)] [string]$OrganizationID = (Get-OrgID -AuthToken $AuthToken), [parameter(Mandatory=$false)] [int]$perPage = $null, [parameter(Mandatory=$false)] [string]$startingAfter = $null, [parameter(Mandatory=$false)] [string]$endingBefore = $null, [parameter(Mandatory=$false)] [string]$DeviceSerial = $null, [parameter(Mandatory=$false)] [string]$networkId = $null, [parameter(Mandatory=$false)] [string]$state = $null ) If($OrganizationID -eq "Multiple organizations found. Please specify an organization ID.") { Return "Multiple organizations found. Please specify an organization ID." } else { try { $header = @{ "X-Cisco-Meraki-API-Key" = $AuthToken "Content-Type" = "application/json" } $queryParams = @{} if ($perPage) { $queryParams['perPage'] = $perPage } if ($startingAfter) { $queryParams['startingAfter'] = $startingAfter } if ($endingBefore) { $queryParams['endingBefore'] = $endingBefore } if ($DeviceSerial) { $queryParams['deviceSerial'] = $DeviceSerial } if ($networkId) { $queryParams['networkId'] = $networkId } if ($state) { $queryParams['state'] = $state } $queryString = New-MerakiQueryString -queryParams $queryParams $URI = "https://api.meraki.com/api/v1/organizations/$OrganizationID/licenses?$queryString" $response = Invoke-RestMethod -Method Get -Uri $URI -Header $header -UserAgent "MerakiPowerShellModule/1.0.2 DocNougat" return $response } catch { Write-Host $_ Throw $_ } } } |