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-10 | Library v4.1.0b1 | API 1.71.0-beta.1


No Python keyword parameter conflicts detected.


## 2026-05-27 | Library v4.1.0b3 | API 1.70.0-beta.3


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.70.0-beta.3"
__api_version__ = "1.71.0-beta.1"

__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.1.0b3"
__version__ = "4.1.0b1"
2 changes: 1 addition & 1 deletion meraki/aio/api/appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -2815,7 +2815,7 @@ def getNetworkApplianceUplinksUsageHistory(self, networkId: str, **kwargs):
https://developer.cisco.com/meraki/api-v1/#!get-network-appliance-uplinks-usage-history

- networkId (string): Network ID
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 365 days from today.
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 30 days from today.
- t1 (string): The end of the timespan for the data. t1 can be a maximum of 31 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 less than or equal to 31 days. The default is 10 minutes.
- resolution (integer): The time resolution in seconds for returned data. The valid resolutions are: 60, 300, 600, 1800, 3600, 86400. The default is 60.
Expand Down
471 changes: 471 additions & 0 deletions meraki/aio/api/assistant.py

Large diffs are not rendered by default.

120 changes: 52 additions & 68 deletions meraki/aio/api/devices.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ def updateDeviceCellularSims(self, serial: str, **kwargs):

- serial (string): Serial
- sims (array): List of SIMs. If a SIM was previously configured and not specified in this request, it will remain unchanged.
- simOrdering (array): Specifies the ordering of all SIMs for an MG: primary, secondary, and not-in-use (when applicable). It's required for devices with 3 or more SIMs and can be used in place of 'isPrimary' for dual-SIM devices. To indicate eSIM, use 'sim3'. Sim failover will occur only between primary and secondary sim slots.
- simOrdering (array): Specifies the ordering of all SIMs for an MG: primary, secondary, and not-in-use (when applicable). It's required for devices with 3 or more SIMs and can be used in place of 'isPrimary' for dual-SIM devices. Use the raw eSIM slot value for the device, such as 'sim2' or 'sim3'. Sim failover will occur only between primary and secondary sim slots.
- simFailover (object): SIM Failover settings.
"""

Expand Down Expand Up @@ -196,7 +196,7 @@ def createDeviceCellularUplinksBandsMasksUpdate(self, serial: str, slot: str, ty
- serial (string): Serial
- slot (string): Required parameter for the SIM slot to update the cellular band mask for
- type (string): Required parameter for the signal type to update the cellular band mask for
- masked (array): Required parameter for the band identifiers to mask for the given SIM slot and signal type. For LTE use bands identifiers like '30' and for 5G use band identifiers like 'n30'. Maximum 256 bands.
- masked (array): Required parameter for the band identifiers to mask for the given SIM slot and signal type. For LTE use bands identifiers like '30', for 5G use band identifiers like 'n30', or use 'all' to mask all bands for that signal type. Maximum 256 bands.
"""

kwargs = locals()
Expand Down Expand Up @@ -232,72 +232,6 @@ def createDeviceCellularUplinksBandsMasksUpdate(self, serial: str, slot: str, ty

return self._session.post(metadata, resource, payload)

def updateDeviceCliConfigFavorite(self, serial: str, configId: str, favorite: bool, **kwargs):
"""
**Favorite or unfavorite a configuration for an IOS-XE device**
https://developer.cisco.com/meraki/api-v1/#!update-device-cli-config-favorite

- serial (string): Serial
- configId (string): Config ID
- favorite (boolean): Whether the config should be favorited
"""

kwargs = locals()

metadata = {
"tags": ["devices", "configure", "cli", "configs"],
"operation": "updateDeviceCliConfigFavorite",
}
serial = urllib.parse.quote(str(serial), safe="")
configId = urllib.parse.quote(str(configId), safe="")
resource = f"/devices/{serial}/cli/configs/{configId}"

body_params = [
"favorite",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

if self._session._validate_kwargs:
all_params = [] + body_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"updateDeviceCliConfigFavorite: ignoring unrecognized kwargs: {invalid}")

return self._session.put(metadata, resource, payload)

def createDeviceConfigRestore(self, serial: str, configId: str, **kwargs):
"""
**Create a restore request for a specific config history record**
https://developer.cisco.com/meraki/api-v1/#!create-device-config-restore

- serial (string): Serial
- configId (string): Config ID
- scheduledFor (string): Requested ISO 8601 UTC timestamp for when the restore should be scheduled
"""

kwargs.update(locals())

metadata = {
"tags": ["devices", "configure", "cli", "configs"],
"operation": "createDeviceConfigRestore",
}
serial = urllib.parse.quote(str(serial), safe="")
configId = urllib.parse.quote(str(configId), safe="")
resource = f"/devices/{serial}/cli/configs/{configId}/restores"

body_params = [
"scheduledFor",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

if self._session._validate_kwargs:
all_params = [] + body_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"createDeviceConfigRestore: ignoring unrecognized kwargs: {invalid}")

return self._session.post(metadata, resource, payload)

def getDeviceClients(self, serial: str, **kwargs):
"""
**List the clients of a device, up to a maximum of a month ago**
Expand Down Expand Up @@ -964,6 +898,56 @@ def getDeviceLiveToolsPortsStatus(self, serial: str, jobId: str):

return self._session.get(metadata, resource)

def createDeviceLiveToolsPowerUsage(self, serial: str, **kwargs):
"""
**Enqueues a live tool job that retrieves details about a device's overall power usage**
https://developer.cisco.com/meraki/api-v1/#!create-device-live-tools-power-usage

- serial (string): Serial
- callback (object): Details for the callback. Please include either an httpServerId OR url and sharedSecret
"""

kwargs.update(locals())

metadata = {
"tags": ["devices", "liveTools", "power", "usage"],
"operation": "createDeviceLiveToolsPowerUsage",
}
serial = urllib.parse.quote(str(serial), safe="")
resource = f"/devices/{serial}/liveTools/power/usage"

body_params = [
"callback",
]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

if self._session._validate_kwargs:
all_params = [] + body_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"createDeviceLiveToolsPowerUsage: ignoring unrecognized kwargs: {invalid}")

return self._session.post(metadata, resource, payload)

def getDeviceLiveToolsPowerUsage(self, serial: str, jobId: str):
"""
**Retrieve the status and results of a previously created live tool job fetching details about a device's overall power usage.**
https://developer.cisco.com/meraki/api-v1/#!get-device-live-tools-power-usage

- serial (string): Serial
- jobId (string): Job ID
"""

metadata = {
"tags": ["devices", "liveTools", "power", "usage"],
"operation": "getDeviceLiveToolsPowerUsage",
}
serial = urllib.parse.quote(str(serial), safe="")
jobId = urllib.parse.quote(str(jobId), safe="")
resource = f"/devices/{serial}/liveTools/power/usage/{jobId}"

return self._session.get(metadata, resource)

def createDeviceLiveToolsReboot(self, serial: str, **kwargs):
"""
**Enqueue a job to reboot a device**
Expand Down
Loading
Loading