Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
TKIPisalegacycipher committed Sep 11, 2023
2 parents f2974c1 + 918341d commit 881618a
Show file tree
Hide file tree
Showing 19 changed files with 1,592 additions and 39 deletions.
2 changes: 1 addition & 1 deletion meraki/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
USE_ITERATOR_FOR_GET_PAGES,
)

__version__ = '1.36.0'
__version__ = '1.37.1'


class DashboardAPI(object):
Expand Down
62 changes: 62 additions & 0 deletions meraki/aio/api/appliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -1900,6 +1900,32 @@ def updateNetworkApplianceTrafficShapingUplinkSelection(self, networkId: str, **



def updateNetworkApplianceTrafficShapingVpnExclusions(self, networkId: str, **kwargs):
"""
**Update VPN exclusion rules for an MX network.**
https://developer.cisco.com/meraki/api-v1/#!update-network-appliance-traffic-shaping-vpn-exclusions
- networkId (string): Network ID
- custom (array): Custom VPN exclusion rules. Pass an empty array to clear existing rules.
- majorApplications (array): Major Application based VPN exclusion rules. Pass an empty array to clear existing rules.
"""

kwargs.update(locals())

metadata = {
'tags': ['appliance', 'configure', 'trafficShaping', 'vpnExclusions'],
'operation': 'updateNetworkApplianceTrafficShapingVpnExclusions'
}
networkId = urllib.parse.quote(str(networkId), safe='')
resource = f'/networks/{networkId}/appliance/trafficShaping/vpnExclusions'

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

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



def getNetworkApplianceUplinksUsageHistory(self, networkId: str, **kwargs):
"""
**Get the sent and received bytes for each uplink of a network.**
Expand Down Expand Up @@ -2372,6 +2398,42 @@ def updateOrganizationApplianceSecurityIntrusion(self, organizationId: str, allo



def getOrganizationApplianceTrafficShapingVpnExclusionsByNetwork(self, organizationId: str, total_pages=1, direction='next', **kwargs):
"""
**Display VPN exclusion rules for MX networks.**
https://developer.cisco.com/meraki/api-v1/#!get-organization-appliance-traffic-shaping-vpn-exclusions-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 - 1000. Default is 50.
- 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
"""

kwargs.update(locals())

metadata = {
'tags': ['appliance', 'configure', 'trafficShaping', 'vpnExclusions', 'byNetwork'],
'operation': 'getOrganizationApplianceTrafficShapingVpnExclusionsByNetwork'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/appliance/trafficShaping/vpnExclusions/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())

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



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**
Expand Down
159 changes: 159 additions & 0 deletions meraki/aio/api/camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -860,3 +860,162 @@ def updateOrganizationCameraOnboardingStatuses(self, organizationId: str, **kwar

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



def getOrganizationCameraPermissions(self, organizationId: str):
"""
**List the permissions scopes for this organization**
https://developer.cisco.com/meraki/api-v1/#!get-organization-camera-permissions
- organizationId (string): Organization ID
"""

metadata = {
'tags': ['camera', 'configure', 'permissions'],
'operation': 'getOrganizationCameraPermissions'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/camera/permissions'

return self._session.get(metadata, resource)



def getOrganizationCameraPermission(self, organizationId: str, permissionScopeId: str):
"""
**Retrieve a single permission scope**
https://developer.cisco.com/meraki/api-v1/#!get-organization-camera-permission
- organizationId (string): Organization ID
- permissionScopeId (string): Permission scope ID
"""

metadata = {
'tags': ['camera', 'configure', 'permissions'],
'operation': 'getOrganizationCameraPermission'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
permissionScopeId = urllib.parse.quote(str(permissionScopeId), safe='')
resource = f'/organizations/{organizationId}/camera/permissions/{permissionScopeId}'

return self._session.get(metadata, resource)



def getOrganizationCameraRoles(self, organizationId: str):
"""
**List all the roles in this organization**
https://developer.cisco.com/meraki/api-v1/#!get-organization-camera-roles
- organizationId (string): Organization ID
"""

metadata = {
'tags': ['camera', 'configure', 'roles'],
'operation': 'getOrganizationCameraRoles'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/camera/roles'

return self._session.get(metadata, resource)



def createOrganizationCameraRole(self, organizationId: str, name: str, **kwargs):
"""
**Creates new role for this organization.**
https://developer.cisco.com/meraki/api-v1/#!create-organization-camera-role
- organizationId (string): Organization ID
- name (string): The name of the new role. Must be unique. This parameter is required.
- appliedOnDevices (array): Device tag on which this specified permission is applied.
- appliedOnNetworks (array): Network tag on which this specified permission is applied.
- appliedOrgWide (array): Permissions to be applied org wide.
"""

kwargs.update(locals())

metadata = {
'tags': ['camera', 'configure', 'roles'],
'operation': 'createOrganizationCameraRole'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/camera/roles'

body_params = ['name', 'appliedOnDevices', 'appliedOnNetworks', 'appliedOrgWide', ]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

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



def getOrganizationCameraRole(self, organizationId: str, roleId: str):
"""
**Retrieve a single role.**
https://developer.cisco.com/meraki/api-v1/#!get-organization-camera-role
- organizationId (string): Organization ID
- roleId (string): Role ID
"""

metadata = {
'tags': ['camera', 'configure', 'roles'],
'operation': 'getOrganizationCameraRole'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
roleId = urllib.parse.quote(str(roleId), safe='')
resource = f'/organizations/{organizationId}/camera/roles/{roleId}'

return self._session.get(metadata, resource)



def deleteOrganizationCameraRole(self, organizationId: str, roleId: str):
"""
**Delete an existing role for this organization.**
https://developer.cisco.com/meraki/api-v1/#!delete-organization-camera-role
- organizationId (string): Organization ID
- roleId (string): Role ID
"""

metadata = {
'tags': ['camera', 'configure', 'roles'],
'operation': 'deleteOrganizationCameraRole'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
roleId = urllib.parse.quote(str(roleId), safe='')
resource = f'/organizations/{organizationId}/camera/roles/{roleId}'

return self._session.delete(metadata, resource)



def updateOrganizationCameraRole(self, organizationId: str, roleId: str, **kwargs):
"""
**Update an existing role in this organization.**
https://developer.cisco.com/meraki/api-v1/#!update-organization-camera-role
- organizationId (string): Organization ID
- roleId (string): Role ID
- name (string): The name of the new role. Must be unique.
- appliedOnDevices (array): Device tag on which this specified permission is applied.
- appliedOnNetworks (array): Network tag on which this specified permission is applied.
- appliedOrgWide (array): Permissions to be applied org wide.
"""

kwargs.update(locals())

metadata = {
'tags': ['camera', 'configure', 'roles'],
'operation': 'updateOrganizationCameraRole'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
roleId = urllib.parse.quote(str(roleId), safe='')
resource = f'/organizations/{organizationId}/camera/roles/{roleId}'

body_params = ['name', 'appliedOnDevices', 'appliedOnNetworks', 'appliedOrgWide', ]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}

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

Loading

0 comments on commit 881618a

Please sign in to comment.