RockyRoad 0.0.586__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/parts.py +2 -1
- rockyroad/modules/price_reviews.py +172 -0
- rockyroad/modules/tco_calculator.py +155 -53
- rockyroad/rockyroad.py +7 -0
- {rockyroad-0.0.586.dist-info → rockyroad-0.0.602.dist-info}/METADATA +1 -1
- {rockyroad-0.0.586.dist-info → rockyroad-0.0.602.dist-info}/RECORD +11 -9
- {rockyroad-0.0.586.dist-info → rockyroad-0.0.602.dist-info}/WHEEL +0 -0
- {rockyroad-0.0.586.dist-info → rockyroad-0.0.602.dist-info}/licenses/LICENSE +0 -0
- {rockyroad-0.0.586.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."""
|
rockyroad/modules/parts.py
CHANGED
|
@@ -63,8 +63,9 @@ class Parts(Consumer):
|
|
|
63
63
|
@http_get("parts/information")
|
|
64
64
|
def list_information(
|
|
65
65
|
self,
|
|
66
|
-
|
|
66
|
+
part_number: Query = None,
|
|
67
67
|
brand: Query = None,
|
|
68
|
+
exact_match: Query = None,
|
|
68
69
|
):
|
|
69
70
|
"""This call will return the part information for the part(s) specified."""
|
|
70
71
|
|
|
@@ -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."""
|
|
@@ -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,
|
|
@@ -14,6 +14,9 @@ from uplink import (
|
|
|
14
14
|
Query,
|
|
15
15
|
)
|
|
16
16
|
|
|
17
|
+
# Module configuration
|
|
18
|
+
USE_SERVICES_API = True
|
|
19
|
+
key = get_key(use_services_api=USE_SERVICES_API)
|
|
17
20
|
|
|
18
21
|
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
19
22
|
@retry(max_attempts=20, when=status_5xx())
|
|
@@ -21,8 +24,8 @@ class _TCO(Consumer):
|
|
|
21
24
|
"""Inteface to TCO resource for the RockyRoad API."""
|
|
22
25
|
|
|
23
26
|
def __init__(self, Resource, *args, **kw):
|
|
24
|
-
self._base_url = Resource._base_url
|
|
25
|
-
super().__init__(base_url=
|
|
27
|
+
self._base_url = Resource._services_base_url if USE_SERVICES_API else Resource._base_url
|
|
28
|
+
super().__init__(base_url=self._base_url, *args, **kw)
|
|
26
29
|
|
|
27
30
|
def costModel(self):
|
|
28
31
|
return self._Cost_Model(self)
|
|
@@ -30,6 +33,15 @@ class _TCO(Consumer):
|
|
|
30
33
|
def maintenance(self):
|
|
31
34
|
return self._Maintenance(self)
|
|
32
35
|
|
|
36
|
+
def tasks(self):
|
|
37
|
+
return self._Tasks(self)
|
|
38
|
+
|
|
39
|
+
def parts(self):
|
|
40
|
+
return self._Parts(self)
|
|
41
|
+
|
|
42
|
+
def logs(self):
|
|
43
|
+
return self._Logs(self)
|
|
44
|
+
|
|
33
45
|
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
34
46
|
@retry(max_attempts=20, when=status_5xx())
|
|
35
47
|
class _Cost_Model(Consumer):
|
|
@@ -43,28 +55,28 @@ class _TCO(Consumer):
|
|
|
43
55
|
return self._Machines(self)
|
|
44
56
|
|
|
45
57
|
@returns.json
|
|
46
|
-
@http_get("calculators/tco/cost-
|
|
58
|
+
@http_get("calculators/tco/cost-models")
|
|
47
59
|
def list(
|
|
48
60
|
self, is_validated: Query = None, is_maintenance_calculator: Query = None):
|
|
49
61
|
"""This call will return list of TCO Cost Model."""
|
|
50
62
|
|
|
51
63
|
@returns.json
|
|
52
|
-
@http_get("calculators/tco/cost-
|
|
64
|
+
@http_get("calculators/tco/cost-models/{uid}")
|
|
53
65
|
def get(self, uid: str):
|
|
54
66
|
"""This call will return the specified TCO Cost Model."""
|
|
55
67
|
|
|
56
|
-
@delete("calculators/tco/cost-
|
|
68
|
+
@delete("calculators/tco/cost-models/{uid}")
|
|
57
69
|
def delete(self, uid: str):
|
|
58
70
|
"""This call will delete the TCO Cost Model."""
|
|
59
71
|
|
|
60
72
|
@returns.json
|
|
61
73
|
@json
|
|
62
|
-
@post("calculators/tco/cost-
|
|
74
|
+
@post("calculators/tco/cost-models")
|
|
63
75
|
def insert(self, tco_part: Body):
|
|
64
76
|
"""This call will create the TCO Cost Model."""
|
|
65
77
|
|
|
66
78
|
@json
|
|
67
|
-
@patch("calculators/tco/cost-
|
|
79
|
+
@patch("calculators/tco/cost-models/{uid}")
|
|
68
80
|
def update(self, uid: str, tco_part: Body):
|
|
69
81
|
"""This call will update the TCO Cost Model."""
|
|
70
82
|
|
|
@@ -90,7 +102,7 @@ class _TCO(Consumer):
|
|
|
90
102
|
super().__init__(base_url=Resource._base_url, *args, **kw)
|
|
91
103
|
|
|
92
104
|
@returns.json
|
|
93
|
-
@http_get("calculators/tco/cost-
|
|
105
|
+
@http_get("calculators/tco/cost-models/machines/catalogs/{uid}")
|
|
94
106
|
def get(self, uid: str):
|
|
95
107
|
"""This call will return the TCO cost model for the specified machine catalog uid."""
|
|
96
108
|
|
|
@@ -103,14 +115,14 @@ class _TCO(Consumer):
|
|
|
103
115
|
self._base_url = Resource._base_url
|
|
104
116
|
super().__init__(base_url=Resource._base_url, *args, **kw)
|
|
105
117
|
|
|
106
|
-
def parts(self):
|
|
107
|
-
return self._Parts(self)
|
|
108
|
-
|
|
109
118
|
@returns.json
|
|
110
119
|
@http_get("calculators/tco/maintenance")
|
|
111
|
-
def list(
|
|
112
|
-
|
|
113
|
-
|
|
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):
|
|
114
126
|
"""This call will return list of TCO Maintenances."""
|
|
115
127
|
|
|
116
128
|
@returns.json
|
|
@@ -124,8 +136,8 @@ class _TCO(Consumer):
|
|
|
124
136
|
|
|
125
137
|
@returns.json
|
|
126
138
|
@json
|
|
127
|
-
@post("calculators/tco/maintenance")
|
|
128
|
-
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):
|
|
129
141
|
"""This call will create the TCO Maintenance."""
|
|
130
142
|
|
|
131
143
|
@json
|
|
@@ -133,41 +145,131 @@ class _TCO(Consumer):
|
|
|
133
145
|
def update(self, uid: str, tco_part: Body):
|
|
134
146
|
"""This call will update the TCO Maintenance."""
|
|
135
147
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
149
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
150
|
+
class _Parts(Consumer):
|
|
151
|
+
"""Inteface to TCO resource for the RockyRoad API."""
|
|
140
152
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
153
|
+
def __init__(self, Resource, *args, **kw):
|
|
154
|
+
self._base_url = Resource._base_url
|
|
155
|
+
super().__init__(base_url=Resource._base_url, *args, **kw)
|
|
156
|
+
|
|
157
|
+
def parts(self):
|
|
158
|
+
return self.TCO(self)
|
|
159
|
+
|
|
160
|
+
@returns.json
|
|
161
|
+
@http_get("calculators/tco/parts")
|
|
162
|
+
def list(
|
|
163
|
+
self,
|
|
164
|
+
tco_task_uid: Query = None
|
|
165
|
+
):
|
|
166
|
+
"""This call will return list of TCO Parts."""
|
|
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
|
+
|
|
176
|
+
@returns.json
|
|
177
|
+
@http_get("calculators/tco/parts/{uid}")
|
|
178
|
+
def get(self, uid: str):
|
|
179
|
+
"""This call will return the specified TCO Part."""
|
|
180
|
+
|
|
181
|
+
@delete("calculators/tco/parts/{uid}")
|
|
182
|
+
def delete(self, uid: str):
|
|
183
|
+
"""This call will delete the TCO Part."""
|
|
184
|
+
|
|
185
|
+
@returns.json
|
|
186
|
+
@json
|
|
187
|
+
@post("calculators/tco/tasks/{tco_task_uid}/parts")
|
|
188
|
+
def insert(self, tco_task_uid: str, tco_part: Body):
|
|
189
|
+
"""This call will create the TCO Part."""
|
|
190
|
+
|
|
191
|
+
@json
|
|
192
|
+
@patch("calculators/tco/parts/{uid}")
|
|
193
|
+
def update(self, uid: str, tco_part: Body):
|
|
194
|
+
"""This call will update the TCO Part."""
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
@headers({"Ocp-Apim-Subscription-Key": key})
|
|
198
|
+
@retry(max_attempts=20, when=status_5xx())
|
|
199
|
+
class _Tasks(Consumer):
|
|
200
|
+
"""Interface to TCO Tasks resource for the RockyRoad API."""
|
|
201
|
+
|
|
202
|
+
def __init__(self, Resource, *args, **kw):
|
|
203
|
+
self._base_url = Resource._base_url
|
|
204
|
+
super().__init__(base_url=Resource._base_url, *args, **kw)
|
|
205
|
+
|
|
206
|
+
@returns.json
|
|
207
|
+
@http_get("calculators/tco/tasks")
|
|
208
|
+
def list(self, tco_cost_model_uid: Query = None):
|
|
209
|
+
"""This call will return list of TCO Tasks."""
|
|
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
|
+
|
|
216
|
+
@returns.json
|
|
217
|
+
@http_get("calculators/tco/tasks/{uid}")
|
|
218
|
+
def get(self, uid: str):
|
|
219
|
+
"""This call will return the specified TCO Task."""
|
|
220
|
+
|
|
221
|
+
@delete("calculators/tco/tasks/{uid}")
|
|
222
|
+
def delete(self, uid: str):
|
|
223
|
+
"""This call will delete the TCO Task."""
|
|
224
|
+
|
|
225
|
+
@returns.json
|
|
226
|
+
@json
|
|
227
|
+
@post("calculators/tco/cost-models/{tco_cost_model_uid}/tasks")
|
|
228
|
+
def insert(self, tco_cost_model_uid: str, tco_task: Body):
|
|
229
|
+
"""This call will create the TCO Task."""
|
|
230
|
+
|
|
231
|
+
@json
|
|
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):
|
|
234
|
+
"""This call will create multiple TCO Tasks."""
|
|
235
|
+
|
|
236
|
+
@json
|
|
237
|
+
@patch("calculators/tco/tasks/{uid}")
|
|
238
|
+
def update(self, uid: str, tco_task: Body):
|
|
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."""
|
|
144
274
|
|
|
145
|
-
|
|
146
|
-
return self.TCO(self)
|
|
147
|
-
|
|
148
|
-
@returns.json
|
|
149
|
-
@http_get("calculators/tco/maintenance/parts")
|
|
150
|
-
def list(
|
|
151
|
-
self,
|
|
152
|
-
):
|
|
153
|
-
"""This call will return list of TCO Parts."""
|
|
154
|
-
|
|
155
|
-
@returns.json
|
|
156
|
-
@http_get("calculators/tco/maintenance/parts/{uid}")
|
|
157
|
-
def get(self, uid: str):
|
|
158
|
-
"""This call will return the specified TCO Part."""
|
|
159
|
-
|
|
160
|
-
@delete("calculators/tco/maintenance/parts/{uid}")
|
|
161
|
-
def delete(self, uid: str):
|
|
162
|
-
"""This call will delete the TCO Part."""
|
|
163
|
-
|
|
164
|
-
@returns.json
|
|
165
|
-
@json
|
|
166
|
-
@post("calculators/tco/maintenance/parts")
|
|
167
|
-
def insert(self, tco_part: Body):
|
|
168
|
-
"""This call will create the TCO Part."""
|
|
169
|
-
|
|
170
|
-
@json
|
|
171
|
-
@patch("calculators/tco/maintenance/parts/{uid}")
|
|
172
|
-
def update(self, uid: str, tco_part: Body):
|
|
173
|
-
"""This call will update the TCO Part."""
|
|
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
|
|
@@ -34,17 +35,18 @@ rockyroad/modules/module_imports.py,sha256=vWkjAbKKZJyP_M31KlvWmSENDKlIaD9OO1i5M
|
|
|
34
35
|
rockyroad/modules/oracle_installed_base_assets.py,sha256=Kxci11rEcBDs0fuU4s3TNRK_GF_ZJ0Nk0ws85fkbErs,2844
|
|
35
36
|
rockyroad/modules/oracle_knowledge_management.py,sha256=P3nzpdlDtJQAbN7yW2BIDx6h5BHYp4yOm8fADrbKrNs,1873
|
|
36
37
|
rockyroad/modules/oracle_users.py,sha256=wtMcA70JKAQxj1j-izNjNbpZ_DPLN7_Nl59Ay9zXy0U,1726
|
|
37
|
-
rockyroad/modules/parts.py,sha256=
|
|
38
|
+
rockyroad/modules/parts.py,sha256=Ee4bKSoOzhrdMH1RTBSRMIMJf5BRFxkdppxwD22z-mA,5679
|
|
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
|