Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/generation-report.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Generation Report

## 2026-06-17 | Library v4.2.0b2 | API 1.71.0-beta.2


No Python keyword parameter conflicts detected.


## 2026-06-10 | Library v4.2.0b1 | API 1.71.0-beta.1


Expand Down
2 changes: 1 addition & 1 deletion meraki/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
from meraki._version import __version__ # noqa: F401
from datetime import datetime

__api_version__ = "1.71.0-beta.1"
__api_version__ = "1.71.0-beta.2"

__all__ = [
"APIError",
Expand Down
2 changes: 1 addition & 1 deletion meraki/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "4.2.0b1"
__version__ = "4.2.0b2"
2 changes: 1 addition & 1 deletion meraki/aio/api/appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ def updateDeviceApplianceInterfacesPort(self, serial: str, number: str, **kwargs

def getDeviceAppliancePerformance(self, serial: str, **kwargs):
"""
**Return the performance score for a single MX**
**Return the performance score for a single Secure Appliance or Secure Router**
https://developer.cisco.com/meraki/api-v1/#!get-device-appliance-performance

- serial (string): Serial
Expand Down
56 changes: 56 additions & 0 deletions meraki/aio/api/wireless.py
Original file line number Diff line number Diff line change
Expand Up @@ -2344,6 +2344,7 @@ def createNetworkWirelessRfProfile(self, networkId: str, name: str, bandSelectio
- transmission (object): Settings related to radio transmission.
- perSsidSettings (object): Per-SSID radio settings by number.
- flexRadios (object): Flex radio settings.
- dot11be (object): 802.11be settings
"""

kwargs.update(locals())
Expand Down Expand Up @@ -2378,6 +2379,7 @@ def createNetworkWirelessRfProfile(self, networkId: str, name: str, bandSelectio
"transmission",
"perSsidSettings",
"flexRadios",
"dot11be",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

Expand Down Expand Up @@ -2409,6 +2411,7 @@ def updateNetworkWirelessRfProfile(self, networkId: str, rfProfileId: str, **kwa
- transmission (object): Settings related to radio transmission.
- perSsidSettings (object): Per-SSID radio settings by number.
- flexRadios (object): Flex radio settings.
- dot11be (object): 802.11be settings
"""

kwargs.update(locals())
Expand Down Expand Up @@ -2446,6 +2449,7 @@ def updateNetworkWirelessRfProfile(self, networkId: str, rfProfileId: str, **kwa
"transmission",
"perSsidSettings",
"flexRadios",
"dot11be",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

Expand Down Expand Up @@ -5472,6 +5476,49 @@ def getOrganizationAssuranceWirelessExperienceMostImpactedNetworks(self, organiz

return self._session.get(metadata, resource, params)

def getOrganizationAssuranceWirelessExperienceMostImpactedXMs(self, organizationId: str, **kwargs):
"""
**Returns the most impacted wireless experience metrics and the top failure contributor for each metric/network pair.**
https://developer.cisco.com/meraki/api-v1/#!get-organization-assurance-wireless-experience-most-impacted-x-ms

- organizationId (string): Organization ID
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 14 days from today.
- t1 (string): The end of the timespan for the data. t1 can be a maximum of 14 days after t0.
- timespan (number): The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be greater than or equal to 15 minutes and be less than or equal to 14 days. The default is 2 hours.
- limit (integer): Number of most impacted XMs to return. Default is 5. Maximum is 10.
"""

kwargs.update(locals())

if "limit" in kwargs:
options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
assert kwargs["limit"] in options, f'''"limit" cannot be "{kwargs["limit"]}", & must be set to one of: {options}'''

metadata = {
"tags": ["wireless", "configure", "experience", "mostImpactedXMs"],
"operation": "getOrganizationAssuranceWirelessExperienceMostImpactedXMs",
}
organizationId = urllib.parse.quote(str(organizationId), safe="")
resource = f"/organizations/{organizationId}/assurance/wireless/experience/mostImpactedXMs"

query_params = [
"t0",
"t1",
"timespan",
"limit",
]
params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params}

if self._session._validate_kwargs:
all_params = query_params
invalid = [k for k in kwargs if k.strip() not in all_params and k != "self"]
if invalid and self._session._logger:
self._session._logger.warning(
f"getOrganizationAssuranceWirelessExperienceMostImpactedXMs: ignoring unrecognized kwargs: {invalid}"
)

return self._session.get(metadata, resource, params)

def getOrganizationAssuranceWirelessExperienceSuccessfulConnectsByNetwork(
self, organizationId: str, total_pages=1, direction="next", **kwargs
):
Expand Down Expand Up @@ -6762,6 +6809,8 @@ def getOrganizationAssuranceWirelessExperienceTimeToConnectInsightsByNetwork(
- ssidNumbers (array): Filter results by SSID number.
- bands (array): Filter results by band.
- contributor (string): Contributor for which to retrieve insights. If not specified, returns overall insights.
- subContributor (string): Sub-contributor for which to retrieve insights. If not specified, returns all sub contributor insights.
- insights (string): Insights version to use.
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 14 days from today.
- t1 (string): The end of the timespan for the data. t1 can be a maximum of 14 days after t0.
- timespan (number): The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be greater than or equal to 15 minutes and be less than or equal to 14 days. The default is 2 hours.
Expand All @@ -6777,6 +6826,11 @@ def getOrganizationAssuranceWirelessExperienceTimeToConnectInsightsByNetwork(
assert kwargs["contributor"] in options, (
f'''"contributor" cannot be "{kwargs["contributor"]}", & must be set to one of: {options}'''
)
if "insights" in kwargs:
options = ["1", "2"]
assert kwargs["insights"] in options, (
f'''"insights" cannot be "{kwargs["insights"]}", & must be set to one of: {options}'''
)

metadata = {
"tags": ["wireless", "configure", "experience", "timeToConnect", "insights", "byNetwork"],
Expand All @@ -6791,6 +6845,8 @@ def getOrganizationAssuranceWirelessExperienceTimeToConnectInsightsByNetwork(
"ssidNumbers",
"bands",
"contributor",
"subContributor",
"insights",
"t0",
"t1",
"timespan",
Expand Down
2 changes: 1 addition & 1 deletion meraki/api/appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ def updateDeviceApplianceInterfacesPort(self, serial: str, number: str, **kwargs

def getDeviceAppliancePerformance(self, serial: str, **kwargs):
"""
**Return the performance score for a single MX**
**Return the performance score for a single Secure Appliance or Secure Router**
https://developer.cisco.com/meraki/api-v1/#!get-device-appliance-performance

- serial (string): Serial
Expand Down
79 changes: 79 additions & 0 deletions meraki/api/batch/organizations.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,37 @@ class ActionBatchOrganizations(object):
def __init__(self):
super(ActionBatchOrganizations, self).__init__()

def updateOrganization(self, organizationId: str, **kwargs):
"""
**Update an organization**
https://developer.cisco.com/meraki/api-v1/#!update-organization

- organizationId (string): Organization ID
- name (string): The name of the organization
- management (object): Information about the organization's management system
- api (object): API-specific settings
- privacy (object): Privacy-related settings for the organization.
"""

kwargs.update(locals())

organizationId = urllib.parse.quote(str(organizationId), safe="")
resource = f"/organizations/{organizationId}"

body_params = [
"name",
"management",
"api",
"privacy",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}
action = {
"resource": resource,
"operation": "update",
"body": payload,
}
return action

def createOrganizationAdaptivePolicyAcl(self, organizationId: str, name: str, rules: list, ipVersion: str, **kwargs):
"""
**Creates new adaptive policy ACL**
Expand Down Expand Up @@ -2999,6 +3030,54 @@ def updateOrganizationSaseSite(self, organizationId: str, siteId: str, **kwargs)
}
return action

def updateOrganizationSnmp(self, organizationId: str, **kwargs):
"""
**Update the SNMP settings for an organization**
https://developer.cisco.com/meraki/api-v1/#!update-organization-snmp

- organizationId (string): Organization ID
- v2cEnabled (boolean): Boolean indicating whether SNMP version 2c is enabled for the organization.
- v3Enabled (boolean): Boolean indicating whether SNMP version 3 is enabled for the organization.
- v3AuthMode (string): The SNMP version 3 authentication mode. Can be either 'MD5' or 'SHA'.
- v3AuthPass (string): The SNMP version 3 authentication password. Must be at least 8 characters if specified.
- v3PrivMode (string): The SNMP version 3 privacy mode. Can be either 'DES' or 'AES128'.
- v3PrivPass (string): The SNMP version 3 privacy password. Must be at least 8 characters if specified.
- peerIps (array): The list of IPv4 addresses that are allowed to access the SNMP server.
"""

kwargs.update(locals())

if "v3AuthMode" in kwargs:
options = ["MD5", "SHA"]
assert kwargs["v3AuthMode"] in options, (
f'''"v3AuthMode" cannot be "{kwargs["v3AuthMode"]}", & must be set to one of: {options}'''
)
if "v3PrivMode" in kwargs:
options = ["AES128", "DES"]
assert kwargs["v3PrivMode"] in options, (
f'''"v3PrivMode" cannot be "{kwargs["v3PrivMode"]}", & must be set to one of: {options}'''
)

organizationId = urllib.parse.quote(str(organizationId), safe="")
resource = f"/organizations/{organizationId}/snmp"

body_params = [
"v2cEnabled",
"v3Enabled",
"v3AuthMode",
"v3AuthPass",
"v3PrivMode",
"v3PrivPass",
"peerIps",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}
action = {
"resource": resource,
"operation": "update",
"body": payload,
}
return action

def deleteOrganizationSplashAsset(self, organizationId: str, id: str):
"""
**Delete a Splash Theme Asset**
Expand Down
4 changes: 4 additions & 0 deletions meraki/api/batch/wireless.py
Original file line number Diff line number Diff line change
Expand Up @@ -672,6 +672,7 @@ def createNetworkWirelessRfProfile(self, networkId: str, name: str, bandSelectio
- transmission (object): Settings related to radio transmission.
- perSsidSettings (object): Per-SSID radio settings by number.
- flexRadios (object): Flex radio settings.
- dot11be (object): 802.11be settings
"""

kwargs.update(locals())
Expand Down Expand Up @@ -702,6 +703,7 @@ def createNetworkWirelessRfProfile(self, networkId: str, name: str, bandSelectio
"transmission",
"perSsidSettings",
"flexRadios",
"dot11be",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}
action = {
Expand Down Expand Up @@ -731,6 +733,7 @@ def updateNetworkWirelessRfProfile(self, networkId: str, rfProfileId: str, **kwa
- transmission (object): Settings related to radio transmission.
- perSsidSettings (object): Per-SSID radio settings by number.
- flexRadios (object): Flex radio settings.
- dot11be (object): 802.11be settings
"""

kwargs.update(locals())
Expand Down Expand Up @@ -764,6 +767,7 @@ def updateNetworkWirelessRfProfile(self, networkId: str, rfProfileId: str, **kwa
"transmission",
"perSsidSettings",
"flexRadios",
"dot11be",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}
action = {
Expand Down
56 changes: 56 additions & 0 deletions meraki/api/wireless.py
Original file line number Diff line number Diff line change
Expand Up @@ -2344,6 +2344,7 @@ def createNetworkWirelessRfProfile(self, networkId: str, name: str, bandSelectio
- transmission (object): Settings related to radio transmission.
- perSsidSettings (object): Per-SSID radio settings by number.
- flexRadios (object): Flex radio settings.
- dot11be (object): 802.11be settings
"""

kwargs.update(locals())
Expand Down Expand Up @@ -2378,6 +2379,7 @@ def createNetworkWirelessRfProfile(self, networkId: str, name: str, bandSelectio
"transmission",
"perSsidSettings",
"flexRadios",
"dot11be",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

Expand Down Expand Up @@ -2409,6 +2411,7 @@ def updateNetworkWirelessRfProfile(self, networkId: str, rfProfileId: str, **kwa
- transmission (object): Settings related to radio transmission.
- perSsidSettings (object): Per-SSID radio settings by number.
- flexRadios (object): Flex radio settings.
- dot11be (object): 802.11be settings
"""

kwargs.update(locals())
Expand Down Expand Up @@ -2446,6 +2449,7 @@ def updateNetworkWirelessRfProfile(self, networkId: str, rfProfileId: str, **kwa
"transmission",
"perSsidSettings",
"flexRadios",
"dot11be",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

Expand Down Expand Up @@ -5472,6 +5476,49 @@ def getOrganizationAssuranceWirelessExperienceMostImpactedNetworks(self, organiz

return self._session.get(metadata, resource, params)

def getOrganizationAssuranceWirelessExperienceMostImpactedXMs(self, organizationId: str, **kwargs):
"""
**Returns the most impacted wireless experience metrics and the top failure contributor for each metric/network pair.**
https://developer.cisco.com/meraki/api-v1/#!get-organization-assurance-wireless-experience-most-impacted-x-ms

- organizationId (string): Organization ID
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 14 days from today.
- t1 (string): The end of the timespan for the data. t1 can be a maximum of 14 days after t0.
- timespan (number): The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be greater than or equal to 15 minutes and be less than or equal to 14 days. The default is 2 hours.
- limit (integer): Number of most impacted XMs to return. Default is 5. Maximum is 10.
"""

kwargs.update(locals())

if "limit" in kwargs:
options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
assert kwargs["limit"] in options, f'''"limit" cannot be "{kwargs["limit"]}", & must be set to one of: {options}'''

metadata = {
"tags": ["wireless", "configure", "experience", "mostImpactedXMs"],
"operation": "getOrganizationAssuranceWirelessExperienceMostImpactedXMs",
}
organizationId = urllib.parse.quote(str(organizationId), safe="")
resource = f"/organizations/{organizationId}/assurance/wireless/experience/mostImpactedXMs"

query_params = [
"t0",
"t1",
"timespan",
"limit",
]
params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params}

if self._session._validate_kwargs:
all_params = query_params
invalid = [k for k in kwargs if k.strip() not in all_params and k != "self"]
if invalid and self._session._logger:
self._session._logger.warning(
f"getOrganizationAssuranceWirelessExperienceMostImpactedXMs: ignoring unrecognized kwargs: {invalid}"
)

return self._session.get(metadata, resource, params)

def getOrganizationAssuranceWirelessExperienceSuccessfulConnectsByNetwork(
self, organizationId: str, total_pages=1, direction="next", **kwargs
):
Expand Down Expand Up @@ -6762,6 +6809,8 @@ def getOrganizationAssuranceWirelessExperienceTimeToConnectInsightsByNetwork(
- ssidNumbers (array): Filter results by SSID number.
- bands (array): Filter results by band.
- contributor (string): Contributor for which to retrieve insights. If not specified, returns overall insights.
- subContributor (string): Sub-contributor for which to retrieve insights. If not specified, returns all sub contributor insights.
- insights (string): Insights version to use.
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 14 days from today.
- t1 (string): The end of the timespan for the data. t1 can be a maximum of 14 days after t0.
- timespan (number): The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be greater than or equal to 15 minutes and be less than or equal to 14 days. The default is 2 hours.
Expand All @@ -6777,6 +6826,11 @@ def getOrganizationAssuranceWirelessExperienceTimeToConnectInsightsByNetwork(
assert kwargs["contributor"] in options, (
f'''"contributor" cannot be "{kwargs["contributor"]}", & must be set to one of: {options}'''
)
if "insights" in kwargs:
options = ["1", "2"]
assert kwargs["insights"] in options, (
f'''"insights" cannot be "{kwargs["insights"]}", & must be set to one of: {options}'''
)

metadata = {
"tags": ["wireless", "configure", "experience", "timeToConnect", "insights", "byNetwork"],
Expand All @@ -6791,6 +6845,8 @@ def getOrganizationAssuranceWirelessExperienceTimeToConnectInsightsByNetwork(
"ssidNumbers",
"bands",
"contributor",
"subContributor",
"insights",
"t0",
"t1",
"timespan",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "meraki"
version = "4.2.0b1"
version = "4.2.0b2"
description = "Cisco Meraki Dashboard API library"
authors = [
{name = "Cisco Meraki", email = "api-feedback@meraki.net"}
Expand Down
Loading
Loading