forked from meraki/dashboard-api-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadmins.py
More file actions
98 lines (75 loc) · 3.92 KB
/
Copy pathadmins.py
File metadata and controls
98 lines (75 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
class Admins(object):
def __init__(self, session):
super(Admins, self).__init__()
self._session = session
def getOrganizationAdmins(self, organizationId: str):
"""
**List the dashboard administrators in this organization**
https://developer.cisco.com/meraki/api/#!get-organization-admins
- organizationId (string)
"""
metadata = {
'tags': ['Admins'],
'operation': 'getOrganizationAdmins',
}
resource = f'/organizations/{organizationId}/admins'
return self._session.get(metadata, resource)
def createOrganizationAdmin(self, organizationId: str, email: str, name: str, orgAccess: str, **kwargs):
"""
**Create a new dashboard administrator**
https://developer.cisco.com/meraki/api/#!create-organization-admin
- organizationId (string)
- email (string): The email of the dashboard administrator. This attribute can not be updated.
- name (string): The name of the dashboard administrator
- orgAccess (string): The privilege of the dashboard administrator on the organization. Can be one of 'full', 'read-only', 'enterprise' or 'none'
- tags (array): The list of tags that the dashboard administrator has privileges on
- networks (array): The list of networks that the dashboard administrator has privileges on
"""
kwargs.update(locals())
if 'orgAccess' in kwargs:
options = ['full', 'read-only', 'enterprise', 'none']
assert kwargs['orgAccess'] in options, f'''"orgAccess" cannot be "{kwargs['orgAccess']}", & must be set to one of: {options}'''
metadata = {
'tags': ['Admins'],
'operation': 'createOrganizationAdmin',
}
resource = f'/organizations/{organizationId}/admins'
body_params = ['email', 'name', 'orgAccess', 'tags', 'networks']
payload = {k: v for (k, v) in kwargs.items() if k in body_params}
return self._session.post(metadata, resource, payload)
def updateOrganizationAdmin(self, organizationId: str, id: str, **kwargs):
"""
**Update an administrator**
https://developer.cisco.com/meraki/api/#!update-organization-admin
- organizationId (string)
- id (string)
- name (string): The name of the dashboard administrator
- orgAccess (string): The privilege of the dashboard administrator on the organization. Can be one of 'full', 'read-only', 'enterprise' or 'none'
- tags (array): The list of tags that the dashboard administrator has privileges on
- networks (array): The list of networks that the dashboard administrator has privileges on
"""
kwargs.update(locals())
if 'orgAccess' in kwargs:
options = ['full', 'read-only', 'enterprise', 'none']
assert kwargs['orgAccess'] in options, f'''"orgAccess" cannot be "{kwargs['orgAccess']}", & must be set to one of: {options}'''
metadata = {
'tags': ['Admins'],
'operation': 'updateOrganizationAdmin',
}
resource = f'/organizations/{organizationId}/admins/{id}'
body_params = ['name', 'orgAccess', 'tags', 'networks']
payload = {k: v for (k, v) in kwargs.items() if k in body_params}
return self._session.put(metadata, resource, payload)
def deleteOrganizationAdmin(self, organizationId: str, id: str):
"""
**Revoke all access for a dashboard administrator within this organization**
https://developer.cisco.com/meraki/api/#!delete-organization-admin
- organizationId (string)
- id (string)
"""
metadata = {
'tags': ['Admins'],
'operation': 'deleteOrganizationAdmin',
}
resource = f'/organizations/{organizationId}/admins/{id}'
return self._session.delete(metadata, resource)