vobiz-python 0.1.0__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.
Files changed (63) hide show
  1. vobiz/__init__.py +4 -0
  2. vobiz/base.py +237 -0
  3. vobiz/exceptions.py +34 -0
  4. vobiz/resources/__init__.py +12 -0
  5. vobiz/resources/accounts.py +59 -0
  6. vobiz/resources/applications.py +138 -0
  7. vobiz/resources/calls_vobiz.py +206 -0
  8. vobiz/resources/cdrs.py +46 -0
  9. vobiz/resources/credentials.py +104 -0
  10. vobiz/resources/endpoints.py +101 -0
  11. vobiz/resources/ip_access_control_lists.py +100 -0
  12. vobiz/resources/numbers.py +134 -0
  13. vobiz/resources/origination_uris.py +109 -0
  14. vobiz/resources/recordings.py +91 -0
  15. vobiz/resources/sip_trunks.py +99 -0
  16. vobiz/resources/subaccounts.py +101 -0
  17. vobiz/rest/__init__.py +2 -0
  18. vobiz/rest/client.py +277 -0
  19. vobiz/utils/__init__.py +72 -0
  20. vobiz/utils/interactive.py +50 -0
  21. vobiz/utils/jwt.py +97 -0
  22. vobiz/utils/location.py +6 -0
  23. vobiz/utils/signature_v3.py +111 -0
  24. vobiz/utils/template.py +50 -0
  25. vobiz/utils/validators.py +280 -0
  26. vobiz/version.py +2 -0
  27. vobiz/xml/ConferenceElement.py +485 -0
  28. vobiz/xml/DTMFElement.py +41 -0
  29. vobiz/xml/DialElement.py +371 -0
  30. vobiz/xml/MultiPartyCallElement.py +711 -0
  31. vobiz/xml/ResponseElement.py +414 -0
  32. vobiz/xml/VobizXMLElement.py +48 -0
  33. vobiz/xml/__init__.py +31 -0
  34. vobiz/xml/breakElement.py +62 -0
  35. vobiz/xml/contElement.py +190 -0
  36. vobiz/xml/emphasisElement.py +174 -0
  37. vobiz/xml/getDigitsElement.py +294 -0
  38. vobiz/xml/getInputElement.py +369 -0
  39. vobiz/xml/hangupElement.py +57 -0
  40. vobiz/xml/langElement.py +197 -0
  41. vobiz/xml/messageElement.py +115 -0
  42. vobiz/xml/numberElement.py +77 -0
  43. vobiz/xml/pElement.py +164 -0
  44. vobiz/xml/phonemeElement.py +62 -0
  45. vobiz/xml/playElement.py +41 -0
  46. vobiz/xml/preAnswerElement.py +148 -0
  47. vobiz/xml/prosodyElement.py +227 -0
  48. vobiz/xml/recordElement.py +337 -0
  49. vobiz/xml/redirectElement.py +42 -0
  50. vobiz/xml/sElement.py +154 -0
  51. vobiz/xml/sayAsElement.py +61 -0
  52. vobiz/xml/speakElement.py +249 -0
  53. vobiz/xml/streamElement.py +123 -0
  54. vobiz/xml/subElement.py +43 -0
  55. vobiz/xml/userElement.py +79 -0
  56. vobiz/xml/wElement.py +144 -0
  57. vobiz/xml/waitElement.py +93 -0
  58. vobiz/xml/xmlUtils.py +6 -0
  59. vobiz_python-0.1.0.dist-info/METADATA +640 -0
  60. vobiz_python-0.1.0.dist-info/RECORD +63 -0
  61. vobiz_python-0.1.0.dist-info/WHEEL +5 -0
  62. vobiz_python-0.1.0.dist-info/licenses/LICENSE.txt +19 -0
  63. vobiz_python-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,485 @@
1
+ from vobiz.utils.validators import *
2
+ from vobiz.xml import VobizXMLElement, map_type
3
+
4
+
5
+ class ConferenceElement(VobizXMLElement):
6
+ _name = 'Conference'
7
+ _nestable = []
8
+
9
+ @property
10
+ def muted(self):
11
+ return self.__muted
12
+
13
+ @muted.setter
14
+ def muted(self, value):
15
+ self.__muted = bool(value) if value is not None else None
16
+
17
+ @validate_args(
18
+ value=[of_type_exact(bool)],
19
+ )
20
+ def set_muted(self, value):
21
+ self.muted = value
22
+ return self
23
+
24
+ @property
25
+ def enter_sound(self):
26
+ return self.__enter_sound
27
+
28
+ @enter_sound.setter
29
+ def enter_sound(self, value):
30
+ self.__enter_sound = str(
31
+ value) if value is not None else None
32
+
33
+ @validate_args(
34
+ value=[of_type(str)],
35
+ )
36
+ def set_enter_sound(self, value):
37
+ self.enter_sound = value
38
+ return self
39
+
40
+ @property
41
+ def exit_sound(self):
42
+ return self.__exit_sound
43
+
44
+ @exit_sound.setter
45
+ def exit_sound(self, value):
46
+ self.__exit_sound = str(value) if value is not None else None
47
+
48
+ @validate_args(
49
+ value=[of_type(str)],
50
+ )
51
+ def set_exit_sound(self, value):
52
+ self.exit_sound = value
53
+ return self
54
+
55
+ @property
56
+ def start_conference_on_enter(self):
57
+ return self.__start_conference_on_enter
58
+
59
+ @start_conference_on_enter.setter
60
+ def start_conference_on_enter(self, value):
61
+ self.__start_conference_on_enter = bool(
62
+ value) if value is not None else None
63
+
64
+ @validate_args(
65
+ value=[of_type_exact(bool)],
66
+ )
67
+ def set_start_conference_on_enter(self, value):
68
+ self.start_conference_on_enter = value
69
+ return self
70
+
71
+ @property
72
+ def end_conference_on_exit(self):
73
+ return self.__end_conference_on_exit
74
+
75
+ @end_conference_on_exit.setter
76
+ def end_conference_on_exit(self, value):
77
+ self.__end_conference_on_exit = bool(
78
+ value) if value is not None else None
79
+
80
+ @validate_args(
81
+ value=[of_type_exact(bool)],
82
+ )
83
+ def set_end_conference_on_exit(self, value):
84
+ self.end_conference_on_exit = value
85
+ return self
86
+
87
+ @property
88
+ def stay_alone(self):
89
+ return self.__stay_alone
90
+
91
+ @stay_alone.setter
92
+ def stay_alone(self, value):
93
+ self.__stay_alone = bool(value) if value is not None else None
94
+
95
+ @validate_args(
96
+ value=[of_type_exact(bool)],
97
+ )
98
+ def set_stay_alone(self, value):
99
+ self.stay_alone = value
100
+ return self
101
+
102
+ @property
103
+ def wait_sound(self):
104
+ return self.__wait_sound
105
+
106
+ @wait_sound.setter
107
+ def wait_sound(self, value):
108
+ self.__wait_sound = str(value) if value is not None else None
109
+
110
+ @validate_args(
111
+ value=[of_type(str)],
112
+ )
113
+ def set_wait_sound(self, value):
114
+ self.wait_sound = value
115
+ return self
116
+
117
+ @property
118
+ def max_members(self):
119
+ return self.__max_members
120
+
121
+ @max_members.setter
122
+ def max_members(self, value):
123
+ self.__max_members = int(value) if value is not None else None
124
+
125
+ @validate_args(
126
+ value=[of_type(int)],
127
+ )
128
+ def set_max_members(self, value):
129
+ self.max_members = value
130
+ return self
131
+
132
+ @property
133
+ def record(self):
134
+ return self.__record
135
+
136
+ @record.setter
137
+ def record(self, value):
138
+ self.__record = bool(value) if value is not None else None
139
+
140
+ @validate_args(
141
+ value=[of_type_exact(bool)],
142
+ )
143
+ def set_record(self, value):
144
+ self.record = value
145
+ return self
146
+
147
+ @property
148
+ def record_file_format(self):
149
+ return self.__record_file_format
150
+
151
+ @record_file_format.setter
152
+ def record_file_format(self, value):
153
+ self.__record_file_format = str(
154
+ value) if value is not None else None
155
+
156
+ @validate_args(
157
+ value=[of_type(str)],
158
+ )
159
+ def set_record_file_format(self, value):
160
+ self.record_file_format = value
161
+ return self
162
+
163
+ @property
164
+ def time_limit(self):
165
+ return self.__time_limit
166
+
167
+ @time_limit.setter
168
+ def time_limit(self, value):
169
+ self.__time_limit = int(value) if value is not None else None
170
+
171
+ @validate_args(
172
+ value=[of_type(int)],
173
+ )
174
+ def set_time_limit(self, value):
175
+ self.time_limit = value
176
+ return self
177
+
178
+ @property
179
+ def hangup_on_star(self):
180
+ return self.__hangup_on_star
181
+
182
+ @hangup_on_star.setter
183
+ def hangup_on_star(self, value):
184
+ self.__hangup_on_star = bool(value) if value is not None else None
185
+
186
+ @validate_args(
187
+ value=[of_type_exact(bool)],
188
+ )
189
+ def set_hangup_on_star(self, value):
190
+ self.hangup_on_star = value
191
+ return self
192
+
193
+ @property
194
+ def action(self):
195
+ return self.__action
196
+
197
+ @action.setter
198
+ def action(self, value):
199
+ self.__action = str(value) if value is not None else None
200
+
201
+ @validate_args(
202
+ value=[of_type(str)],
203
+ )
204
+ def set_action(self, value):
205
+ self.action = value
206
+ return self
207
+
208
+ @property
209
+ def method(self):
210
+ return self.__method
211
+
212
+ @method.setter
213
+ def method(self, value):
214
+ self.__method = str(value) if value is not None else None
215
+
216
+ @validate_args(
217
+ value=[of_type(str)],
218
+ )
219
+ def set_method(self, value):
220
+ self.method = value
221
+ return self
222
+
223
+ @property
224
+ def callback_url(self):
225
+ return self.__callback_url
226
+
227
+ @callback_url.setter
228
+ def callback_url(self, value):
229
+ self.__callback_url = str(
230
+ value) if value is not None else None
231
+
232
+ @validate_args(
233
+ value=[of_type(str)],
234
+ )
235
+ def set_callback_url(self, value):
236
+ self.callback_url = value
237
+ return self
238
+
239
+ @property
240
+ def callback_method(self):
241
+ return self.__callback_method
242
+
243
+ @callback_method.setter
244
+ def callback_method(self, value):
245
+ self.__callback_method = str(
246
+ value) if value is not None else None
247
+
248
+ @validate_args(
249
+ value=[of_type(str)],
250
+ )
251
+ def set_callback_method(self, value):
252
+ self.callback_method = value
253
+ return self
254
+
255
+ @property
256
+ def digits_match(self):
257
+ return self.__digits_match
258
+
259
+ @digits_match.setter
260
+ def digits_match(self, value):
261
+ self.__digits_match = str(
262
+ value) if value is not None else None
263
+
264
+ @validate_args(
265
+ value=[of_type(str)],
266
+ )
267
+ def set_digits_match(self, value):
268
+ self.digits_match = value
269
+ return self
270
+
271
+ @property
272
+ def floor_event(self):
273
+ return self.__floor_event
274
+
275
+ @floor_event.setter
276
+ def floor_event(self, value):
277
+ self.__floor_event = bool(value) if value is not None else None
278
+
279
+ @validate_args(
280
+ value=[of_type_exact(bool)],
281
+ )
282
+ def set_floor_event(self, value):
283
+ self.floor_event = value
284
+ return self
285
+
286
+ @property
287
+ def redirect(self):
288
+ return self.__redirect
289
+
290
+ @redirect.setter
291
+ def redirect(self, value):
292
+ self.__redirect = bool(value) if value is not None else None
293
+
294
+ @validate_args(
295
+ value=[of_type_exact(bool)],
296
+ )
297
+ def set_redirect(self, value):
298
+ self.redirect = value
299
+ return self
300
+
301
+ @property
302
+ def relay_dtmf(self):
303
+ return self.__relay_dtmf
304
+
305
+ @relay_dtmf.setter
306
+ def relay_dtmf(self, value):
307
+ self.__relay_dtmf = bool(value) if value is not None else None
308
+
309
+ @validate_args(
310
+ value=[of_type_exact(bool)],
311
+ )
312
+ def set_relay_dtmf(self, value):
313
+ self.relay_dtmf = value
314
+ return self
315
+
316
+ @property
317
+ def send_digits(self):
318
+ return self.__send_digits
319
+
320
+ @send_digits.setter
321
+ def send_digits(self, value):
322
+ self.__send_digits = str(
323
+ value) if value is not None else None
324
+
325
+ @validate_args(
326
+ value=[of_type(str)],
327
+ )
328
+ def set_send_digits(self, value):
329
+ self.send_digits = value
330
+ return self
331
+
332
+ @property
333
+ def record_when_alone(self):
334
+ return self.__record_when_alone
335
+
336
+ @record_when_alone.setter
337
+ def record_when_alone(self, value):
338
+ self.__record_when_alone = str(
339
+ value) if value is not None else None
340
+
341
+ @validate_args(
342
+ value=[of_type(str)],
343
+ )
344
+ def set_record_when_alone(self, value):
345
+ self.record_when_alone = value
346
+ return self
347
+
348
+ @property
349
+ def transcription_type(self):
350
+ return self.__transcription_type
351
+
352
+ @transcription_type.setter
353
+ def transcription_type(self, value):
354
+ self.__transcription_type = str(
355
+ value) if value is not None else None
356
+
357
+ @validate_args(
358
+ value=[of_type(str)],
359
+ )
360
+ def set_transcription_type(self, value):
361
+ self.transcription_type = value
362
+ return self
363
+
364
+ @property
365
+ def transcription_url(self):
366
+ return self.__transcription_url
367
+
368
+ @transcription_url.setter
369
+ def transcription_url(self, value):
370
+ self.__transcription_url = str(
371
+ value) if value is not None else None
372
+
373
+ @validate_args(
374
+ value=[of_type(str)],
375
+ )
376
+ def set_transcription_url(self, value):
377
+ self.transcription_url = value
378
+ return self
379
+
380
+ @property
381
+ def transcription_method(self):
382
+ return self.__transcription_method
383
+
384
+ @transcription_method.setter
385
+ def transcription_method(self, value):
386
+ self.__transcription_method = str(
387
+ value) if value is not None else None
388
+
389
+ @validate_args(
390
+ value=[of_type(str)],
391
+ )
392
+ def set_transcription_method(self, value):
393
+ self.transcription_method = value
394
+ return self
395
+
396
+ def __init__(
397
+ self,
398
+ content=None,
399
+ muted=None,
400
+ enter_sound=None,
401
+ exit_sound=None,
402
+ start_conference_on_enter=None,
403
+ end_conference_on_exit=None,
404
+ stay_alone=None,
405
+ wait_sound=None,
406
+ max_members=None,
407
+ record=None,
408
+ record_file_format=None,
409
+ time_limit=None,
410
+ hangup_on_star=None,
411
+ action=None,
412
+ method=None,
413
+ callback_url=None,
414
+ callback_method=None,
415
+ digits_match=None,
416
+ floor_event=None,
417
+ redirect=None,
418
+ relay_dtmf=None,
419
+ send_digits=None,
420
+ record_when_alone=None,
421
+ transcription_type=None,
422
+ transcription_url=None,
423
+ transcription_method=None,
424
+ ):
425
+ super(ConferenceElement, self).__init__()
426
+
427
+ self.content = content
428
+ self.muted = muted
429
+ self.enter_sound = enter_sound
430
+ self.exit_sound = exit_sound
431
+ self.start_conference_on_enter = start_conference_on_enter
432
+ self.end_conference_on_exit = end_conference_on_exit
433
+ self.stay_alone = stay_alone
434
+ self.wait_sound = wait_sound
435
+ self.max_members = max_members
436
+ self.record = record
437
+ self.record_file_format = record_file_format
438
+ self.time_limit = time_limit
439
+ self.hangup_on_star = hangup_on_star
440
+ self.action = action
441
+ self.method = method
442
+ self.callback_url = callback_url
443
+ self.callback_method = callback_method
444
+ self.digits_match = digits_match
445
+ self.floor_event = floor_event
446
+ self.redirect = redirect
447
+ self.relay_dtmf = relay_dtmf
448
+ self.send_digits = send_digits
449
+ self.record_when_alone = record_when_alone
450
+ self.transcription_type = transcription_type
451
+ self.transcription_url = transcription_url
452
+ self.transcription_method = transcription_method
453
+
454
+ def to_dict(self):
455
+ d = {
456
+ 'muted': self.muted,
457
+ 'enterSound': self.enter_sound,
458
+ 'exitSound': self.exit_sound,
459
+ 'startConferenceOnEnter': self.start_conference_on_enter,
460
+ 'endConferenceOnExit': self.end_conference_on_exit,
461
+ 'stayAlone': self.stay_alone,
462
+ 'waitSound': self.wait_sound,
463
+ 'maxMembers': self.max_members,
464
+ 'record': self.record,
465
+ 'recordFileFormat': self.record_file_format,
466
+ 'timeLimit': self.time_limit,
467
+ 'hangupOnStar': self.hangup_on_star,
468
+ 'action': self.action,
469
+ 'method': self.method,
470
+ 'callbackUrl': self.callback_url,
471
+ 'callbackMethod': self.callback_method,
472
+ 'digitsMatch': self.digits_match,
473
+ 'floorEvent': self.floor_event,
474
+ 'redirect': self.redirect,
475
+ 'relayDTMF': self.relay_dtmf,
476
+ 'sendDigits': self.send_digits,
477
+ 'recordWhenAlone': self.record_when_alone,
478
+ 'transcriptionType': self.transcription_type,
479
+ 'transcriptionUrl': self.transcription_url,
480
+ 'transcriptionMethod': self.transcription_method,
481
+ }
482
+ return {
483
+ k: str(map_type(v))
484
+ for k, v in d.items() if v is not None
485
+ }
@@ -0,0 +1,41 @@
1
+ from vobiz.xml import VobizXMLElement, map_type
2
+ from vobiz.utils.validators import *
3
+
4
+
5
+ class DTMFElement(VobizXMLElement):
6
+ _name = 'DTMF'
7
+ _nestable = []
8
+
9
+ @property
10
+ def async_(self):
11
+ return self.__async
12
+
13
+ @async_.setter
14
+ def async_(self, value):
15
+ self.__async = bool(value) if value is not None else None
16
+
17
+ @validate_args(
18
+ value=[of_type_exact(bool)],
19
+ )
20
+ def set_async(self, value):
21
+ self.async_ = value
22
+ return self
23
+
24
+ def __init__(
25
+ self,
26
+ content,
27
+ async_=None,
28
+ ):
29
+ super(DTMFElement, self).__init__()
30
+
31
+ self.content = content
32
+ self.async_ = async_
33
+
34
+ def to_dict(self):
35
+ d = {
36
+ 'async': self.async_,
37
+ }
38
+ return {
39
+ k: str(map_type(v))
40
+ for k, v in d.items() if v is not None
41
+ }