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-10-17 | Library v4.6.1b0 | API 1.75.1-beta.0


No Python keyword parameter conflicts detected.


## 2026-10-14 | Library v4.6.0b1 | API 1.75.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 @@ -57,7 +57,7 @@
from meraki.exceptions import APIError, APIKeyError, APIResponseError, AsyncAPIError
from meraki.rest_session import RestSession

__api_version__ = "1.75.0-beta.1"
__api_version__ = "1.75.1-beta.0"

__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.6.0b1"
__version__ = "4.6.1b0"
90 changes: 90 additions & 0 deletions meraki/aio/api/appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,45 @@ def createDeviceApplianceVmxAuthenticationToken(self, serial: str):

return self._session.post(metadata, resource)

def updateNetworkApplianceAlternateManagementInterface(self, networkId: str, **kwargs):
"""
**Update Secure Router alternate management interface settings for a network**
https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-alternate-management-interface

- networkId (string): Network ID
- enabled (boolean): Whether the alternate management interface is enabled
- primary (object): Primary alternate management interface addresses
- addressPool (object): Address pool reserved for alternate management interface addresses
- vrf (object): VRF assignment for the alternate management interface. This beta operation currently ignores the requested VRF ID and always uses the default VRF.
"""

kwargs.update(locals())

metadata = {
"tags": ["appliance", "configure", "alternateManagementInterface"],
"operation": "updateNetworkApplianceAlternateManagementInterface",
}
networkId = urllib.parse.quote(str(networkId), safe="")
resource = f"/networks/{networkId}/appliance/alternateManagementInterface"

body_params = [
"enabled",
"primary",
"addressPool",
"vrf",
]
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"updateNetworkApplianceAlternateManagementInterface: ignoring unrecognized kwargs: {invalid}"
)

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

def getNetworkApplianceClientSecurityEvents(
self, networkId: str, clientId: str, total_pages=1, direction="next", **kwargs
):
Expand Down Expand Up @@ -3523,6 +3562,57 @@ def swapNetworkApplianceWarmSpare(self, networkId: str):

return self._session.post(metadata, resource)

def getOrganizationApplianceAlternateManagementInterfacesByNetwork(
self, organizationId: str, total_pages=1, direction="next", **kwargs
):
"""
**List Secure Router alternate management interface settings by network**
https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-alternate-management-interfaces-by-network

- 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 - 100. Default is 10.
- 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 parameter to filter the results by network IDs. Matches are exact. Maximum array size is 100
"""

kwargs.update(locals())

metadata = {
"tags": ["appliance", "configure", "alternateManagementInterfaces", "byNetwork"],
"operation": "getOrganizationApplianceAlternateManagementInterfacesByNetwork",
}
organizationId = urllib.parse.quote(str(organizationId), safe="")
resource = f"/organizations/{organizationId}/appliance/alternateManagementInterfaces/byNetwork"

query_params = [
"perPage",
"startingAfter",
"endingBefore",
"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"getOrganizationApplianceAlternateManagementInterfacesByNetwork: ignoring unrecognized kwargs: {invalid}"
)

return self._session.get_pages(metadata, resource, params, total_pages, direction)

def getOrganizationApplianceDevicesInterfacesL3(self, organizationId: str, total_pages=1, direction="next", **kwargs):
"""
**List L3 interfaces across networks for the organization**
Expand Down
26 changes: 24 additions & 2 deletions meraki/aio/api/assistant.py
Original file line number Diff line number Diff line change
Expand Up @@ -641,16 +641,24 @@ def getOrganizationAssistantChatThreadMessage(self, organizationId: str, threadI

return self._session.get(metadata, resource)

def getOrganizationAssistantChatThreadMessageArtifacts(self, organizationId: str, threadId: str, messageId: str):
def getOrganizationAssistantChatThreadMessageArtifacts(
self, organizationId: str, threadId: str, messageId: str, total_pages=1, direction="next", **kwargs
):
"""
**List artifacts attached to a specific message**
https://developer.cisco.com/meraki/api-v1/#!get-organization-assistant-chat-thread-message-artifacts

- organizationId (string): Organization ID
- threadId (string): Thread ID
- messageId (string): Message 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): Number of entries per page. Defaults to 100.
- offset (integer): Number of artifacts to skip before returning results. Defaults to 0.
"""

kwargs.update(locals())

metadata = {
"tags": ["assistant", "configure", "chat", "threads", "messages", "artifacts"],
"operation": "getOrganizationAssistantChatThreadMessageArtifacts",
Expand All @@ -660,7 +668,21 @@ def getOrganizationAssistantChatThreadMessageArtifacts(self, organizationId: str
messageId = urllib.parse.quote(str(messageId), safe="")
resource = f"/organizations/{organizationId}/assistant/chat/threads/{threadId}/messages/{messageId}/artifacts"

return self._session.get(metadata, resource)
query_params = [
"perPage",
"offset",
]
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"getOrganizationAssistantChatThreadMessageArtifacts: ignoring unrecognized kwargs: {invalid}"
)

return self._session.get_pages(metadata, resource, params, total_pages, direction)

def getOrganizationAssistantChatThreadMessageArtifact(
self, organizationId: str, threadId: str, messageId: str, artifactId: str, total_pages=1, direction="next", **kwargs
Expand Down
4 changes: 4 additions & 0 deletions meraki/aio/api/nac.py
Original file line number Diff line number Diff line change
Expand Up @@ -554,6 +554,7 @@ def getOrganizationNacClients(self, organizationId: str, total_pages=1, directio
- groupIds (array): List of group ids for client retrieval by group
- lastNetworkName (array): List of network names for client retrieval by last login network name
- ssid (array): List of SSID's to filter
- excludeGroups (boolean): When true, omit the items array from each client's groups association while preserving totalCount and nextLink metadata.
- classification (object): Classification filters for client retrieval
- ipskConfigured (boolean): Filter clients by Identity Pre-Shared Key (iPSK) configuration status. true returns only clients with a per-client iPSK passphrase set; false returns only clients without one. Omit to return all clients regardless of iPSK status. When combined with other filters (clientIds, groupIds, search, classification, ssid, lastNetworkName), all conditions are applied together (logical AND).
"""
Expand Down Expand Up @@ -589,6 +590,7 @@ def getOrganizationNacClients(self, organizationId: str, total_pages=1, directio
"groupIds",
"lastNetworkName",
"ssid",
"excludeGroups",
"classification",
"ipskConfigured",
]
Expand Down Expand Up @@ -786,6 +788,7 @@ def getOrganizationNacClientsGroups(self, organizationId: str, total_pages=1, di
- 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.
- search (string): Optional parameter to fuzzy search on client groups.
- groupIds (array): List of ids for specific group retrieval
- excludeMembers (boolean): When true, omit the items array from each client group's members association while preserving totalCount and nextLink metadata.
"""

kwargs.update(locals())
Expand Down Expand Up @@ -816,6 +819,7 @@ def getOrganizationNacClientsGroups(self, organizationId: str, total_pages=1, di
"endingBefore",
"search",
"groupIds",
"excludeMembers",
]
params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params}

Expand Down
Loading
Loading