diff --git a/docs/generation-report.md b/docs/generation-report.md index de544fd..080239d 100644 --- a/docs/generation-report.md +++ b/docs/generation-report.md @@ -1,5 +1,11 @@ # Generation Report +## 2026-09-02 | Library v4.5.0b0 | API 1.74.0-beta.0 + + +No Python keyword parameter conflicts detected. + + ## 2026-08-26 | Library v4.4.0b3 | API 1.73.0-beta.3 diff --git a/meraki/__init__.py b/meraki/__init__.py index 13be47d..3782159 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.73.0-beta.3" +__api_version__ = "1.74.0-beta.0" __all__ = [ "APIError", diff --git a/meraki/_version.py b/meraki/_version.py index ed916ea..4fa9924 100644 --- a/meraki/_version.py +++ b/meraki/_version.py @@ -1 +1 @@ -__version__ = "4.4.0b3" +__version__ = "4.5.0b0" diff --git a/meraki/aio/api/appliance.py b/meraki/aio/api/appliance.py index dc9e779..4487d92 100644 --- a/meraki/aio/api/appliance.py +++ b/meraki/aio/api/appliance.py @@ -1190,7 +1190,7 @@ def updateNetworkApplianceInterfacesL3(self, networkId: str, interfaceId: str, * - networkId (string): Network ID - interfaceId (string): Interface ID - - port (object): Port configuration + - port (object): Port configuration. Set to null to remove the port association. - ipv4 (object): IPv4 configuration - vrf (object): VRF assignment for the L3 interface """ diff --git a/meraki/aio/api/wireless.py b/meraki/aio/api/wireless.py index fc73b78..46d15e6 100644 --- a/meraki/aio/api/wireless.py +++ b/meraki/aio/api/wireless.py @@ -5479,6 +5479,49 @@ def getOrganizationAssuranceWirelessExperienceMetricsOverviewHistoryByNetwork( return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationAssuranceWirelessExperienceMostImpactedClientNetworks(self, organizationId: str, **kwargs): + """ + **Returns the wireless experience networks with the most impacted clients, including client counts, impacted experience metrics, and the top failure contributor for each network.** + https://developer.cisco.com/meraki/api-v1/#!get-organization-assurance-wireless-experience-most-impacted-client-networks + + - 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 networks with the most impacted clients 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", "mostImpactedClientNetworks"], + "operation": "getOrganizationAssuranceWirelessExperienceMostImpactedClientNetworks", + } + organizationId = urllib.parse.quote(str(organizationId), safe="") + resource = f"/organizations/{organizationId}/assurance/wireless/experience/mostImpactedClientNetworks" + + 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"getOrganizationAssuranceWirelessExperienceMostImpactedClientNetworks: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.get(metadata, resource, params) + def getOrganizationAssuranceWirelessExperienceMostImpactedNetworks(self, organizationId: str, **kwargs): """ **Returns the most impacted wireless experience networks with client counts, impacted experience metrics, and the top failure contributor for each network.** diff --git a/meraki/api/appliance.py b/meraki/api/appliance.py index 6f5a196..6031214 100644 --- a/meraki/api/appliance.py +++ b/meraki/api/appliance.py @@ -1190,7 +1190,7 @@ def updateNetworkApplianceInterfacesL3(self, networkId: str, interfaceId: str, * - networkId (string): Network ID - interfaceId (string): Interface ID - - port (object): Port configuration + - port (object): Port configuration. Set to null to remove the port association. - ipv4 (object): IPv4 configuration - vrf (object): VRF assignment for the L3 interface """ diff --git a/meraki/api/batch/appliance.py b/meraki/api/batch/appliance.py index cd6afb0..f897506 100644 --- a/meraki/api/batch/appliance.py +++ b/meraki/api/batch/appliance.py @@ -335,7 +335,7 @@ def updateNetworkApplianceInterfacesL3(self, networkId: str, interfaceId: str, * - networkId (string): Network ID - interfaceId (string): Interface ID - - port (object): Port configuration + - port (object): Port configuration. Set to null to remove the port association. - ipv4 (object): IPv4 configuration - vrf (object): VRF assignment for the L3 interface """ diff --git a/meraki/api/batch/networks.py b/meraki/api/batch/networks.py index 61cf541..98edcaf 100644 --- a/meraki/api/batch/networks.py +++ b/meraki/api/batch/networks.py @@ -1182,7 +1182,7 @@ def createNetworkWebhooksPayloadTemplate(self, networkId: str, name: str, **kwar def deleteNetworkWebhooksPayloadTemplate(self, networkId: str, payloadTemplateId: str): """ - **Destroy a webhook payload template for a network. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005', 'wpt_00006', 'wpt_00007' or 'wpt_00008')** + **Destroy a webhook payload template for a network. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005', 'wpt_00006', 'wpt_00007', 'wpt_00008' or 'wpt_00009')** https://developer.cisco.com/meraki/api-v1/#!delete-network-webhooks-payload-template - networkId (string): Network ID diff --git a/meraki/api/batch/organizations.py b/meraki/api/batch/organizations.py index 73cce8f..b5a9887 100644 --- a/meraki/api/batch/organizations.py +++ b/meraki/api/batch/organizations.py @@ -3740,7 +3740,7 @@ def createOrganizationWebhooksPayloadTemplate(self, organizationId: str, name: s def deleteOrganizationWebhooksPayloadTemplate(self, organizationId: str, payloadTemplateId: str): """ - **Destroy a webhook payload template for an organization. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005', 'wpt_00006', 'wpt_00007' or 'wpt_00008')** + **Destroy a webhook payload template for an organization. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005', 'wpt_00006', 'wpt_00007', 'wpt_00008' or 'wpt_00009')** https://developer.cisco.com/meraki/api-v1/#!delete-organization-webhooks-payload-template - organizationId (string): Organization ID diff --git a/meraki/api/wireless.py b/meraki/api/wireless.py index 6f2d31f..19323bb 100644 --- a/meraki/api/wireless.py +++ b/meraki/api/wireless.py @@ -5479,6 +5479,49 @@ def getOrganizationAssuranceWirelessExperienceMetricsOverviewHistoryByNetwork( return self._session.get_pages(metadata, resource, params, total_pages, direction) + def getOrganizationAssuranceWirelessExperienceMostImpactedClientNetworks(self, organizationId: str, **kwargs): + """ + **Returns the wireless experience networks with the most impacted clients, including client counts, impacted experience metrics, and the top failure contributor for each network.** + https://developer.cisco.com/meraki/api-v1/#!get-organization-assurance-wireless-experience-most-impacted-client-networks + + - 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 networks with the most impacted clients 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", "mostImpactedClientNetworks"], + "operation": "getOrganizationAssuranceWirelessExperienceMostImpactedClientNetworks", + } + organizationId = urllib.parse.quote(str(organizationId), safe="") + resource = f"/organizations/{organizationId}/assurance/wireless/experience/mostImpactedClientNetworks" + + 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"getOrganizationAssuranceWirelessExperienceMostImpactedClientNetworks: ignoring unrecognized kwargs: {invalid}" + ) + + return self._session.get(metadata, resource, params) + def getOrganizationAssuranceWirelessExperienceMostImpactedNetworks(self, organizationId: str, **kwargs): """ **Returns the most impacted wireless experience networks with client counts, impacted experience metrics, and the top failure contributor for each network.** diff --git a/pyproject.toml b/pyproject.toml index 8150641..91763cf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "meraki" -version = "4.4.0b3" +version = "4.5.0b0" description = "Cisco Meraki Dashboard API library" authors = [ {name = "Cisco Meraki", email = "api-feedback@meraki.net"} diff --git a/uv.lock b/uv.lock index 212bc27..806dd71 100644 --- a/uv.lock +++ b/uv.lock @@ -549,7 +549,7 @@ wheels = [ [[package]] name = "meraki" -version = "4.4.0b3" +version = "4.5.0b0" source = { editable = "." } dependencies = [ { name = "aiohttp" },