From c972935a6969bb4eaef977a7ac0f0ecf3c75d099 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 16 Sep 2026 14:20:31 +0000 Subject: [PATCH] Auto-generated library v4.5.0b2 for API v1.74.0-beta.2. --- docs/generation-report.md | 6 +++ meraki/__init__.py | 2 +- meraki/_version.py | 2 +- meraki/aio/api/appliance.py | 2 +- meraki/aio/api/switch.py | 45 +++++++++++++++++++ meraki/aio/api/wireless.py | 87 ++++++++++++++++++++++++++++++++++++ meraki/api/appliance.py | 2 +- meraki/api/batch/switch.py | 4 ++ meraki/api/batch/wireless.py | 25 +++++++++++ meraki/api/switch.py | 45 +++++++++++++++++++ meraki/api/wireless.py | 87 ++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 13 files changed, 305 insertions(+), 6 deletions(-) diff --git a/docs/generation-report.md b/docs/generation-report.md index d0bf55b..79af6d5 100644 --- a/docs/generation-report.md +++ b/docs/generation-report.md @@ -1,5 +1,11 @@ # Generation Report +## 2026-09-16 | Library v4.5.0b2 | API 1.74.0-beta.2 + + +No Python keyword parameter conflicts detected. + + ## 2026-09-09 | Library v4.5.0b1 | API 1.74.0-beta.1 diff --git a/meraki/__init__.py b/meraki/__init__.py index 4feee9c..ce757f6 100644 --- a/meraki/__init__.py +++ b/meraki/__init__.py @@ -52,7 +52,7 @@ from meraki.exceptions import APIError, APIKeyError, APIResponseError, AsyncAPIError from meraki.rest_session import RestSession -__api_version__ = "1.74.0-beta.1" +__api_version__ = "1.74.0-beta.2" __all__ = [ "APIError", diff --git a/meraki/_version.py b/meraki/_version.py index 84faed0..6e49aee 100644 --- a/meraki/_version.py +++ b/meraki/_version.py @@ -1 +1 @@ -__version__ = "4.5.0b1" +__version__ = "4.5.0b2" diff --git a/meraki/aio/api/appliance.py b/meraki/aio/api/appliance.py index c071c42..8b0b97c 100644 --- a/meraki/aio/api/appliance.py +++ b/meraki/aio/api/appliance.py @@ -5704,7 +5704,7 @@ def getOrganizationApplianceUmbrellaPoliciesByNetwork( def getOrganizationApplianceUplinkStatuses(self, organizationId: str, total_pages=1, direction="next", **kwargs): """ - **List the uplink status of every Meraki MX and Z series appliances in the organization** + **List the uplink status of every Meraki MX appliance, Z series appliance, and Secure Router in the organization** https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-uplink-statuses - organizationId (string): Organization ID diff --git a/meraki/aio/api/switch.py b/meraki/aio/api/switch.py index f96d1d0..87a5106 100644 --- a/meraki/aio/api/switch.py +++ b/meraki/aio/api/switch.py @@ -3597,6 +3597,8 @@ def updateOrganizationConfigTemplateSwitchProfilePort( - tags (array): The list of tags of the switch template port. - enabled (boolean): The status of the switch template port. - poeEnabled (boolean): The PoE status of the switch template port. + - perpetualPoe (object): Perpetual PoE settings for the switch template port. + - fastPoe (object): Fast PoE settings for the switch template port. - type (string): The type of the switch template port ('access', 'trunk', 'stack', 'routed', 'svl' or 'dad'). - vlan (integer): The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports. - voiceVlan (integer): The voice VLAN of the switch template port. Only applicable to access ports. @@ -3660,6 +3662,8 @@ def updateOrganizationConfigTemplateSwitchProfilePort( "tags", "enabled", "poeEnabled", + "perpetualPoe", + "fastPoe", "type", "vlan", "voiceVlan", @@ -7362,6 +7366,47 @@ def getOrganizationSwitchRoutingStaticRoutes(self, organizationId: str, total_pa return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationSwitchSoftwareUpdatesRetriesCandidates(self, organizationId: str, **kwargs): + """ + **List switch update retry candidates in an organization.** + https://developer.cisco.com/meraki/api-v1/#!get-organization-switch-software-updates-retries-candidates + + - organizationId (string): Organization ID + - networkIds (array): Optional array of network IDs used to limit results to specific networks in the organization. + """ + + kwargs.update(locals()) + + metadata = { + "tags": ["switch", "configure", "software", "updates", "retries", "candidates"], + "operation": "getOrganizationSwitchSoftwareUpdatesRetriesCandidates", + } + organizationId = urllib.parse.quote(str(organizationId), safe="") + resource = f"/organizations/{organizationId}/switch/software/updates/retries/candidates" + + query_params = [ + "networkIds", + ] + params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params} + + array_params = [ + "networkIds", + ] + for k, v in kwargs.items(): + if k.strip() in array_params: + params[f"{k.strip()}[]"] = kwargs[f"{k}"] + params.pop(k.strip()) + + if self._session._validate_kwargs: + all_params = query_params + array_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"getOrganizationSwitchSoftwareUpdatesRetriesCandidates: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.get(metadata, resource, params) + def getOrganizationSwitchSpanningTree(self, organizationId: str, total_pages=1, direction="next", **kwargs): """ **Returns Spanning Tree configuration settings** diff --git a/meraki/aio/api/wireless.py b/meraki/aio/api/wireless.py index ab0d8b5..c1d7622 100644 --- a/meraki/aio/api/wireless.py +++ b/meraki/aio/api/wireless.py @@ -267,6 +267,39 @@ def getDeviceWirelessLatencyStats(self, serial: str, **kwargs): return self._session.get(metadata, resource, params) + def updateDeviceWirelessMeshGatewaysPreferred(self, serial: str, gateways: list, **kwargs): + """ + **Replace the complete list of preferred gateways for this device** + https://developer.cisco.com/meraki/api-v1/#!update-device-wireless-mesh-gateways-preferred + + - serial (string): Serial + - gateways (array): Complete list of preferred gateways, ordered by priority. Each gateway must specify exactly one of serial or mac. Send an empty array to clear the list. Maximum: 2 gateways. + """ + + kwargs = locals() + + metadata = { + "tags": ["wireless", "configure", "mesh", "gateways", "preferred"], + "operation": "updateDeviceWirelessMeshGatewaysPreferred", + } + serial = urllib.parse.quote(str(serial), safe="") + resource = f"/devices/{serial}/wireless/mesh/gateways/preferred" + + body_params = [ + "gateways", + ] + 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"updateDeviceWirelessMeshGatewaysPreferred: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.put(metadata, resource, payload) + def getDeviceWirelessRadioAfcPosition(self, serial: str): """ **Return the position for a wireless device** @@ -9798,6 +9831,60 @@ def getOrganizationWirelessLocationWayfindingByNetwork( return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationWirelessMeshGatewaysPreferredByDevice( + self, organizationId: str, total_pages=1, direction="next", **kwargs + ): + """ + **List preferred gateways for this organization by device** + https://developer.cisco.com/meraki/api-v1/#!get-organization-wireless-mesh-gateways-preferred-by-device + + - organizationId (string): Organization ID + - total_pages (integer or string): use with perPage to get total results up to total_pages*perPage; -1 or "all" for all pages + - direction (string): direction to paginate, either "next" (default) or "prev" page + - perPage (integer): The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000. + - startingAfter (string): A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it. + - endingBefore (string): A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it. + - networkIds (array): Optional filter for preferred gateways by exact network ID. Maximum: 100 network IDs. + - serials (array): Optional filter for preferred gateways by exact device serial number. Maximum: 100 serials. + """ + + kwargs.update(locals()) + + metadata = { + "tags": ["wireless", "configure", "mesh", "gateways", "preferred", "byDevice"], + "operation": "getOrganizationWirelessMeshGatewaysPreferredByDevice", + } + organizationId = urllib.parse.quote(str(organizationId), safe="") + resource = f"/organizations/{organizationId}/wireless/mesh/gateways/preferred/byDevice" + + query_params = [ + "perPage", + "startingAfter", + "endingBefore", + "networkIds", + "serials", + ] + params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params} + + array_params = [ + "networkIds", + "serials", + ] + for k, v in kwargs.items(): + if k.strip() in array_params: + params[f"{k.strip()}[]"] = kwargs[f"{k}"] + params.pop(k.strip()) + + if self._session._validate_kwargs: + all_params = query_params + array_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"getOrganizationWirelessMeshGatewaysPreferredByDevice: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationWirelessMqttSettings(self, organizationId: str, total_pages=1, direction="next", **kwargs): """ **Return MQTT Settings for networks** diff --git a/meraki/api/appliance.py b/meraki/api/appliance.py index 7c43c93..a04b469 100644 --- a/meraki/api/appliance.py +++ b/meraki/api/appliance.py @@ -5704,7 +5704,7 @@ def getOrganizationApplianceUmbrellaPoliciesByNetwork( def getOrganizationApplianceUplinkStatuses(self, organizationId: str, total_pages=1, direction="next", **kwargs): """ - **List the uplink status of every Meraki MX and Z series appliances in the organization** + **List the uplink status of every Meraki MX appliance, Z series appliance, and Secure Router in the organization** https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-uplink-statuses - organizationId (string): Organization ID diff --git a/meraki/api/batch/switch.py b/meraki/api/batch/switch.py index 3a5567b..4828cec 100644 --- a/meraki/api/batch/switch.py +++ b/meraki/api/batch/switch.py @@ -2058,6 +2058,8 @@ def updateOrganizationConfigTemplateSwitchProfilePort( - tags (array): The list of tags of the switch template port. - enabled (boolean): The status of the switch template port. - poeEnabled (boolean): The PoE status of the switch template port. + - perpetualPoe (object): Perpetual PoE settings for the switch template port. + - fastPoe (object): Fast PoE settings for the switch template port. - type (string): The type of the switch template port ('access', 'trunk', 'stack', 'routed', 'svl' or 'dad'). - vlan (integer): The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports. - voiceVlan (integer): The voice VLAN of the switch template port. Only applicable to access ports. @@ -2117,6 +2119,8 @@ def updateOrganizationConfigTemplateSwitchProfilePort( "tags", "enabled", "poeEnabled", + "perpetualPoe", + "fastPoe", "type", "vlan", "voiceVlan", diff --git a/meraki/api/batch/wireless.py b/meraki/api/batch/wireless.py index 7596719..7a7c04c 100644 --- a/meraki/api/batch/wireless.py +++ b/meraki/api/batch/wireless.py @@ -91,6 +91,31 @@ def updateDeviceWirelessElectronicShelfLabel(self, serial: str, **kwargs): } return action + def updateDeviceWirelessMeshGatewaysPreferred(self, serial: str, gateways: list, **kwargs): + """ + **Replace the complete list of preferred gateways for this device. Send an empty gateways array to clear the list. The list is ordered by priority and supports at most two gateways. ** + https://developer.cisco.com/meraki/api-v1/#!update-device-wireless-mesh-gateways-preferred + + - serial (string): Serial + - gateways (array): Complete list of preferred gateways, ordered by priority. Each gateway must specify exactly one of serial or mac. Send an empty array to clear the list. Maximum: 2 gateways. + """ + + kwargs = locals() + + serial = urllib.parse.quote(serial, safe="") + resource = f"/devices/{serial}/wireless/mesh/gateways/preferred" + + body_params = [ + "gateways", + ] + 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 updateDeviceWirelessRadioAfcPosition(self, serial: str, **kwargs): """ **Update the position attributes for this device** diff --git a/meraki/api/switch.py b/meraki/api/switch.py index 332dfcc..652a264 100644 --- a/meraki/api/switch.py +++ b/meraki/api/switch.py @@ -3597,6 +3597,8 @@ def updateOrganizationConfigTemplateSwitchProfilePort( - tags (array): The list of tags of the switch template port. - enabled (boolean): The status of the switch template port. - poeEnabled (boolean): The PoE status of the switch template port. + - perpetualPoe (object): Perpetual PoE settings for the switch template port. + - fastPoe (object): Fast PoE settings for the switch template port. - type (string): The type of the switch template port ('access', 'trunk', 'stack', 'routed', 'svl' or 'dad'). - vlan (integer): The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports. - voiceVlan (integer): The voice VLAN of the switch template port. Only applicable to access ports. @@ -3660,6 +3662,8 @@ def updateOrganizationConfigTemplateSwitchProfilePort( "tags", "enabled", "poeEnabled", + "perpetualPoe", + "fastPoe", "type", "vlan", "voiceVlan", @@ -7362,6 +7366,47 @@ def getOrganizationSwitchRoutingStaticRoutes(self, organizationId: str, total_pa return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationSwitchSoftwareUpdatesRetriesCandidates(self, organizationId: str, **kwargs): + """ + **List switch update retry candidates in an organization.** + https://developer.cisco.com/meraki/api-v1/#!get-organization-switch-software-updates-retries-candidates + + - organizationId (string): Organization ID + - networkIds (array): Optional array of network IDs used to limit results to specific networks in the organization. + """ + + kwargs.update(locals()) + + metadata = { + "tags": ["switch", "configure", "software", "updates", "retries", "candidates"], + "operation": "getOrganizationSwitchSoftwareUpdatesRetriesCandidates", + } + organizationId = urllib.parse.quote(str(organizationId), safe="") + resource = f"/organizations/{organizationId}/switch/software/updates/retries/candidates" + + query_params = [ + "networkIds", + ] + params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params} + + array_params = [ + "networkIds", + ] + for k, v in kwargs.items(): + if k.strip() in array_params: + params[f"{k.strip()}[]"] = kwargs[f"{k}"] + params.pop(k.strip()) + + if self._session._validate_kwargs: + all_params = query_params + array_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"getOrganizationSwitchSoftwareUpdatesRetriesCandidates: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.get(metadata, resource, params) + def getOrganizationSwitchSpanningTree(self, organizationId: str, total_pages=1, direction="next", **kwargs): """ **Returns Spanning Tree configuration settings** diff --git a/meraki/api/wireless.py b/meraki/api/wireless.py index c7ce034..f7ef4b9 100644 --- a/meraki/api/wireless.py +++ b/meraki/api/wireless.py @@ -267,6 +267,39 @@ def getDeviceWirelessLatencyStats(self, serial: str, **kwargs): return self._session.get(metadata, resource, params) + def updateDeviceWirelessMeshGatewaysPreferred(self, serial: str, gateways: list, **kwargs): + """ + **Replace the complete list of preferred gateways for this device** + https://developer.cisco.com/meraki/api-v1/#!update-device-wireless-mesh-gateways-preferred + + - serial (string): Serial + - gateways (array): Complete list of preferred gateways, ordered by priority. Each gateway must specify exactly one of serial or mac. Send an empty array to clear the list. Maximum: 2 gateways. + """ + + kwargs = locals() + + metadata = { + "tags": ["wireless", "configure", "mesh", "gateways", "preferred"], + "operation": "updateDeviceWirelessMeshGatewaysPreferred", + } + serial = urllib.parse.quote(str(serial), safe="") + resource = f"/devices/{serial}/wireless/mesh/gateways/preferred" + + body_params = [ + "gateways", + ] + 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"updateDeviceWirelessMeshGatewaysPreferred: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.put(metadata, resource, payload) + def getDeviceWirelessRadioAfcPosition(self, serial: str): """ **Return the position for a wireless device** @@ -9798,6 +9831,60 @@ def getOrganizationWirelessLocationWayfindingByNetwork( return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationWirelessMeshGatewaysPreferredByDevice( + self, organizationId: str, total_pages=1, direction="next", **kwargs + ): + """ + **List preferred gateways for this organization by device** + https://developer.cisco.com/meraki/api-v1/#!get-organization-wireless-mesh-gateways-preferred-by-device + + - organizationId (string): Organization ID + - total_pages (integer or string): use with perPage to get total results up to total_pages*perPage; -1 or "all" for all pages + - direction (string): direction to paginate, either "next" (default) or "prev" page + - perPage (integer): The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000. + - startingAfter (string): A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it. + - endingBefore (string): A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it. + - networkIds (array): Optional filter for preferred gateways by exact network ID. Maximum: 100 network IDs. + - serials (array): Optional filter for preferred gateways by exact device serial number. Maximum: 100 serials. + """ + + kwargs.update(locals()) + + metadata = { + "tags": ["wireless", "configure", "mesh", "gateways", "preferred", "byDevice"], + "operation": "getOrganizationWirelessMeshGatewaysPreferredByDevice", + } + organizationId = urllib.parse.quote(str(organizationId), safe="") + resource = f"/organizations/{organizationId}/wireless/mesh/gateways/preferred/byDevice" + + query_params = [ + "perPage", + "startingAfter", + "endingBefore", + "networkIds", + "serials", + ] + params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params} + + array_params = [ + "networkIds", + "serials", + ] + for k, v in kwargs.items(): + if k.strip() in array_params: + params[f"{k.strip()}[]"] = kwargs[f"{k}"] + params.pop(k.strip()) + + if self._session._validate_kwargs: + all_params = query_params + array_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"getOrganizationWirelessMeshGatewaysPreferredByDevice: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationWirelessMqttSettings(self, organizationId: str, total_pages=1, direction="next", **kwargs): """ **Return MQTT Settings for networks** diff --git a/pyproject.toml b/pyproject.toml index acaa306..ab63b32 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "meraki" -version = "4.5.0b1" +version = "4.5.0b2" description = "Cisco Meraki Dashboard API library" authors = [ {name = "Cisco Meraki", email = "api-feedback@meraki.net"} diff --git a/uv.lock b/uv.lock index 98a0845..82274b9 100644 --- a/uv.lock +++ b/uv.lock @@ -549,7 +549,7 @@ wheels = [ [[package]] name = "meraki" -version = "4.5.0b1" +version = "4.5.0b2" source = { editable = "." } dependencies = [ { name = "aiohttp" },