RockyRoad 0.0.592__py3-none-any.whl → 0.0.602__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rockyroad/modules/calculators.py +7 -2
- rockyroad/modules/case_management.py +447 -0
- rockyroad/modules/price_reviews.py +172 -0
- rockyroad/modules/tco_calculator.py +72 -17
- rockyroad/rockyroad.py +7 -0
- {rockyroad-0.0.592.dist-info → rockyroad-0.0.602.dist-info}/METADATA +1 -1
- {rockyroad-0.0.592.dist-info → rockyroad-0.0.602.dist-info}/RECORD +10 -8
- {rockyroad-0.0.592.dist-info → rockyroad-0.0.602.dist-info}/WHEEL +0 -0
- {rockyroad-0.0.592.dist-info → rockyroad-0.0.602.dist-info}/licenses/LICENSE +0 -0
- {rockyroad-0.0.592.dist-info → rockyroad-0.0.602.dist-info}/top_level.txt +0 -0
rockyroad/modules/calculators.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from .module_imports import
|
|
1
|
+
from .module_imports import get_key
|
|
2
2
|
from uplink.retry.when import status_5xx
|
|
3
3
|
from uplink import (
|
|
4
4
|
Consumer,
|
|
@@ -6,6 +6,9 @@ from uplink import (
|
|
|
6
6
|
retry,
|
|
7
7
|
)
|
|
8
8
|
|
|
9
|
+
# Module configuration
|
|
10
|
+
USE_SERVICES_API = True
|
|
11
|
+
key = get_key(use_services_api=USE_SERVICES_API)
|
|
9
12
|
|
|
10
13
|
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
11
14
|
@retry(max_attempts=20, when=status_5xx())
|
|
@@ -15,7 +18,9 @@ class _Calculators(Consumer):
|
|
|
15
18
|
|
|
16
19
|
def __init__(self, Resource, *args, **kw):
|
|
17
20
|
self._base_url = Resource._base_url
|
|
18
|
-
|
|
21
|
+
self._services_base_url = Resource._services_base_url
|
|
22
|
+
base_url = Resource._services_base_url if USE_SERVICES_API else Resource._base_url
|
|
23
|
+
super().__init__(base_url=base_url, *args, **kw)
|
|
19
24
|
|
|
20
25
|
def tco(self):
|
|
21
26
|
return self._TCO(self)
|
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
from .module_imports import get_key
|
|
2
|
+
from uplink.retry.when import status_5xx
|
|
3
|
+
from uplink import (
|
|
4
|
+
Consumer,
|
|
5
|
+
delete,
|
|
6
|
+
get as http_get,
|
|
7
|
+
patch,
|
|
8
|
+
post,
|
|
9
|
+
returns,
|
|
10
|
+
headers,
|
|
11
|
+
retry,
|
|
12
|
+
Body,
|
|
13
|
+
json,
|
|
14
|
+
Query,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
# Module configuration
|
|
18
|
+
USE_SERVICES_API = True
|
|
19
|
+
key = get_key(use_services_api=USE_SERVICES_API)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
23
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
24
|
+
class Case_Management(Consumer):
|
|
25
|
+
"""Interface to Case Management resource for the RockyRoad API."""
|
|
26
|
+
|
|
27
|
+
def __init__(self, Resource, *args, **kw):
|
|
28
|
+
self._base_url = Resource._services_base_url if USE_SERVICES_API else Resource._base_url
|
|
29
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
30
|
+
|
|
31
|
+
def cases(self):
|
|
32
|
+
return self.__Cases(self)
|
|
33
|
+
|
|
34
|
+
def case_types(self):
|
|
35
|
+
return self.__Case_Types(self)
|
|
36
|
+
|
|
37
|
+
def case_priorities(self):
|
|
38
|
+
return self.__Case_Priorities(self)
|
|
39
|
+
|
|
40
|
+
def case_statuses(self):
|
|
41
|
+
return self.__Case_Statuses(self)
|
|
42
|
+
|
|
43
|
+
def case_origins(self):
|
|
44
|
+
return self.__Case_Origins(self)
|
|
45
|
+
|
|
46
|
+
def team_members(self):
|
|
47
|
+
return self.__Team_Members(self)
|
|
48
|
+
|
|
49
|
+
def contacts(self):
|
|
50
|
+
return self.__Contacts(self)
|
|
51
|
+
|
|
52
|
+
def timelines(self):
|
|
53
|
+
return self.__Timelines(self)
|
|
54
|
+
|
|
55
|
+
def attachments(self):
|
|
56
|
+
return self.__Attachments(self)
|
|
57
|
+
|
|
58
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
59
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
60
|
+
class __Cases(Consumer):
|
|
61
|
+
"""Interface to Cases resource for the RockyRoad API."""
|
|
62
|
+
|
|
63
|
+
def __init__(self, Resource, *args, **kw):
|
|
64
|
+
self._base_url = Resource._base_url
|
|
65
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
66
|
+
|
|
67
|
+
@returns.json
|
|
68
|
+
@http_get("case-management/cases")
|
|
69
|
+
def list(
|
|
70
|
+
self,
|
|
71
|
+
case_type_uid: Query = None,
|
|
72
|
+
priority_uid: Query = None,
|
|
73
|
+
status_uid: Query = None,
|
|
74
|
+
origin_uid: Query = None,
|
|
75
|
+
owner_team_member_uid: Query = None,
|
|
76
|
+
customer_contact_uid: Query = None,
|
|
77
|
+
customer_company_uid: Query = None,
|
|
78
|
+
machine_uid: Query = None,
|
|
79
|
+
is_escalated: Query = None,
|
|
80
|
+
):
|
|
81
|
+
"""This call will return detailed case information for the specified criteria."""
|
|
82
|
+
|
|
83
|
+
@returns.json
|
|
84
|
+
@http_get("case-management/cases/{uid}")
|
|
85
|
+
def get(
|
|
86
|
+
self,
|
|
87
|
+
uid: str,
|
|
88
|
+
):
|
|
89
|
+
"""This call will return detailed case information for the specified criteria."""
|
|
90
|
+
|
|
91
|
+
@delete("case-management/cases/{uid}")
|
|
92
|
+
def delete(self, uid: str):
|
|
93
|
+
"""This call will delete the case for the specified uid."""
|
|
94
|
+
|
|
95
|
+
@returns.json
|
|
96
|
+
@json
|
|
97
|
+
@post("case-management/cases")
|
|
98
|
+
def insert(self, case: Body):
|
|
99
|
+
"""This call will create a case with the specified parameters."""
|
|
100
|
+
|
|
101
|
+
@json
|
|
102
|
+
@patch("case-management/cases/{uid}")
|
|
103
|
+
def update(self, uid: str, case: Body):
|
|
104
|
+
"""This call will update the case with the specified parameters."""
|
|
105
|
+
|
|
106
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
107
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
108
|
+
class __Case_Types(Consumer):
|
|
109
|
+
"""Interface to Case Types resource for the RockyRoad API."""
|
|
110
|
+
|
|
111
|
+
def __init__(self, Resource, *args, **kw):
|
|
112
|
+
self._base_url = Resource._base_url
|
|
113
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
114
|
+
|
|
115
|
+
@returns.json
|
|
116
|
+
@http_get("case-management/case-types")
|
|
117
|
+
def list(
|
|
118
|
+
self,
|
|
119
|
+
is_active: Query = None,
|
|
120
|
+
):
|
|
121
|
+
"""This call will return detailed case information for the specified criteria."""
|
|
122
|
+
|
|
123
|
+
@returns.json
|
|
124
|
+
@http_get("case-management/case-types/{uid}")
|
|
125
|
+
def get(
|
|
126
|
+
self,
|
|
127
|
+
uid: str,
|
|
128
|
+
):
|
|
129
|
+
"""This call will return detailed case type information for the specified criteria."""
|
|
130
|
+
|
|
131
|
+
@delete("case-management/case-types/{uid}")
|
|
132
|
+
def delete(self, uid: str):
|
|
133
|
+
"""This call will delete the case type for the specified uid."""
|
|
134
|
+
|
|
135
|
+
@returns.json
|
|
136
|
+
@json
|
|
137
|
+
@post("case-management/case-types")
|
|
138
|
+
def insert(self, case_type: Body):
|
|
139
|
+
"""This call will create a case type with the specified parameters."""
|
|
140
|
+
|
|
141
|
+
@json
|
|
142
|
+
@patch("case-management/case-types/{uid}")
|
|
143
|
+
def update(self, uid: str, case_type: Body):
|
|
144
|
+
"""This call will update the case type with the specified parameters."""
|
|
145
|
+
|
|
146
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
147
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
148
|
+
class __Case_Priorities(Consumer):
|
|
149
|
+
"""Interface to Cases resource for the RockyRoad API."""
|
|
150
|
+
|
|
151
|
+
def __init__(self, Resource, *args, **kw):
|
|
152
|
+
self._base_url = Resource._base_url
|
|
153
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
154
|
+
|
|
155
|
+
@returns.json
|
|
156
|
+
@http_get("case-management/case-priorities")
|
|
157
|
+
def list(
|
|
158
|
+
self,
|
|
159
|
+
is_active: Query = None,
|
|
160
|
+
):
|
|
161
|
+
"""This call will return detailed case information for the specified criteria."""
|
|
162
|
+
|
|
163
|
+
@returns.json
|
|
164
|
+
@http_get("case-management/case-priorities/{uid}")
|
|
165
|
+
def get(
|
|
166
|
+
self,
|
|
167
|
+
uid: str,
|
|
168
|
+
):
|
|
169
|
+
"""This call will return detailed case priority information for the specified criteria."""
|
|
170
|
+
|
|
171
|
+
@delete("case-management/case-priorities/{uid}")
|
|
172
|
+
def delete(self, uid: str):
|
|
173
|
+
"""This call will delete the case priority for the specified uid."""
|
|
174
|
+
|
|
175
|
+
@returns.json
|
|
176
|
+
@json
|
|
177
|
+
@post("case-management/case-priorities")
|
|
178
|
+
def insert(self, case_priority: Body):
|
|
179
|
+
"""This call will create a case priority with the specified parameters."""
|
|
180
|
+
|
|
181
|
+
@json
|
|
182
|
+
@patch("case-management/case-priorities/{uid}")
|
|
183
|
+
def update(self, uid: str, case_priority: Body):
|
|
184
|
+
"""This call will update the case priority with the specified parameters."""
|
|
185
|
+
|
|
186
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
187
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
188
|
+
class __Case_Origins(Consumer):
|
|
189
|
+
"""Interface to Cases resource for the RockyRoad API."""
|
|
190
|
+
|
|
191
|
+
def __init__(self, Resource, *args, **kw):
|
|
192
|
+
self._base_url = Resource._base_url
|
|
193
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
194
|
+
|
|
195
|
+
@returns.json
|
|
196
|
+
@http_get("case-management/case-origins")
|
|
197
|
+
def list(
|
|
198
|
+
self,
|
|
199
|
+
is_active: Query = None,
|
|
200
|
+
):
|
|
201
|
+
"""This call will return detailed case origin information for the specified criteria."""
|
|
202
|
+
|
|
203
|
+
@returns.json
|
|
204
|
+
@http_get("case-management/case-origins/{uid}")
|
|
205
|
+
def get(
|
|
206
|
+
self,
|
|
207
|
+
uid: str,
|
|
208
|
+
):
|
|
209
|
+
"""This call will return detailed case origin information for the specified criteria."""
|
|
210
|
+
|
|
211
|
+
@delete("case-management/case-origins/{uid}")
|
|
212
|
+
def delete(self, uid: str):
|
|
213
|
+
"""This call will delete the case origin for the specified uid."""
|
|
214
|
+
|
|
215
|
+
@returns.json
|
|
216
|
+
@json
|
|
217
|
+
@post("case-management/case-origins")
|
|
218
|
+
def insert(self, case_origin: Body):
|
|
219
|
+
"""This call will create a case origin with the specified parameters."""
|
|
220
|
+
|
|
221
|
+
@json
|
|
222
|
+
@patch("case-management/case-origins/{uid}")
|
|
223
|
+
def update(self, uid: str, case_origin: Body):
|
|
224
|
+
"""This call will update the case origin with the specified parameters."""
|
|
225
|
+
|
|
226
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
227
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
228
|
+
class __Case_Statuses(Consumer):
|
|
229
|
+
"""Interface to Cases resource for the RockyRoad API."""
|
|
230
|
+
|
|
231
|
+
def __init__(self, Resource, *args, **kw):
|
|
232
|
+
self._base_url = Resource._base_url
|
|
233
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
234
|
+
|
|
235
|
+
@returns.json
|
|
236
|
+
@http_get("case-management/case-statuses")
|
|
237
|
+
def list(
|
|
238
|
+
self,
|
|
239
|
+
is_active: Query = None,
|
|
240
|
+
):
|
|
241
|
+
"""This call will return detailed case status information for the specified criteria."""
|
|
242
|
+
|
|
243
|
+
@returns.json
|
|
244
|
+
@http_get("case-management/case-statuses/{uid}")
|
|
245
|
+
def get(
|
|
246
|
+
self,
|
|
247
|
+
uid: str,
|
|
248
|
+
):
|
|
249
|
+
"""This call will return detailed case status information for the specified criteria."""
|
|
250
|
+
|
|
251
|
+
@delete("case-management/case-statuses/{uid}")
|
|
252
|
+
def delete(self, uid: str):
|
|
253
|
+
"""This call will delete the case status for the specified uid."""
|
|
254
|
+
|
|
255
|
+
@returns.json
|
|
256
|
+
@json
|
|
257
|
+
@post("case-management/case-statuses")
|
|
258
|
+
def insert(self, case_status: Body):
|
|
259
|
+
"""This call will create a case status with the specified parameters."""
|
|
260
|
+
|
|
261
|
+
@json
|
|
262
|
+
@patch("case-management/case-statuses/{uid}")
|
|
263
|
+
def update(self, uid: str, case_status: Body):
|
|
264
|
+
"""This call will update the case status with the specified parameters."""
|
|
265
|
+
|
|
266
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
267
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
268
|
+
class __Team_Members(Consumer):
|
|
269
|
+
"""Interface to Team Members resource for the RockyRoad API."""
|
|
270
|
+
|
|
271
|
+
def __init__(self, Resource, *args, **kw):
|
|
272
|
+
self._base_url = Resource._base_url
|
|
273
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
274
|
+
|
|
275
|
+
@returns.json
|
|
276
|
+
@http_get("case-management/team-members")
|
|
277
|
+
def list(
|
|
278
|
+
self,
|
|
279
|
+
is_active: Query = None,
|
|
280
|
+
):
|
|
281
|
+
"""This call will return detailed team member information for the specified criteria."""
|
|
282
|
+
|
|
283
|
+
@returns.json
|
|
284
|
+
@http_get("case-management/team-members/{uid}")
|
|
285
|
+
def get(
|
|
286
|
+
self,
|
|
287
|
+
uid: str,
|
|
288
|
+
):
|
|
289
|
+
"""This call will return detailed team member information for the specified criteria."""
|
|
290
|
+
|
|
291
|
+
@delete("case-management/team-members/{uid}")
|
|
292
|
+
def delete(self, uid: str):
|
|
293
|
+
"""This call will delete the team member for the specified uid."""
|
|
294
|
+
|
|
295
|
+
@returns.json
|
|
296
|
+
@json
|
|
297
|
+
@post("case-management/team-members")
|
|
298
|
+
def insert(self, team_member: Body):
|
|
299
|
+
"""This call will create a team member with the specified parameters."""
|
|
300
|
+
|
|
301
|
+
@json
|
|
302
|
+
@patch("case-management/team-members/{uid}")
|
|
303
|
+
def update(self, uid: str, team_member: Body):
|
|
304
|
+
"""This call will update the team member with the specified parameters."""
|
|
305
|
+
|
|
306
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
307
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
308
|
+
class __Contacts(Consumer):
|
|
309
|
+
"""Interface to Contacts resource for the RockyRoad API."""
|
|
310
|
+
|
|
311
|
+
def __init__(self, Resource, *args, **kw):
|
|
312
|
+
self._base_url = Resource._base_url
|
|
313
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
314
|
+
|
|
315
|
+
@returns.json
|
|
316
|
+
@http_get("case-management/contacts")
|
|
317
|
+
def list(
|
|
318
|
+
self,
|
|
319
|
+
is_active: Query = None,
|
|
320
|
+
):
|
|
321
|
+
"""This call will return detailed contact information for the specified criteria."""
|
|
322
|
+
|
|
323
|
+
@returns.json
|
|
324
|
+
@http_get("case-management/contacts/{uid}")
|
|
325
|
+
def get(
|
|
326
|
+
self,
|
|
327
|
+
uid: str,
|
|
328
|
+
):
|
|
329
|
+
"""This call will return detailed contact information for the specified criteria."""
|
|
330
|
+
|
|
331
|
+
@delete("case-management/contacts/{uid}")
|
|
332
|
+
def delete(self, uid: str):
|
|
333
|
+
"""This call will delete the contact for the specified uid."""
|
|
334
|
+
|
|
335
|
+
@returns.json
|
|
336
|
+
@json
|
|
337
|
+
@post("case-management/contacts")
|
|
338
|
+
def insert(self, contact: Body):
|
|
339
|
+
"""This call will create a contact with the specified parameters."""
|
|
340
|
+
|
|
341
|
+
@json
|
|
342
|
+
@patch("case-management/contacts/{uid}")
|
|
343
|
+
def update(self, uid: str, contact: Body):
|
|
344
|
+
"""This call will update the contact with the specified parameters."""
|
|
345
|
+
|
|
346
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
347
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
348
|
+
class __Timelines(Consumer):
|
|
349
|
+
"""Interface to Timelines resource for the RockyRoad API."""
|
|
350
|
+
|
|
351
|
+
def __init__(self, Resource, *args, **kw):
|
|
352
|
+
self._base_url = Resource._base_url
|
|
353
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
354
|
+
|
|
355
|
+
@returns.json
|
|
356
|
+
@http_get("case-management/timelines")
|
|
357
|
+
def list(
|
|
358
|
+
self,
|
|
359
|
+
is_active: Query = None,
|
|
360
|
+
):
|
|
361
|
+
"""This call will return detailed timeline information for the specified criteria."""
|
|
362
|
+
|
|
363
|
+
@returns.json
|
|
364
|
+
@http_get("case-management/timelines/{uid}")
|
|
365
|
+
def get(
|
|
366
|
+
self,
|
|
367
|
+
uid: str,
|
|
368
|
+
):
|
|
369
|
+
"""This call will return detailed timeline information for the specified criteria."""
|
|
370
|
+
|
|
371
|
+
@delete("case-management/timelines/{uid}")
|
|
372
|
+
def delete(self, uid: str):
|
|
373
|
+
"""This call will delete the timeline for the specified uid."""
|
|
374
|
+
|
|
375
|
+
@returns.json
|
|
376
|
+
@json
|
|
377
|
+
@post("case-management/timelines")
|
|
378
|
+
def insert(self, timeline: Body):
|
|
379
|
+
"""This call will create a timeline with the specified parameters."""
|
|
380
|
+
|
|
381
|
+
@json
|
|
382
|
+
@patch("case-management/timelines/{uid}")
|
|
383
|
+
def update(self, uid: str, timeline: Body):
|
|
384
|
+
"""This call will update the timeline with the specified parameters."""
|
|
385
|
+
|
|
386
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
387
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
388
|
+
class __Attachments(Consumer):
|
|
389
|
+
"""Interface to Attachments resource for the RockyRoad API."""
|
|
390
|
+
|
|
391
|
+
def __init__(self, Resource, *args, **kw):
|
|
392
|
+
self._base_url = Resource._base_url
|
|
393
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
394
|
+
|
|
395
|
+
@returns.json
|
|
396
|
+
@http_get("case-management/attachments")
|
|
397
|
+
def list(
|
|
398
|
+
self,
|
|
399
|
+
is_active: Query = None,
|
|
400
|
+
):
|
|
401
|
+
"""This call will return detailed attachment information for the specified criteria."""
|
|
402
|
+
|
|
403
|
+
@returns.json
|
|
404
|
+
@http_get("case-management/case/{case_uid}/attachments")
|
|
405
|
+
def list_by_case(
|
|
406
|
+
self,
|
|
407
|
+
case_uid: str,
|
|
408
|
+
is_internal: Query = None,
|
|
409
|
+
):
|
|
410
|
+
"""This call will return detailed attachment information for the specified criteria."""
|
|
411
|
+
|
|
412
|
+
@returns.json
|
|
413
|
+
@http_get("case-management/timeline/{timeline_uid}/attachments")
|
|
414
|
+
def list_by_timeline(
|
|
415
|
+
self,
|
|
416
|
+
timeline_uid: str,
|
|
417
|
+
is_internal: Query = None,
|
|
418
|
+
):
|
|
419
|
+
"""This call will return detailed attachment information for the specified criteria."""
|
|
420
|
+
|
|
421
|
+
@returns.json
|
|
422
|
+
@http_get("case-management/attachments/{uid}")
|
|
423
|
+
def get(
|
|
424
|
+
self,
|
|
425
|
+
uid: str,
|
|
426
|
+
):
|
|
427
|
+
"""This call will return detailed attachment information for the specified criteria."""
|
|
428
|
+
|
|
429
|
+
@delete("case-management/attachments/{uid}")
|
|
430
|
+
def delete(self, uid: str):
|
|
431
|
+
"""This call will delete the attachment for the specified uid."""
|
|
432
|
+
|
|
433
|
+
@returns.json
|
|
434
|
+
@json
|
|
435
|
+
@post("case-management/case/{case_uid}/attachments")
|
|
436
|
+
def insert_by_case(self, case_uid: str, attachment: Body):
|
|
437
|
+
"""This call will create an attachment with the specified parameters."""
|
|
438
|
+
|
|
439
|
+
@json
|
|
440
|
+
@post("case-management/timeline/{timeline_uid}/attachments")
|
|
441
|
+
def insert_by_timeline(self, timeline_uid: str, attachment: Body):
|
|
442
|
+
"""This call will create an attachment with the specified parameters."""
|
|
443
|
+
|
|
444
|
+
@json
|
|
445
|
+
@patch("case-management/attachments/{uid}")
|
|
446
|
+
def update(self, uid: str, attachment: Body):
|
|
447
|
+
"""This call will update the attachment with the specified parameters."""
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
from .module_imports import get_key
|
|
2
|
+
from uplink.retry.when import status_5xx
|
|
3
|
+
from uplink import (
|
|
4
|
+
Consumer,
|
|
5
|
+
delete,
|
|
6
|
+
get as http_get,
|
|
7
|
+
patch,
|
|
8
|
+
post,
|
|
9
|
+
returns,
|
|
10
|
+
headers,
|
|
11
|
+
retry,
|
|
12
|
+
Body,
|
|
13
|
+
json,
|
|
14
|
+
Query,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
# Module configuration
|
|
18
|
+
USE_SERVICES_API = True
|
|
19
|
+
key = get_key(use_services_api=USE_SERVICES_API)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
23
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
24
|
+
class Price_Reviews(Consumer):
|
|
25
|
+
"""Interface to Price Reviews resource for the RockyRoad API."""
|
|
26
|
+
|
|
27
|
+
def __init__(self, Resource, *args, **kw):
|
|
28
|
+
self._base_url = Resource._services_base_url if USE_SERVICES_API else Resource._base_url
|
|
29
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
30
|
+
|
|
31
|
+
def requests(self):
|
|
32
|
+
return self.__Requests(self)
|
|
33
|
+
|
|
34
|
+
def parts(self):
|
|
35
|
+
return self.__Parts(self)
|
|
36
|
+
|
|
37
|
+
def logs(self):
|
|
38
|
+
return self.__Logs(self)
|
|
39
|
+
|
|
40
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
41
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
42
|
+
class __Requests(Consumer):
|
|
43
|
+
"""Interface to Price Review Requests resource for the RockyRoad API."""
|
|
44
|
+
|
|
45
|
+
def __init__(self, Resource, *args, **kw):
|
|
46
|
+
self._base_url = Resource._base_url
|
|
47
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
48
|
+
|
|
49
|
+
@returns.json
|
|
50
|
+
@http_get("price-reviews/requests")
|
|
51
|
+
def list(
|
|
52
|
+
self,
|
|
53
|
+
company_uid: Query = None,
|
|
54
|
+
status: Query = None,
|
|
55
|
+
created_date_from: Query = None,
|
|
56
|
+
created_date_to: Query = None,
|
|
57
|
+
part_number: Query = None,
|
|
58
|
+
company_name: Query = None,
|
|
59
|
+
):
|
|
60
|
+
"""This call will return detailed price review requests information for the specified criteria."""
|
|
61
|
+
|
|
62
|
+
@returns.json
|
|
63
|
+
@http_get("price-reviews/requests/{uid}")
|
|
64
|
+
def get(
|
|
65
|
+
self,
|
|
66
|
+
uid: str,
|
|
67
|
+
):
|
|
68
|
+
"""This call will return detailed price review requests information for the specified criteria."""
|
|
69
|
+
|
|
70
|
+
@delete("price-reviews/requests/{uid}")
|
|
71
|
+
def delete(self, uid: str):
|
|
72
|
+
"""This call will delete the price review requests for the specified uid."""
|
|
73
|
+
|
|
74
|
+
@returns.json
|
|
75
|
+
@json
|
|
76
|
+
@post("price-reviews/requests")
|
|
77
|
+
def insert(self, price_review_request: Body):
|
|
78
|
+
"""This call will create a price review requests with the specified parameters."""
|
|
79
|
+
|
|
80
|
+
@json
|
|
81
|
+
@patch("price-reviews/requests/{uid}")
|
|
82
|
+
def update(self, uid: str, price_review_request: Body):
|
|
83
|
+
"""This call will update the price review requests with the specified parameters."""
|
|
84
|
+
|
|
85
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
86
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
87
|
+
class __Parts(Consumer):
|
|
88
|
+
"""Interface to Price Review Parts resource for the RockyRoad API."""
|
|
89
|
+
|
|
90
|
+
def __init__(self, Resource, *args, **kw):
|
|
91
|
+
self._base_url = Resource._base_url
|
|
92
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
93
|
+
|
|
94
|
+
@returns.json
|
|
95
|
+
@http_get("price-reviews/parts")
|
|
96
|
+
def list(
|
|
97
|
+
self,
|
|
98
|
+
):
|
|
99
|
+
"""This call will return detailed price review parts information for the specified criteria."""
|
|
100
|
+
|
|
101
|
+
@returns.json
|
|
102
|
+
@http_get("price-reviews/requests/{request_uid}/parts")
|
|
103
|
+
def list_by_request(
|
|
104
|
+
self,
|
|
105
|
+
request_uid: str,
|
|
106
|
+
):
|
|
107
|
+
"""This call will return detailed price review parts information for the specified criteria."""
|
|
108
|
+
|
|
109
|
+
@returns.json
|
|
110
|
+
@http_get("price-reviews/parts/{uid}")
|
|
111
|
+
def get(
|
|
112
|
+
self,
|
|
113
|
+
uid: str,
|
|
114
|
+
):
|
|
115
|
+
"""This call will return detailed price review parts information for the specified criteria."""
|
|
116
|
+
|
|
117
|
+
@delete("price-reviews/parts/{uid}")
|
|
118
|
+
def delete(self, uid: str):
|
|
119
|
+
"""This call will delete the price review parts for the specified uid."""
|
|
120
|
+
|
|
121
|
+
@returns.json
|
|
122
|
+
@json
|
|
123
|
+
@post("price-reviews/requests/{request_uid}/parts")
|
|
124
|
+
def insert(self, request_uid: str, price_review_part: Body):
|
|
125
|
+
"""This call will create a price review parts with the specified parameters."""
|
|
126
|
+
|
|
127
|
+
@json
|
|
128
|
+
@patch("price-reviews/parts/{uid}")
|
|
129
|
+
def update(self, uid: str, price_review_part: Body):
|
|
130
|
+
"""This call will update the price review parts with the specified parameters."""
|
|
131
|
+
|
|
132
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
133
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
134
|
+
class __Logs(Consumer):
|
|
135
|
+
"""Interface to Price Review Logs resource for the RockyRoad API."""
|
|
136
|
+
|
|
137
|
+
def __init__(self, Resource, *args, **kw):
|
|
138
|
+
self._base_url = Resource._base_url
|
|
139
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
140
|
+
|
|
141
|
+
@returns.json
|
|
142
|
+
@http_get("price-reviews/logs")
|
|
143
|
+
def list(
|
|
144
|
+
self,
|
|
145
|
+
):
|
|
146
|
+
"""This call will return detailed price review logs information for the specified criteria."""
|
|
147
|
+
|
|
148
|
+
@returns.json
|
|
149
|
+
@http_get("price-reviews/requests/{request_uid}/logs")
|
|
150
|
+
def list_by_request(
|
|
151
|
+
self,
|
|
152
|
+
request_uid: str,
|
|
153
|
+
):
|
|
154
|
+
"""This call will return detailed price review logs information for the specified criteria."""
|
|
155
|
+
|
|
156
|
+
@returns.json
|
|
157
|
+
@http_get("price-reviews/logs/{uid}")
|
|
158
|
+
def get(
|
|
159
|
+
self,
|
|
160
|
+
uid: str,
|
|
161
|
+
):
|
|
162
|
+
"""This call will return detailed price review logs information for the specified criteria."""
|
|
163
|
+
|
|
164
|
+
@delete("price-reviews/logs/{uid}")
|
|
165
|
+
def delete(self, uid: str):
|
|
166
|
+
"""This call will delete the price review logs for the specified uid."""
|
|
167
|
+
|
|
168
|
+
@returns.json
|
|
169
|
+
@json
|
|
170
|
+
@post("price-reviews/requests/{request_uid}/logs")
|
|
171
|
+
def insert(self, request_uid: str, price_review_log: Body):
|
|
172
|
+
"""This call will create a price review log with the specified parameters."""
|
|
@@ -39,6 +39,9 @@ class _TCO(Consumer):
|
|
|
39
39
|
def parts(self):
|
|
40
40
|
return self._Parts(self)
|
|
41
41
|
|
|
42
|
+
def logs(self):
|
|
43
|
+
return self._Logs(self)
|
|
44
|
+
|
|
42
45
|
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
43
46
|
@retry(max_attempts=20, when=status_5xx())
|
|
44
47
|
class _Cost_Model(Consumer):
|
|
@@ -52,28 +55,28 @@ class _TCO(Consumer):
|
|
|
52
55
|
return self._Machines(self)
|
|
53
56
|
|
|
54
57
|
@returns.json
|
|
55
|
-
@http_get("calculators/tco/cost-
|
|
58
|
+
@http_get("calculators/tco/cost-models")
|
|
56
59
|
def list(
|
|
57
60
|
self, is_validated: Query = None, is_maintenance_calculator: Query = None):
|
|
58
61
|
"""This call will return list of TCO Cost Model."""
|
|
59
62
|
|
|
60
63
|
@returns.json
|
|
61
|
-
@http_get("calculators/tco/cost-
|
|
64
|
+
@http_get("calculators/tco/cost-models/{uid}")
|
|
62
65
|
def get(self, uid: str):
|
|
63
66
|
"""This call will return the specified TCO Cost Model."""
|
|
64
67
|
|
|
65
|
-
@delete("calculators/tco/cost-
|
|
68
|
+
@delete("calculators/tco/cost-models/{uid}")
|
|
66
69
|
def delete(self, uid: str):
|
|
67
70
|
"""This call will delete the TCO Cost Model."""
|
|
68
71
|
|
|
69
72
|
@returns.json
|
|
70
73
|
@json
|
|
71
|
-
@post("calculators/tco/cost-
|
|
74
|
+
@post("calculators/tco/cost-models")
|
|
72
75
|
def insert(self, tco_part: Body):
|
|
73
76
|
"""This call will create the TCO Cost Model."""
|
|
74
77
|
|
|
75
78
|
@json
|
|
76
|
-
@patch("calculators/tco/cost-
|
|
79
|
+
@patch("calculators/tco/cost-models/{uid}")
|
|
77
80
|
def update(self, uid: str, tco_part: Body):
|
|
78
81
|
"""This call will update the TCO Cost Model."""
|
|
79
82
|
|
|
@@ -99,7 +102,7 @@ class _TCO(Consumer):
|
|
|
99
102
|
super().__init__(base_url=Resource._base_url, *args, **kw)
|
|
100
103
|
|
|
101
104
|
@returns.json
|
|
102
|
-
@http_get("calculators/tco/cost-
|
|
105
|
+
@http_get("calculators/tco/cost-models/machines/catalogs/{uid}")
|
|
103
106
|
def get(self, uid: str):
|
|
104
107
|
"""This call will return the TCO cost model for the specified machine catalog uid."""
|
|
105
108
|
|
|
@@ -114,9 +117,12 @@ class _TCO(Consumer):
|
|
|
114
117
|
|
|
115
118
|
@returns.json
|
|
116
119
|
@http_get("calculators/tco/maintenance")
|
|
117
|
-
def list(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
def list(self):
|
|
121
|
+
"""This call will return list of TCO Maintenances."""
|
|
122
|
+
|
|
123
|
+
@returns.json
|
|
124
|
+
@http_get("calculators/tco/cost-models/{tco_cost_model_uid}/maintenance")
|
|
125
|
+
def list_by_cost_model(self, tco_cost_model_uid: str):
|
|
120
126
|
"""This call will return list of TCO Maintenances."""
|
|
121
127
|
|
|
122
128
|
@returns.json
|
|
@@ -130,8 +136,8 @@ class _TCO(Consumer):
|
|
|
130
136
|
|
|
131
137
|
@returns.json
|
|
132
138
|
@json
|
|
133
|
-
@post("calculators/tco/maintenance")
|
|
134
|
-
def insert(self, tco_part: Body):
|
|
139
|
+
@post("calculators/tco/cost-models/{tco_cost_model_uid}/maintenance")
|
|
140
|
+
def insert(self, tco_cost_model_uid: str, tco_part: Body):
|
|
135
141
|
"""This call will create the TCO Maintenance."""
|
|
136
142
|
|
|
137
143
|
@json
|
|
@@ -159,6 +165,14 @@ class _TCO(Consumer):
|
|
|
159
165
|
):
|
|
160
166
|
"""This call will return list of TCO Parts."""
|
|
161
167
|
|
|
168
|
+
@returns.json
|
|
169
|
+
@http_get("calculators/tco/tasks/{tco_task_uid}/parts")
|
|
170
|
+
def list_by_task(
|
|
171
|
+
self,
|
|
172
|
+
tco_task_uid: str
|
|
173
|
+
):
|
|
174
|
+
"""This call will return list of TCO Parts."""
|
|
175
|
+
|
|
162
176
|
@returns.json
|
|
163
177
|
@http_get("calculators/tco/parts/{uid}")
|
|
164
178
|
def get(self, uid: str):
|
|
@@ -170,8 +184,8 @@ class _TCO(Consumer):
|
|
|
170
184
|
|
|
171
185
|
@returns.json
|
|
172
186
|
@json
|
|
173
|
-
@post("calculators/tco/parts")
|
|
174
|
-
def insert(self, tco_part: Body):
|
|
187
|
+
@post("calculators/tco/tasks/{tco_task_uid}/parts")
|
|
188
|
+
def insert(self, tco_task_uid: str, tco_part: Body):
|
|
175
189
|
"""This call will create the TCO Part."""
|
|
176
190
|
|
|
177
191
|
@json
|
|
@@ -194,6 +208,11 @@ class _TCO(Consumer):
|
|
|
194
208
|
def list(self, tco_cost_model_uid: Query = None):
|
|
195
209
|
"""This call will return list of TCO Tasks."""
|
|
196
210
|
|
|
211
|
+
@returns.json
|
|
212
|
+
@http_get("calculators/tco/cost-models/{tco_cost_model_uid}/tasks")
|
|
213
|
+
def list_by_cost_model(self, tco_cost_model_uid: str):
|
|
214
|
+
"""This call will return list of TCO Tasks."""
|
|
215
|
+
|
|
197
216
|
@returns.json
|
|
198
217
|
@http_get("calculators/tco/tasks/{uid}")
|
|
199
218
|
def get(self, uid: str):
|
|
@@ -205,16 +224,52 @@ class _TCO(Consumer):
|
|
|
205
224
|
|
|
206
225
|
@returns.json
|
|
207
226
|
@json
|
|
208
|
-
@post("calculators/tco/tasks")
|
|
209
|
-
def insert(self, tco_task: Body):
|
|
227
|
+
@post("calculators/tco/cost-models/{tco_cost_model_uid}/tasks")
|
|
228
|
+
def insert(self, tco_cost_model_uid: str, tco_task: Body):
|
|
210
229
|
"""This call will create the TCO Task."""
|
|
211
230
|
|
|
212
231
|
@json
|
|
213
|
-
@post("calculators/tco/tasks/batch")
|
|
214
|
-
def insert_batch(self, tco_tasks: Body):
|
|
232
|
+
@post("calculators/tco/cost-models/{tco_cost_model_uid}/tasks/batch")
|
|
233
|
+
def insert_batch(self, tco_cost_model_uid: str, tco_tasks: Body):
|
|
215
234
|
"""This call will create multiple TCO Tasks."""
|
|
216
235
|
|
|
217
236
|
@json
|
|
218
237
|
@patch("calculators/tco/tasks/{uid}")
|
|
219
238
|
def update(self, uid: str, tco_task: Body):
|
|
220
239
|
"""This call will update the TCO Task."""
|
|
240
|
+
|
|
241
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
242
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
243
|
+
class _Logs(Consumer):
|
|
244
|
+
"""Interface to TCO Logs resource for the RockyRoad API."""
|
|
245
|
+
|
|
246
|
+
def __init__(self, Resource, *args, **kw):
|
|
247
|
+
self._base_url = Resource._base_url
|
|
248
|
+
super().__init__(base_url=Resource._base_url, *args, **kw)
|
|
249
|
+
|
|
250
|
+
@returns.json
|
|
251
|
+
@http_get("calculators/tco/logs")
|
|
252
|
+
def list(self):
|
|
253
|
+
"""This call will return list of TCO Logs."""
|
|
254
|
+
|
|
255
|
+
@returns.json
|
|
256
|
+
@http_get("calculators/tco/cost-models/{tco_cost_model_uid}/logs")
|
|
257
|
+
def list_by_cost_model(self, tco_cost_model_uid: str):
|
|
258
|
+
"""This call will return list of TCO Logs."""
|
|
259
|
+
|
|
260
|
+
@returns.json
|
|
261
|
+
@http_get("calculators/tco/logs/{uid}")
|
|
262
|
+
def get(self, uid: str):
|
|
263
|
+
"""This call will return the specified TCO Log."""
|
|
264
|
+
|
|
265
|
+
@delete("calculators/tco/logs/{uid}")
|
|
266
|
+
def delete(self, uid: str):
|
|
267
|
+
"""This call will delete the TCO Log."""
|
|
268
|
+
|
|
269
|
+
@returns.json
|
|
270
|
+
@json
|
|
271
|
+
@post("calculators/tco/cost-models/{tco_cost_model_uid}/logs")
|
|
272
|
+
def insert(self, tco_cost_model_uid: str, tco_log: Body):
|
|
273
|
+
"""This call will create the TCO Log."""
|
|
274
|
+
|
|
275
|
+
|
rockyroad/rockyroad.py
CHANGED
|
@@ -86,6 +86,8 @@ class DataServicesResource(object):
|
|
|
86
86
|
from .modules.machine_passcodes import Machine_Passcodes
|
|
87
87
|
from .modules.documoto import Documoto
|
|
88
88
|
from .modules.sharepoint import Sharepoint
|
|
89
|
+
from .modules.price_reviews import Price_Reviews
|
|
90
|
+
from .modules.case_management import Case_Management
|
|
89
91
|
|
|
90
92
|
def apiInfo(self):
|
|
91
93
|
return self._API_Info(self)
|
|
@@ -220,6 +222,11 @@ class DataServicesResource(object):
|
|
|
220
222
|
def sharepoint(self):
|
|
221
223
|
return self.Sharepoint(self)
|
|
222
224
|
|
|
225
|
+
def priceReviews(self):
|
|
226
|
+
return self.Price_Reviews(self)
|
|
227
|
+
|
|
228
|
+
def caseManagement(self):
|
|
229
|
+
return self.Case_Management(self)
|
|
223
230
|
|
|
224
231
|
class EmailServicesResource(object):
|
|
225
232
|
"""Interface to Email Services resources for the RockyRoad API."""
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
rockyroad/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
rockyroad/rockyroad.py,sha256=
|
|
2
|
+
rockyroad/rockyroad.py,sha256=zVXtqjvRMPpzgFerrkxLM8LtRrh25fG_ukTabrDrj7g,39635
|
|
3
3
|
rockyroad/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
rockyroad/modules/accounts.py,sha256=jgZKHFSLEFSyystEUBkOvNGCUipQBbH172pKAEvAg50,6540
|
|
5
5
|
rockyroad/modules/alerts.py,sha256=pQuagcTvma-C2Gf7shM7Ty6Niny1juLkmc9EST26_eM,2141
|
|
@@ -8,7 +8,8 @@ rockyroad/modules/apbs.py,sha256=8ScnRpjP4tKZCjlVlZ8Xn2vesYI7CKllgSHaShIYPRw,420
|
|
|
8
8
|
rockyroad/modules/api_info.py,sha256=7SGoS6pfPtNXxH3zZ0aOgUGicuZaT3wln2qR5WS0y2M,827
|
|
9
9
|
rockyroad/modules/b2c_users.py,sha256=EGdcQeFoQC2LjF0Ocy31SPazMXpUN_omnlGhm157wa0,2418
|
|
10
10
|
rockyroad/modules/business_information.py,sha256=KI0SwfcAQ3GJyHyELNL01jBh5F1wUye3pl76-vds6is,3256
|
|
11
|
-
rockyroad/modules/calculators.py,sha256=
|
|
11
|
+
rockyroad/modules/calculators.py,sha256=8kTPt-QleXHbgx7vqLgC8a0cv6eqLxWsfUZNDdZXWVE,810
|
|
12
|
+
rockyroad/modules/case_management.py,sha256=6r__6vKnGXZQdgOa1Fn0ILSYOEGfL6rnwJeGPNTBMhk,15612
|
|
12
13
|
rockyroad/modules/companies.py,sha256=BXnAVTuGOoW5Ei9LyOkcMr1A6iTbRhAsyIqVS2CdpHU,13192
|
|
13
14
|
rockyroad/modules/company_specified_info.py,sha256=wD8-qaQerpGqFfzUrTIR7ednHQJ2RboODGJnd-kKsh4,2313
|
|
14
15
|
rockyroad/modules/content_management.py,sha256=3miiVmSv7cUqUNG25H71Ir9nP6YLFUrMlK8gi4LhflU,4487
|
|
@@ -38,13 +39,14 @@ rockyroad/modules/parts.py,sha256=Ee4bKSoOzhrdMH1RTBSRMIMJf5BRFxkdppxwD22z-mA,56
|
|
|
38
39
|
rockyroad/modules/portal_configurations.py,sha256=6mYcEK9VSuQi348m_1vzRmgS8hxbcJB7NiLQXnHoYgg,2673
|
|
39
40
|
rockyroad/modules/portal_users.py,sha256=h1IpyD02NtbZaVYy-mtyygBmJgvOHWzPRiJoQHyOj2k,1018
|
|
40
41
|
rockyroad/modules/predictive_maintenance.py,sha256=-lpt93hJC__oGmn8pdAHhwSmJVMTpDHhQLhOg8k-FlQ,695
|
|
42
|
+
rockyroad/modules/price_reviews.py,sha256=kD8mQn8ldo3o5iETlA4M4VSGFWo1Anyj1D-JSHaTZjM,5910
|
|
41
43
|
rockyroad/modules/service_reports.py,sha256=AndnKc3xgs-iXQino60LD7LHvpc00NL1ZDPyODyNmSI,1539
|
|
42
44
|
rockyroad/modules/services.py,sha256=yAYJxMzYFgAw95uaAH4Y1FWsGz1LNN5s3pQDvQ88wFE,6420
|
|
43
45
|
rockyroad/modules/sharepoint.py,sha256=H_Oy2Q6ST1g-uX4spvlcYAf95zfuA-XO8UOKmtBvN_w,4510
|
|
44
46
|
rockyroad/modules/simple_forms.py,sha256=mHrGDjHu_t8RIxF0Av-WaIb6U_1gNXY3oNpENsQw2mU,3555
|
|
45
47
|
rockyroad/modules/subscriptions.py,sha256=eT2AdETZqqtx55CxF0sW92-D5z9Eww1m8TSnybt2L7g,4472
|
|
46
48
|
rockyroad/modules/summaries.py,sha256=-UYNUaSBZB4jVatIItAVEF0ac4rlO-4Fk5hvL60lofs,2709
|
|
47
|
-
rockyroad/modules/tco_calculator.py,sha256=
|
|
49
|
+
rockyroad/modules/tco_calculator.py,sha256=Twy1CkmppI_UousUVsi1uSpWrAFQsrqfKaW_7aFkEks,9594
|
|
48
50
|
rockyroad/modules/technical_content_feedback.py,sha256=tZUZJ3CSi3Fv3MVnoGN15gzzi8EhOLYbVhcpwNsc_xg,18134
|
|
49
51
|
rockyroad/modules/telematics.py,sha256=qaU_ndUFGM6CpzpXjGhWsgZOScjpkW4Ui3KZJUliKjU,2040
|
|
50
52
|
rockyroad/modules/template.py,sha256=6RdWzHX3YZqdMQCU3IaCUgn1VWjS312Ok8pB8yDK790,2837
|
|
@@ -59,8 +61,8 @@ rockyroad/modules/warranty_pip.py,sha256=_viDrbdMOX07OirXCH-22bfeeid60IoIl-lqZr_
|
|
|
59
61
|
rockyroad/modules/warranty_rates.py,sha256=8oeDfg3boooBa3KPOWoR1JIm9yaX9Kslo4ZZnuuCDZA,1704
|
|
60
62
|
rockyroad/modules/warranty_registrations.py,sha256=ycTKiYoV9T_OTyKlwKSiLrDH7cOigSBzjIFI47GPhFA,1969
|
|
61
63
|
rockyroad/modules/warranty_rga.py,sha256=9rDQFE1YLw4dcpbt2yD3qIMxbvhUfoBNdpWl6KBRTPU,4714
|
|
62
|
-
rockyroad-0.0.
|
|
63
|
-
rockyroad-0.0.
|
|
64
|
-
rockyroad-0.0.
|
|
65
|
-
rockyroad-0.0.
|
|
66
|
-
rockyroad-0.0.
|
|
64
|
+
rockyroad-0.0.602.dist-info/licenses/LICENSE,sha256=2bm9uFabQZ3Ykb_SaSU_uUbAj2-htc6WJQmS_65qD00,1073
|
|
65
|
+
rockyroad-0.0.602.dist-info/METADATA,sha256=v3cYlEvYOgZW_uRILVJhit7LMortKQ1rplUinKOpKKs,34189
|
|
66
|
+
rockyroad-0.0.602.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
67
|
+
rockyroad-0.0.602.dist-info/top_level.txt,sha256=2i16gCpB6x-hh1eUXH0KijIjfx08oEvLfV7eS9TL3Bs,10
|
|
68
|
+
rockyroad-0.0.602.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|