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,190 @@
1
+
2
+ from vobiz.xml import (
3
+ VobizXMLElement,
4
+ map_type,
5
+ BreakElement
6
+ )
7
+
8
+
9
+ class ContElement(VobizXMLElement):
10
+ _name = 'cont'
11
+ _nestable = [
12
+ 'break',
13
+ 'emphasis',
14
+ 'lang',
15
+ 'p',
16
+ 'phoneme',
17
+ 'prosody',
18
+ 's',
19
+ 'say-as',
20
+ 'sub',
21
+ 'w',
22
+ 'cont'
23
+ ]
24
+
25
+ def __init__(
26
+ self,
27
+ content=None,
28
+ ):
29
+ super(ContElement, self).__init__()
30
+ self.content = content
31
+
32
+ def to_dict(self):
33
+ d = {}
34
+ return {
35
+ k: str(map_type(v))
36
+ for k, v in d.items() if v is not None
37
+ }
38
+
39
+ def add_break(
40
+ self,
41
+ strength=None,
42
+ time=None
43
+ ):
44
+ self.add(
45
+ BreakElement(
46
+ strength=strength,
47
+ time=time,
48
+ ))
49
+ return self
50
+
51
+ def add_emphasis(
52
+ self,
53
+ content,
54
+ level=None,
55
+ ):
56
+ from .emphasisElement import EmphasisElement
57
+
58
+ self.add(
59
+ EmphasisElement(
60
+ content=content,
61
+ level=level,
62
+ ))
63
+ return self
64
+
65
+ def add_lang(
66
+ self,
67
+ content,
68
+ xmllang=None,
69
+ ):
70
+ from .langElement import LangElement
71
+
72
+ self.add(
73
+ LangElement(
74
+ content=content,
75
+ xmllang=xmllang,
76
+ ))
77
+ return self
78
+
79
+ def add_p(
80
+ self,
81
+ content,
82
+ ):
83
+ from .pElement import PElement
84
+
85
+ self.add(
86
+ PElement(
87
+ content=content,
88
+ ))
89
+ return self
90
+
91
+ def add_phoneme(
92
+ self,
93
+ content,
94
+ alphabet=None,
95
+ ph=None,
96
+ ):
97
+ from .phonemeElement import PhonemeElement
98
+
99
+ self.add(
100
+ PhonemeElement(
101
+ content=content,
102
+ alphabet=alphabet,
103
+ ph=ph,
104
+ ))
105
+ return self
106
+
107
+ def add_prosody(
108
+ self,
109
+ content,
110
+ volume=None,
111
+ rate=None,
112
+ pitch=None,
113
+ ):
114
+ from .prosodyElement import ProsodyElement
115
+
116
+ self.add(
117
+ ProsodyElement(
118
+ content=content,
119
+ volume=volume,
120
+ rate=rate,
121
+ pitch=pitch,
122
+ ))
123
+ return self
124
+
125
+ def add_s(
126
+ self,
127
+ content,
128
+ ):
129
+ from .sElement import SElement
130
+
131
+ self.add(
132
+ SElement(
133
+ content=content,
134
+ ))
135
+ return self
136
+
137
+ def add_say_as(
138
+ self,
139
+ content,
140
+ interpret_as=None,
141
+ format=None,
142
+ ):
143
+ from .sayAsElement import SayAsElement
144
+
145
+ self.add(
146
+ SayAsElement(
147
+ content=content,
148
+ interpret_as=interpret_as,
149
+ format=format,
150
+ ))
151
+ return self
152
+
153
+ def add_sub(
154
+ self,
155
+ content,
156
+ alias=None,
157
+ ):
158
+ from .subElement import SubElement
159
+
160
+ self.add(
161
+ SubElement(
162
+ content=content,
163
+ alias=alias,
164
+ ))
165
+ return self
166
+
167
+ def add_w(
168
+ self,
169
+ content,
170
+ role=None,
171
+ ):
172
+ from .wElement import WElement
173
+
174
+ self.add(
175
+ WElement(
176
+ content=content,
177
+ role=role,
178
+ ))
179
+ return self
180
+
181
+ def add_cont(
182
+ self,
183
+ content=None,
184
+ ):
185
+
186
+ self.add(
187
+ ContElement(
188
+ content=content,
189
+ ))
190
+ return self
@@ -0,0 +1,174 @@
1
+ from vobiz.xml import (
2
+ VobizXMLElement,
3
+ map_type,
4
+ BreakElement,
5
+ )
6
+ from vobiz.utils.validators import *
7
+
8
+
9
+ class EmphasisElement(VobizXMLElement):
10
+ _name = 'emphasis'
11
+ _nestable = [
12
+ 'break',
13
+ 'emphasis',
14
+ 'lang',
15
+ 'phoneme',
16
+ 'prosody',
17
+ 'say-as',
18
+ 'sub',
19
+ 'w'
20
+ ]
21
+
22
+ @property
23
+ def level(self):
24
+ return self.__level
25
+
26
+ @level.setter
27
+ def level(self, value):
28
+ self.__level = str(
29
+ value) if value is not None else None
30
+
31
+ @validate_args(
32
+ value=[of_type(str)],
33
+ )
34
+ def set_level(self, value):
35
+ self.level = value
36
+ return self
37
+
38
+ def __init__(
39
+ self,
40
+ content=None,
41
+ level=None,
42
+ ):
43
+
44
+ super(EmphasisElement, self).__init__()
45
+ self.content = content
46
+ self.level = level
47
+
48
+ def to_dict(self):
49
+ d = {
50
+ 'level': self.level,
51
+ }
52
+
53
+ return {
54
+ k: str(map_type(v))
55
+ for k, v in d.items() if v is not None
56
+ }
57
+
58
+ def add_break(
59
+ self,
60
+ strength=None,
61
+ time=None
62
+ ):
63
+ self.add(
64
+ BreakElement(
65
+ strength=strength,
66
+ time=time,
67
+ ))
68
+ return self
69
+
70
+ def add_lang(
71
+ self,
72
+ content,
73
+ xmllang=None,
74
+ ):
75
+ from .langElement import LangElement
76
+
77
+ self.add(
78
+ LangElement(
79
+ content=content,
80
+ xmllang=xmllang,
81
+ ))
82
+ return self
83
+
84
+ def add_emphasis(
85
+ self,
86
+ content,
87
+ level=None,
88
+ ):
89
+ from .emphasisElement import EmphasisElement
90
+
91
+ self.add(
92
+ EmphasisElement(
93
+ content=content,
94
+ level=level,
95
+ ))
96
+ return self
97
+
98
+ def add_phoneme(
99
+ self,
100
+ content,
101
+ alphabet=None,
102
+ ph=None,
103
+ ):
104
+ from .phonemeElement import PhonemeElement
105
+
106
+ self.add(
107
+ PhonemeElement(
108
+ content=content,
109
+ alphabet=alphabet,
110
+ ph=ph,
111
+ ))
112
+ return self
113
+
114
+ def add_prosody(
115
+ self,
116
+ content,
117
+ volume=None,
118
+ rate=None,
119
+ pitch=None,
120
+ ):
121
+ from .prosodyElement import ProsodyElement
122
+
123
+ self.add(
124
+ ProsodyElement(
125
+ content=content,
126
+ volume=volume,
127
+ rate=rate,
128
+ pitch=pitch,
129
+ ))
130
+ return self
131
+
132
+ def add_say_as(
133
+ self,
134
+ content,
135
+ interpret_as=None,
136
+ format=None,
137
+ ):
138
+ from .sayAsElement import SayAsElement
139
+
140
+ self.add(
141
+ SayAsElement(
142
+ content=content,
143
+ interpret_as=interpret_as,
144
+ format=format,
145
+ ))
146
+ return self
147
+
148
+ def add_sub(
149
+ self,
150
+ content,
151
+ alias=None,
152
+ ):
153
+ from .subElement import SubElement
154
+
155
+ self.add(
156
+ SubElement(
157
+ content=content,
158
+ alias=alias,
159
+ ))
160
+ return self
161
+
162
+ def add_w(
163
+ self,
164
+ content,
165
+ role=None,
166
+ ):
167
+ from .wElement import WElement
168
+
169
+ self.add(
170
+ WElement(
171
+ content=content,
172
+ role=role,
173
+ ))
174
+ return self
@@ -0,0 +1,294 @@
1
+ from vobiz.xml import (
2
+ VobizXMLElement,
3
+ map_type,
4
+ SpeakElement,
5
+ PlayElement,
6
+ WaitElement
7
+ )
8
+ from vobiz.utils.validators import *
9
+
10
+
11
+ class GetDigitsElement(VobizXMLElement):
12
+ _name = 'GetDigits'
13
+ _nestable = [
14
+ 'Speak',
15
+ 'Play',
16
+ 'Wait'
17
+ ]
18
+
19
+ @property
20
+ def action(self):
21
+ return self.__action
22
+
23
+ @action.setter
24
+ def action(self, value):
25
+ self.__action = str(value) if value is not None else None
26
+
27
+ @validate_args(
28
+ value=[of_type(str)],
29
+ )
30
+ def set_action(self, value):
31
+ self.action = value
32
+ return self
33
+
34
+ @property
35
+ def method(self):
36
+ return self.__method
37
+
38
+ @method.setter
39
+ def method(self, value):
40
+ self.__method = str(value) if value is not None else None
41
+
42
+ @validate_args(
43
+ value=[of_type(str)],
44
+ )
45
+ def set_method(self, value):
46
+ self.method = value
47
+ return self
48
+
49
+ @property
50
+ def timeout(self):
51
+ return self.__timeout
52
+
53
+ @timeout.setter
54
+ def timeout(self, value):
55
+ self.__timeout = int(value) if value is not None else None
56
+
57
+ @validate_args(
58
+ value=[of_type(int)],
59
+ )
60
+ def set_timeout(self, value):
61
+ self.timeout = value
62
+ return self
63
+
64
+ @property
65
+ def digit_timeout(self):
66
+ return self.__digit_timeout
67
+
68
+ @digit_timeout.setter
69
+ def digit_timeout(self, value):
70
+ self.__digit_timeout = int(value) if value is not None else None
71
+
72
+ @validate_args(
73
+ value=[of_type(int)],
74
+ )
75
+ def set_digit_timeout(self, value):
76
+ self.digit_timeout = value
77
+ return self
78
+
79
+ @property
80
+ def finish_on_key(self):
81
+ return self.__finish_on_key
82
+
83
+ @finish_on_key.setter
84
+ def finish_on_key(self, value):
85
+ self.__finish_on_key = str(
86
+ value) if value is not None else None
87
+
88
+ @validate_args(
89
+ value=[of_type(str)],
90
+ )
91
+ def set_finish_on_key(self, value):
92
+ self.finish_on_key = value
93
+ return self
94
+
95
+ @property
96
+ def num_digits(self):
97
+ return self.__num_digits
98
+
99
+ @num_digits.setter
100
+ def num_digits(self, value):
101
+ self.__num_digits = int(value) if value is not None else None
102
+
103
+ @validate_args(
104
+ value=[of_type(int)],
105
+ )
106
+ def set_num_digits(self, value):
107
+ self.num_digits = value
108
+ return self
109
+
110
+ @property
111
+ def retries(self):
112
+ return self.__retries
113
+
114
+ @retries.setter
115
+ def retries(self, value):
116
+ self.__retries = int(value) if value is not None else None
117
+
118
+ @validate_args(
119
+ value=[of_type(int)],
120
+ )
121
+ def set_retries(self, value):
122
+ self.retries = value
123
+ return self
124
+
125
+ @property
126
+ def redirect(self):
127
+ return self.__redirect
128
+
129
+ @redirect.setter
130
+ def redirect(self, value):
131
+ self.__redirect = bool(value) if value is not None else None
132
+
133
+ @validate_args(
134
+ value=[of_type_exact(bool)],
135
+ )
136
+ def set_redirect(self, value):
137
+ self.redirect = value
138
+ return self
139
+
140
+ @property
141
+ def play_beep(self):
142
+ return self.__play_beep
143
+
144
+ @play_beep.setter
145
+ def play_beep(self, value):
146
+ self.__play_beep = bool(value) if value is not None else None
147
+
148
+ @validate_args(
149
+ value=[of_type_exact(bool)],
150
+ )
151
+ def set_play_beep(self, value):
152
+ self.play_beep = value
153
+ return self
154
+
155
+ @property
156
+ def valid_digits(self):
157
+ return self.__valid_digits
158
+
159
+ @valid_digits.setter
160
+ def valid_digits(self, value):
161
+ self.__valid_digits = str(
162
+ value) if value is not None else None
163
+
164
+ @validate_args(
165
+ value=[of_type(str)],
166
+ )
167
+ def set_valid_digits(self, value):
168
+ self.valid_digits = value
169
+ return self
170
+
171
+ @property
172
+ def invalid_digits_sound(self):
173
+ return self.__invalid_digits_sound
174
+
175
+ @invalid_digits_sound.setter
176
+ def invalid_digits_sound(self, value):
177
+ self.__invalid_digits_sound = str(
178
+ value) if value is not None else None
179
+
180
+ @validate_args(
181
+ value=[of_type(str)],
182
+ )
183
+ def set_invalid_digits_sound(self, value):
184
+ self.invalid_digits_sound = value
185
+ return self
186
+
187
+ @property
188
+ def log(self):
189
+ return self.__log
190
+
191
+ @log.setter
192
+ def log(self, value):
193
+ self.__log = bool(value) if value is not None else None
194
+
195
+ @validate_args(
196
+ value=[of_type_exact(bool)],
197
+ )
198
+ def set_log(self, value):
199
+ self.log = value
200
+ return self
201
+
202
+ def __init__(
203
+ self,
204
+ action=None,
205
+ method=None,
206
+ timeout=None,
207
+ digit_timeout=None,
208
+ finish_on_key=None,
209
+ num_digits=None,
210
+ retries=None,
211
+ redirect=None,
212
+ play_beep=None,
213
+ valid_digits=None,
214
+ invalid_digits_sound=None,
215
+ log=None,
216
+ ):
217
+ super(GetDigitsElement, self).__init__()
218
+
219
+ self.action = action
220
+ self.method = method
221
+ self.timeout = timeout
222
+ self.digit_timeout = digit_timeout
223
+ self.finish_on_key = finish_on_key
224
+ self.num_digits = num_digits
225
+ self.retries = retries
226
+ self.redirect = redirect
227
+ self.play_beep = play_beep
228
+ self.valid_digits = valid_digits
229
+ self.invalid_digits_sound = invalid_digits_sound
230
+ self.log = log
231
+
232
+ def to_dict(self):
233
+ d = {
234
+ 'action': self.action,
235
+ 'method': self.method,
236
+ 'timeout': self.timeout,
237
+ 'digitTimeout': self.digit_timeout,
238
+ 'finishOnKey': self.finish_on_key,
239
+ 'numDigits': self.num_digits,
240
+ 'retries': self.retries,
241
+ 'redirect': self.redirect,
242
+ 'playBeep': self.play_beep,
243
+ 'validDigits': self.valid_digits,
244
+ 'invalidDigitsSound': self.invalid_digits_sound,
245
+ 'log': self.log,
246
+ }
247
+ return {
248
+ k: str(map_type(v))
249
+ for k, v in d.items() if v is not None
250
+ }
251
+
252
+ def add_speak(
253
+ self,
254
+ content,
255
+ voice=None,
256
+ language=None,
257
+ loop=None,
258
+ ):
259
+ self.add(
260
+ SpeakElement(
261
+ content=content,
262
+ voice=voice,
263
+ language=language,
264
+ loop=loop,
265
+ ))
266
+ return self
267
+
268
+ def add_play(
269
+ self,
270
+ content,
271
+ loop=None,
272
+ ):
273
+ self.add(PlayElement(
274
+ content=content,
275
+ loop=loop,
276
+ ))
277
+ return self
278
+
279
+ def add_wait(
280
+ self,
281
+ length=None,
282
+ silence=None,
283
+ min_silence=None,
284
+ beep=None,
285
+ ):
286
+
287
+ self.add(
288
+ WaitElement(
289
+ length=length,
290
+ silence=silence,
291
+ min_silence=min_silence,
292
+ beep=beep,
293
+ ))
294
+ return self