forked from meraki/dashboard-api-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinsight.py
More file actions
174 lines (123 loc) · 7.6 KB
/
Copy pathinsight.py
File metadata and controls
174 lines (123 loc) · 7.6 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
import urllib
class Insight(object):
def __init__(self, session):
super(Insight, self).__init__()
self._session = session
def getNetworkInsightApplicationHealthByTime(self, networkId: str, applicationId: str, **kwargs):
"""
**Get application health by time**
https://developer.cisco.com/meraki/api-v1/#!get-network-insight-application-health-by-time
- networkId (string): Network ID
- applicationId (string): Application ID
- t0 (string): The beginning of the timespan for the data. The maximum lookback period is 7 days from today.
- t1 (string): The end of the timespan for the data. t1 can be a maximum of 7 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 less than or equal to 7 days. The default is 2 hours.
- resolution (integer): The time resolution in seconds for returned data. The valid resolutions are: 60, 300, 3600, 86400. The default is 300.
"""
kwargs.update(locals())
metadata = {
'tags': ['insight', 'monitor', 'applications', 'healthByTime'],
'operation': 'getNetworkInsightApplicationHealthByTime'
}
networkId = urllib.parse.quote(str(networkId), safe='')
applicationId = urllib.parse.quote(str(applicationId), safe='')
resource = f'/networks/{networkId}/insight/applications/{applicationId}/healthByTime'
query_params = ['t0', 't1', 'timespan', 'resolution', ]
params = {k.strip(): v for k, v in kwargs.items() if k.strip() in query_params}
return self._session.get(metadata, resource, params)
def getOrganizationInsightApplications(self, organizationId: str):
"""
**List all Insight tracked applications**
https://developer.cisco.com/meraki/api-v1/#!get-organization-insight-applications
- organizationId (string): Organization ID
"""
metadata = {
'tags': ['insight', 'configure', 'applications'],
'operation': 'getOrganizationInsightApplications'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/insight/applications'
return self._session.get(metadata, resource)
def getOrganizationInsightMonitoredMediaServers(self, organizationId: str):
"""
**List the monitored media servers for this organization**
https://developer.cisco.com/meraki/api-v1/#!get-organization-insight-monitored-media-servers
- organizationId (string): Organization ID
"""
metadata = {
'tags': ['insight', 'configure', 'monitoredMediaServers'],
'operation': 'getOrganizationInsightMonitoredMediaServers'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/insight/monitoredMediaServers'
return self._session.get(metadata, resource)
def createOrganizationInsightMonitoredMediaServer(self, organizationId: str, name: str, address: str, **kwargs):
"""
**Add a media server to be monitored for this organization**
https://developer.cisco.com/meraki/api-v1/#!create-organization-insight-monitored-media-server
- organizationId (string): Organization ID
- name (string): The name of the VoIP provider
- address (string): The IP address (IPv4 only) or hostname of the media server to monitor
- bestEffortMonitoringEnabled (boolean): Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead.
"""
kwargs.update(locals())
metadata = {
'tags': ['insight', 'configure', 'monitoredMediaServers'],
'operation': 'createOrganizationInsightMonitoredMediaServer'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
resource = f'/organizations/{organizationId}/insight/monitoredMediaServers'
body_params = ['name', 'address', 'bestEffortMonitoringEnabled', ]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}
return self._session.post(metadata, resource, payload)
def getOrganizationInsightMonitoredMediaServer(self, organizationId: str, monitoredMediaServerId: str):
"""
**Return a monitored media server for this organization**
https://developer.cisco.com/meraki/api-v1/#!get-organization-insight-monitored-media-server
- organizationId (string): Organization ID
- monitoredMediaServerId (string): Monitored media server ID
"""
metadata = {
'tags': ['insight', 'configure', 'monitoredMediaServers'],
'operation': 'getOrganizationInsightMonitoredMediaServer'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
monitoredMediaServerId = urllib.parse.quote(str(monitoredMediaServerId), safe='')
resource = f'/organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}'
return self._session.get(metadata, resource)
def updateOrganizationInsightMonitoredMediaServer(self, organizationId: str, monitoredMediaServerId: str, **kwargs):
"""
**Update a monitored media server for this organization**
https://developer.cisco.com/meraki/api-v1/#!update-organization-insight-monitored-media-server
- organizationId (string): Organization ID
- monitoredMediaServerId (string): Monitored media server ID
- name (string): The name of the VoIP provider
- address (string): The IP address (IPv4 only) or hostname of the media server to monitor
- bestEffortMonitoringEnabled (boolean): Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead.
"""
kwargs.update(locals())
metadata = {
'tags': ['insight', 'configure', 'monitoredMediaServers'],
'operation': 'updateOrganizationInsightMonitoredMediaServer'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
monitoredMediaServerId = urllib.parse.quote(str(monitoredMediaServerId), safe='')
resource = f'/organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}'
body_params = ['name', 'address', 'bestEffortMonitoringEnabled', ]
payload = {k.strip(): v for k, v in kwargs.items() if k.strip() in body_params}
return self._session.put(metadata, resource, payload)
def deleteOrganizationInsightMonitoredMediaServer(self, organizationId: str, monitoredMediaServerId: str):
"""
**Delete a monitored media server from this organization**
https://developer.cisco.com/meraki/api-v1/#!delete-organization-insight-monitored-media-server
- organizationId (string): Organization ID
- monitoredMediaServerId (string): Monitored media server ID
"""
metadata = {
'tags': ['insight', 'configure', 'monitoredMediaServers'],
'operation': 'deleteOrganizationInsightMonitoredMediaServer'
}
organizationId = urllib.parse.quote(str(organizationId), safe='')
monitoredMediaServerId = urllib.parse.quote(str(monitoredMediaServerId), safe='')
resource = f'/organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}'
return self._session.delete(metadata, resource)