bandwidth-sdk 6.2.0 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bandwidth/api_helper.rb +19 -29
  3. data/lib/bandwidth/client.rb +8 -8
  4. data/lib/bandwidth/configuration.rb +20 -32
  5. data/lib/bandwidth/http/auth/{two_factor_auth_basic_auth.rb → multi_factor_auth_basic_auth.rb} +3 -3
  6. data/lib/bandwidth/http/faraday_client.rb +1 -1
  7. data/lib/bandwidth/messaging_lib/messaging/client.rb +14 -5
  8. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +78 -71
  9. data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +3 -5
  10. data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +5 -2
  11. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +31 -11
  12. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +54 -25
  13. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +102 -24
  14. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +23 -4
  15. data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +20 -4
  16. data/lib/bandwidth/messaging_lib/messaging/models/media.rb +27 -80
  17. data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +32 -14
  18. data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +28 -8
  19. data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +20 -4
  20. data/lib/bandwidth/models/base_model.rb +30 -8
  21. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/client.rb +15 -6
  22. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/base_controller.rb +3 -5
  23. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/mfa_controller.rb +28 -23
  24. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/error_with_request_exception.rb +5 -2
  25. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/forbidden_request_exception.rb +4 -1
  26. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/unauthorized_request_exception.rb +4 -1
  27. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_code_request_schema.rb +27 -12
  28. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_messaging_response.rb +17 -2
  29. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_code_response.rb +17 -2
  30. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_request_schema.rb +29 -10
  31. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_voice_response.rb +17 -2
  32. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +23 -0
  33. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +212 -210
  34. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +3 -5
  35. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +4 -1
  36. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +17 -2
  37. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +20 -4
  38. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +28 -7
  39. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +43 -18
  40. data/lib/bandwidth/utilities/date_time_helper.rb +156 -0
  41. data/lib/bandwidth/utilities/file_wrapper.rb +1 -2
  42. data/lib/bandwidth/voice_lib/voice/client.rb +14 -5
  43. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +418 -379
  44. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +3 -5
  45. data/lib/bandwidth/voice_lib/voice/exceptions/{api_error_response_exception.rb → api_error_exception.rb} +8 -5
  46. data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +343 -0
  47. data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +250 -0
  48. data/lib/bandwidth/voice_lib/voice/models/call_state.rb +284 -0
  49. data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +2 -20
  50. data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +211 -0
  51. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +2 -20
  52. data/lib/bandwidth/voice_lib/voice/models/{conference_member_detail.rb → conference_member_state.rb} +43 -20
  53. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +173 -0
  54. data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +153 -0
  55. data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +301 -0
  56. data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +256 -0
  57. data/lib/bandwidth/voice_lib/voice/models/diversion.rb +80 -0
  58. data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +17 -0
  59. data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +218 -0
  60. data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +20 -0
  61. data/lib/bandwidth/voice_lib/voice/models/{modify_call_recording_state.rb → modify_call_recording_request.rb} +19 -6
  62. data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +156 -0
  63. data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +144 -0
  64. data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +7 -4
  65. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +4 -7
  66. data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +108 -0
  67. data/lib/bandwidth/voice_lib/voice/models/transcript.rb +20 -4
  68. data/lib/bandwidth/voice_lib/voice/models/transcription.rb +35 -17
  69. data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +89 -0
  70. data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +18 -1
  71. data/lib/bandwidth/voice_lib/voice.rb +20 -18
  72. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +7 -2
  73. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +4 -4
  74. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +75 -64
  75. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +3 -5
  76. data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +5 -2
  77. data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +20 -5
  78. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +37 -14
  79. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +15 -2
  80. data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +20 -4
  81. data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +20 -3
  82. data/lib/bandwidth.rb +20 -18
  83. data/test/integration/test_integration.rb +92 -57
  84. metadata +35 -31
  85. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +0 -22
  86. data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +0 -207
  87. data/lib/bandwidth/voice_lib/voice/models/api_call_state_response.rb +0 -164
  88. data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +0 -248
  89. data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +0 -116
  90. data/lib/bandwidth/voice_lib/voice/models/api_modify_conference_request.rb +0 -107
  91. data/lib/bandwidth/voice_lib/voice/models/api_transcribe_recording_request.rb +0 -80
  92. data/lib/bandwidth/voice_lib/voice/models/conference_detail.rb +0 -108
  93. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata_response.rb +0 -126
  94. data/lib/bandwidth/voice_lib/voice/models/disconnect_cause_enum.rb +0 -47
  95. data/lib/bandwidth/voice_lib/voice/models/recording_metadata_response.rb +0 -190
  96. data/lib/bandwidth/voice_lib/voice/models/state2_enum.rb +0 -20
  97. data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +0 -29
  98. data/lib/bandwidth/voice_lib/voice/models/status3_enum.rb +0 -32
@@ -11,12 +11,12 @@ module Voice
11
11
  super(config, http_call_back: http_call_back)
12
12
  end
13
13
 
14
- # Creates an outbound call
14
+ # Creates an outbound phone call.
15
15
  # @param [String] account_id Required parameter: Example:
16
- # @param [ApiCreateCallRequest] body Optional parameter: Example:
17
- # @return [ApiCallResponse] response from the API call
16
+ # @param [CreateCallRequest] body Required parameter: Example:
17
+ # @return [CreateCallResponse] response from the API call
18
18
  def create_call(account_id,
19
- body: nil)
19
+ body)
20
20
  # Prepare query url.
21
21
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
22
22
  _query_builder << '/api/v2/accounts/{accountId}/calls'
@@ -42,42 +42,43 @@ module Voice
42
42
  _response = execute_request(_request)
43
43
 
44
44
  # Validate response against endpoint and global error codes.
45
- if _response.status_code == 400
46
- raise ApiErrorResponseException.new(
45
+ case _response.status_code
46
+ when 400
47
+ raise ApiErrorException.new(
47
48
  'Something\'s not quite right... Your request is invalid. Please' \
48
49
  ' fix it before trying again.',
49
50
  _response
50
51
  )
51
- elsif _response.status_code == 401
52
+ when 401
52
53
  raise APIException.new(
53
54
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
54
55
  ' credentials to authenticate to the API.',
55
56
  _response
56
57
  )
57
- elsif _response.status_code == 403
58
- raise ApiErrorResponseException.new(
58
+ when 403
59
+ raise ApiErrorException.new(
59
60
  'User unauthorized to perform this action.',
60
61
  _response
61
62
  )
62
- elsif _response.status_code == 404
63
- raise ApiErrorResponseException.new(
63
+ when 404
64
+ raise ApiErrorException.new(
64
65
  'The resource specified cannot be found or does not belong to you.',
65
66
  _response
66
67
  )
67
- elsif _response.status_code == 415
68
- raise ApiErrorResponseException.new(
68
+ when 415
69
+ raise ApiErrorException.new(
69
70
  'We don\'t support that media type. If a request body is required,' \
70
71
  ' please send it to us as `application/json`.',
71
72
  _response
72
73
  )
73
- elsif _response.status_code == 429
74
- raise ApiErrorResponseException.new(
74
+ when 429
75
+ raise ApiErrorException.new(
75
76
  'You\'re sending requests to this endpoint too frequently. Please' \
76
77
  ' slow your request rate down and try again.',
77
78
  _response
78
79
  )
79
- elsif _response.status_code == 500
80
- raise ApiErrorResponseException.new(
80
+ when 500
81
+ raise ApiErrorException.new(
81
82
  'Something unexpected happened. Please try again.',
82
83
  _response
83
84
  )
@@ -87,16 +88,16 @@ module Voice
87
88
  # Return appropriate response type.
88
89
  decoded = APIHelper.json_deserialize(_response.raw_body)
89
90
  ApiResponse.new(
90
- _response, data: ApiCallResponse.from_hash(decoded)
91
+ _response, data: CreateCallResponse.from_hash(decoded)
91
92
  )
92
93
  end
93
94
 
94
- # Returns near-realtime metadata about the specified call
95
+ # Returns near-realtime metadata about the specified call.
95
96
  # @param [String] account_id Required parameter: Example:
96
97
  # @param [String] call_id Required parameter: Example:
97
- # @return [ApiCallStateResponse] response from the API call
98
- def get_call_state(account_id,
99
- call_id)
98
+ # @return [CallState] response from the API call
99
+ def get_call(account_id,
100
+ call_id)
100
101
  # Prepare query url.
101
102
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
102
103
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
@@ -121,42 +122,43 @@ module Voice
121
122
  _response = execute_request(_request)
122
123
 
123
124
  # Validate response against endpoint and global error codes.
124
- if _response.status_code == 400
125
- raise ApiErrorResponseException.new(
125
+ case _response.status_code
126
+ when 400
127
+ raise ApiErrorException.new(
126
128
  'Something\'s not quite right... Your request is invalid. Please' \
127
129
  ' fix it before trying again.',
128
130
  _response
129
131
  )
130
- elsif _response.status_code == 401
132
+ when 401
131
133
  raise APIException.new(
132
134
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
133
135
  ' credentials to authenticate to the API.',
134
136
  _response
135
137
  )
136
- elsif _response.status_code == 403
137
- raise ApiErrorResponseException.new(
138
+ when 403
139
+ raise ApiErrorException.new(
138
140
  'User unauthorized to perform this action.',
139
141
  _response
140
142
  )
141
- elsif _response.status_code == 404
142
- raise ApiErrorResponseException.new(
143
+ when 404
144
+ raise ApiErrorException.new(
143
145
  'The resource specified cannot be found or does not belong to you.',
144
146
  _response
145
147
  )
146
- elsif _response.status_code == 415
147
- raise ApiErrorResponseException.new(
148
+ when 415
149
+ raise ApiErrorException.new(
148
150
  'We don\'t support that media type. If a request body is required,' \
149
151
  ' please send it to us as `application/json`.',
150
152
  _response
151
153
  )
152
- elsif _response.status_code == 429
153
- raise ApiErrorResponseException.new(
154
+ when 429
155
+ raise ApiErrorException.new(
154
156
  'You\'re sending requests to this endpoint too frequently. Please' \
155
157
  ' slow your request rate down and try again.',
156
158
  _response
157
159
  )
158
- elsif _response.status_code == 500
159
- raise ApiErrorResponseException.new(
160
+ when 500
161
+ raise ApiErrorException.new(
160
162
  'Something unexpected happened. Please try again.',
161
163
  _response
162
164
  )
@@ -166,18 +168,18 @@ module Voice
166
168
  # Return appropriate response type.
167
169
  decoded = APIHelper.json_deserialize(_response.raw_body)
168
170
  ApiResponse.new(
169
- _response, data: ApiCallStateResponse.from_hash(decoded)
171
+ _response, data: CallState.from_hash(decoded)
170
172
  )
171
173
  end
172
174
 
173
- # Interrupts and replaces an active call's BXML document
175
+ # Interrupts and replaces an active call's BXML document.
174
176
  # @param [String] account_id Required parameter: Example:
175
177
  # @param [String] call_id Required parameter: Example:
176
- # @param [ApiModifyCallRequest] body Optional parameter: Example:
178
+ # @param [ModifyCallRequest] body Required parameter: Example:
177
179
  # @return [void] response from the API call
178
180
  def modify_call(account_id,
179
181
  call_id,
180
- body: nil)
182
+ body)
181
183
  # Prepare query url.
182
184
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
183
185
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
@@ -203,42 +205,43 @@ module Voice
203
205
  _response = execute_request(_request)
204
206
 
205
207
  # Validate response against endpoint and global error codes.
206
- if _response.status_code == 400
207
- raise ApiErrorResponseException.new(
208
+ case _response.status_code
209
+ when 400
210
+ raise ApiErrorException.new(
208
211
  'Something\'s not quite right... Your request is invalid. Please' \
209
212
  ' fix it before trying again.',
210
213
  _response
211
214
  )
212
- elsif _response.status_code == 401
215
+ when 401
213
216
  raise APIException.new(
214
217
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
215
218
  ' credentials to authenticate to the API.',
216
219
  _response
217
220
  )
218
- elsif _response.status_code == 403
219
- raise ApiErrorResponseException.new(
221
+ when 403
222
+ raise ApiErrorException.new(
220
223
  'User unauthorized to perform this action.',
221
224
  _response
222
225
  )
223
- elsif _response.status_code == 404
224
- raise ApiErrorResponseException.new(
226
+ when 404
227
+ raise ApiErrorException.new(
225
228
  'The resource specified cannot be found or does not belong to you.',
226
229
  _response
227
230
  )
228
- elsif _response.status_code == 415
229
- raise ApiErrorResponseException.new(
231
+ when 415
232
+ raise ApiErrorException.new(
230
233
  'We don\'t support that media type. If a request body is required,' \
231
234
  ' please send it to us as `application/json`.',
232
235
  _response
233
236
  )
234
- elsif _response.status_code == 429
235
- raise ApiErrorResponseException.new(
237
+ when 429
238
+ raise ApiErrorException.new(
236
239
  'You\'re sending requests to this endpoint too frequently. Please' \
237
240
  ' slow your request rate down and try again.',
238
241
  _response
239
242
  )
240
- elsif _response.status_code == 500
241
- raise ApiErrorResponseException.new(
243
+ when 500
244
+ raise ApiErrorException.new(
242
245
  'Something unexpected happened. Please try again.',
243
246
  _response
244
247
  )
@@ -249,14 +252,14 @@ module Voice
249
252
  ApiResponse.new(_response)
250
253
  end
251
254
 
252
- # Pauses or resumes a recording
255
+ # Pauses or resumes a recording.
253
256
  # @param [String] account_id Required parameter: Example:
254
257
  # @param [String] call_id Required parameter: Example:
255
- # @param [ModifyCallRecordingState] body Optional parameter: Example:
258
+ # @param [ModifyCallRecordingRequest] body Required parameter: Example:
256
259
  # @return [void] response from the API call
257
260
  def modify_call_recording_state(account_id,
258
261
  call_id,
259
- body: nil)
262
+ body)
260
263
  # Prepare query url.
261
264
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
262
265
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recording'
@@ -282,42 +285,43 @@ module Voice
282
285
  _response = execute_request(_request)
283
286
 
284
287
  # Validate response against endpoint and global error codes.
285
- if _response.status_code == 400
286
- raise ApiErrorResponseException.new(
288
+ case _response.status_code
289
+ when 400
290
+ raise ApiErrorException.new(
287
291
  'Something\'s not quite right... Your request is invalid. Please' \
288
292
  ' fix it before trying again.',
289
293
  _response
290
294
  )
291
- elsif _response.status_code == 401
295
+ when 401
292
296
  raise APIException.new(
293
297
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
294
298
  ' credentials to authenticate to the API.',
295
299
  _response
296
300
  )
297
- elsif _response.status_code == 403
298
- raise ApiErrorResponseException.new(
301
+ when 403
302
+ raise ApiErrorException.new(
299
303
  'User unauthorized to perform this action.',
300
304
  _response
301
305
  )
302
- elsif _response.status_code == 404
303
- raise ApiErrorResponseException.new(
306
+ when 404
307
+ raise ApiErrorException.new(
304
308
  'The resource specified cannot be found or does not belong to you.',
305
309
  _response
306
310
  )
307
- elsif _response.status_code == 415
308
- raise ApiErrorResponseException.new(
311
+ when 415
312
+ raise ApiErrorException.new(
309
313
  'We don\'t support that media type. If a request body is required,' \
310
314
  ' please send it to us as `application/json`.',
311
315
  _response
312
316
  )
313
- elsif _response.status_code == 429
314
- raise ApiErrorResponseException.new(
317
+ when 429
318
+ raise ApiErrorException.new(
315
319
  'You\'re sending requests to this endpoint too frequently. Please' \
316
320
  ' slow your request rate down and try again.',
317
321
  _response
318
322
  )
319
- elsif _response.status_code == 500
320
- raise ApiErrorResponseException.new(
323
+ when 500
324
+ raise ApiErrorException.new(
321
325
  'Something unexpected happened. Please try again.',
322
326
  _response
323
327
  )
@@ -329,12 +333,12 @@ module Voice
329
333
  end
330
334
 
331
335
  # Returns a (potentially empty) list of metadata for the recordings that
332
- # took place during the specified call
336
+ # took place during the specified call.
333
337
  # @param [String] account_id Required parameter: Example:
334
338
  # @param [String] call_id Required parameter: Example:
335
- # @return [List of RecordingMetadataResponse] response from the API call
336
- def get_query_metadata_for_account_and_call(account_id,
337
- call_id)
339
+ # @return [List of CallRecordingMetadata] response from the API call
340
+ def get_call_recordings(account_id,
341
+ call_id)
338
342
  # Prepare query url.
339
343
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
340
344
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings'
@@ -359,42 +363,43 @@ module Voice
359
363
  _response = execute_request(_request)
360
364
 
361
365
  # Validate response against endpoint and global error codes.
362
- if _response.status_code == 400
363
- raise ApiErrorResponseException.new(
366
+ case _response.status_code
367
+ when 400
368
+ raise ApiErrorException.new(
364
369
  'Something\'s not quite right... Your request is invalid. Please' \
365
370
  ' fix it before trying again.',
366
371
  _response
367
372
  )
368
- elsif _response.status_code == 401
373
+ when 401
369
374
  raise APIException.new(
370
375
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
371
376
  ' credentials to authenticate to the API.',
372
377
  _response
373
378
  )
374
- elsif _response.status_code == 403
375
- raise ApiErrorResponseException.new(
379
+ when 403
380
+ raise ApiErrorException.new(
376
381
  'User unauthorized to perform this action.',
377
382
  _response
378
383
  )
379
- elsif _response.status_code == 404
380
- raise ApiErrorResponseException.new(
384
+ when 404
385
+ raise ApiErrorException.new(
381
386
  'The resource specified cannot be found or does not belong to you.',
382
387
  _response
383
388
  )
384
- elsif _response.status_code == 415
385
- raise ApiErrorResponseException.new(
389
+ when 415
390
+ raise ApiErrorException.new(
386
391
  'We don\'t support that media type. If a request body is required,' \
387
392
  ' please send it to us as `application/json`.',
388
393
  _response
389
394
  )
390
- elsif _response.status_code == 429
391
- raise ApiErrorResponseException.new(
395
+ when 429
396
+ raise ApiErrorException.new(
392
397
  'You\'re sending requests to this endpoint too frequently. Please' \
393
398
  ' slow your request rate down and try again.',
394
399
  _response
395
400
  )
396
- elsif _response.status_code == 500
397
- raise ApiErrorResponseException.new(
401
+ when 500
402
+ raise ApiErrorException.new(
398
403
  'Something unexpected happened. Please try again.',
399
404
  _response
400
405
  )
@@ -405,18 +410,18 @@ module Voice
405
410
  decoded = APIHelper.json_deserialize(_response.raw_body)
406
411
  ApiResponse.new(
407
412
  _response,
408
- data: decoded.map { |element| RecordingMetadataResponse.from_hash(element) }
413
+ data: decoded.map { |element| CallRecordingMetadata.from_hash(element) }
409
414
  )
410
415
  end
411
416
 
412
- # Returns metadata for the specified recording
417
+ # Returns metadata for the specified recording.
413
418
  # @param [String] account_id Required parameter: Example:
414
419
  # @param [String] call_id Required parameter: Example:
415
420
  # @param [String] recording_id Required parameter: Example:
416
- # @return [RecordingMetadataResponse] response from the API call
417
- def get_metadata_for_recording(account_id,
418
- call_id,
419
- recording_id)
421
+ # @return [CallRecordingMetadata] response from the API call
422
+ def get_call_recording(account_id,
423
+ call_id,
424
+ recording_id)
420
425
  # Prepare query url.
421
426
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
422
427
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}'
@@ -442,42 +447,43 @@ module Voice
442
447
  _response = execute_request(_request)
443
448
 
444
449
  # Validate response against endpoint and global error codes.
445
- if _response.status_code == 400
446
- raise ApiErrorResponseException.new(
450
+ case _response.status_code
451
+ when 400
452
+ raise ApiErrorException.new(
447
453
  'Something\'s not quite right... Your request is invalid. Please' \
448
454
  ' fix it before trying again.',
449
455
  _response
450
456
  )
451
- elsif _response.status_code == 401
457
+ when 401
452
458
  raise APIException.new(
453
459
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
454
460
  ' credentials to authenticate to the API.',
455
461
  _response
456
462
  )
457
- elsif _response.status_code == 403
458
- raise ApiErrorResponseException.new(
463
+ when 403
464
+ raise ApiErrorException.new(
459
465
  'User unauthorized to perform this action.',
460
466
  _response
461
467
  )
462
- elsif _response.status_code == 404
463
- raise ApiErrorResponseException.new(
468
+ when 404
469
+ raise ApiErrorException.new(
464
470
  'The resource specified cannot be found or does not belong to you.',
465
471
  _response
466
472
  )
467
- elsif _response.status_code == 415
468
- raise ApiErrorResponseException.new(
473
+ when 415
474
+ raise ApiErrorException.new(
469
475
  'We don\'t support that media type. If a request body is required,' \
470
476
  ' please send it to us as `application/json`.',
471
477
  _response
472
478
  )
473
- elsif _response.status_code == 429
474
- raise ApiErrorResponseException.new(
479
+ when 429
480
+ raise ApiErrorException.new(
475
481
  'You\'re sending requests to this endpoint too frequently. Please' \
476
482
  ' slow your request rate down and try again.',
477
483
  _response
478
484
  )
479
- elsif _response.status_code == 500
480
- raise ApiErrorResponseException.new(
485
+ when 500
486
+ raise ApiErrorException.new(
481
487
  'Something unexpected happened. Please try again.',
482
488
  _response
483
489
  )
@@ -487,11 +493,11 @@ module Voice
487
493
  # Return appropriate response type.
488
494
  decoded = APIHelper.json_deserialize(_response.raw_body)
489
495
  ApiResponse.new(
490
- _response, data: RecordingMetadataResponse.from_hash(decoded)
496
+ _response, data: CallRecordingMetadata.from_hash(decoded)
491
497
  )
492
498
  end
493
499
 
494
- # Deletes the specified recording
500
+ # Deletes the specified recording.
495
501
  # @param [String] account_id Required parameter: Example:
496
502
  # @param [String] call_id Required parameter: Example:
497
503
  # @param [String] recording_id Required parameter: Example:
@@ -518,42 +524,43 @@ module Voice
518
524
  _response = execute_request(_request)
519
525
 
520
526
  # Validate response against endpoint and global error codes.
521
- if _response.status_code == 400
522
- raise ApiErrorResponseException.new(
527
+ case _response.status_code
528
+ when 400
529
+ raise ApiErrorException.new(
523
530
  'Something\'s not quite right... Your request is invalid. Please' \
524
531
  ' fix it before trying again.',
525
532
  _response
526
533
  )
527
- elsif _response.status_code == 401
534
+ when 401
528
535
  raise APIException.new(
529
536
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
530
537
  ' credentials to authenticate to the API.',
531
538
  _response
532
539
  )
533
- elsif _response.status_code == 403
534
- raise ApiErrorResponseException.new(
540
+ when 403
541
+ raise ApiErrorException.new(
535
542
  'User unauthorized to perform this action.',
536
543
  _response
537
544
  )
538
- elsif _response.status_code == 404
539
- raise ApiErrorResponseException.new(
545
+ when 404
546
+ raise ApiErrorException.new(
540
547
  'The resource specified cannot be found or does not belong to you.',
541
548
  _response
542
549
  )
543
- elsif _response.status_code == 415
544
- raise ApiErrorResponseException.new(
550
+ when 415
551
+ raise ApiErrorException.new(
545
552
  'We don\'t support that media type. If a request body is required,' \
546
553
  ' please send it to us as `application/json`.',
547
554
  _response
548
555
  )
549
- elsif _response.status_code == 429
550
- raise ApiErrorResponseException.new(
556
+ when 429
557
+ raise ApiErrorException.new(
551
558
  'You\'re sending requests to this endpoint too frequently. Please' \
552
559
  ' slow your request rate down and try again.',
553
560
  _response
554
561
  )
555
- elsif _response.status_code == 500
556
- raise ApiErrorResponseException.new(
562
+ when 500
563
+ raise ApiErrorException.new(
557
564
  'Something unexpected happened. Please try again.',
558
565
  _response
559
566
  )
@@ -564,14 +571,14 @@ module Voice
564
571
  ApiResponse.new(_response)
565
572
  end
566
573
 
567
- # Downloads the specified recording
574
+ # Downloads the specified recording.
568
575
  # @param [String] account_id Required parameter: Example:
569
576
  # @param [String] call_id Required parameter: Example:
570
577
  # @param [String] recording_id Required parameter: Example:
571
- # @return [Binary] response from the API call
572
- def get_stream_recording_media(account_id,
573
- call_id,
574
- recording_id)
578
+ # @return [Mixed] response from the API call
579
+ def get_download_call_recording(account_id,
580
+ call_id,
581
+ recording_id)
575
582
  # Prepare query url.
576
583
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
577
584
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media'
@@ -583,50 +590,57 @@ module Voice
583
590
  )
584
591
  _query_url = APIHelper.clean_url _query_builder
585
592
 
593
+ # Prepare headers.
594
+ _headers = {
595
+ 'accept' => 'application/json'
596
+ }
597
+
586
598
  # Prepare and execute HttpRequest.
587
599
  _request = config.http_client.get(
588
- _query_url
600
+ _query_url,
601
+ headers: _headers
589
602
  )
590
603
  VoiceBasicAuth.apply(config, _request)
591
- _response = execute_request(_request, binary: true)
604
+ _response = execute_request(_request)
592
605
 
593
606
  # Validate response against endpoint and global error codes.
594
- if _response.status_code == 400
595
- raise ApiErrorResponseException.new(
607
+ case _response.status_code
608
+ when 400
609
+ raise ApiErrorException.new(
596
610
  'Something\'s not quite right... Your request is invalid. Please' \
597
611
  ' fix it before trying again.',
598
612
  _response
599
613
  )
600
- elsif _response.status_code == 401
614
+ when 401
601
615
  raise APIException.new(
602
616
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
603
617
  ' credentials to authenticate to the API.',
604
618
  _response
605
619
  )
606
- elsif _response.status_code == 403
607
- raise ApiErrorResponseException.new(
620
+ when 403
621
+ raise ApiErrorException.new(
608
622
  'User unauthorized to perform this action.',
609
623
  _response
610
624
  )
611
- elsif _response.status_code == 404
612
- raise ApiErrorResponseException.new(
625
+ when 404
626
+ raise ApiErrorException.new(
613
627
  'The resource specified cannot be found or does not belong to you.',
614
628
  _response
615
629
  )
616
- elsif _response.status_code == 415
617
- raise ApiErrorResponseException.new(
630
+ when 415
631
+ raise ApiErrorException.new(
618
632
  'We don\'t support that media type. If a request body is required,' \
619
633
  ' please send it to us as `application/json`.',
620
634
  _response
621
635
  )
622
- elsif _response.status_code == 429
623
- raise ApiErrorResponseException.new(
636
+ when 429
637
+ raise ApiErrorException.new(
624
638
  'You\'re sending requests to this endpoint too frequently. Please' \
625
639
  ' slow your request rate down and try again.',
626
640
  _response
627
641
  )
628
- elsif _response.status_code == 500
629
- raise ApiErrorResponseException.new(
642
+ when 500
643
+ raise ApiErrorException.new(
630
644
  'Something unexpected happened. Please try again.',
631
645
  _response
632
646
  )
@@ -634,12 +648,15 @@ module Voice
634
648
  validate_response(_response)
635
649
 
636
650
  # Return appropriate response type.
651
+ decoded = APIHelper.json_deserialize(_response.raw_body) unless
652
+ _response.raw_body.nil? ||
653
+ _response.raw_body.to_s.strip.empty?
637
654
  ApiResponse.new(
638
- _response, data: _response.raw_body
655
+ _response, data: decoded
639
656
  )
640
657
  end
641
658
 
642
- # Deletes the specified recording's media
659
+ # Deletes the specified recording's media.
643
660
  # @param [String] account_id Required parameter: Example:
644
661
  # @param [String] call_id Required parameter: Example:
645
662
  # @param [String] recording_id Required parameter: Example:
@@ -666,42 +683,43 @@ module Voice
666
683
  _response = execute_request(_request)
667
684
 
668
685
  # Validate response against endpoint and global error codes.
669
- if _response.status_code == 400
670
- raise ApiErrorResponseException.new(
686
+ case _response.status_code
687
+ when 400
688
+ raise ApiErrorException.new(
671
689
  'Something\'s not quite right... Your request is invalid. Please' \
672
690
  ' fix it before trying again.',
673
691
  _response
674
692
  )
675
- elsif _response.status_code == 401
693
+ when 401
676
694
  raise APIException.new(
677
695
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
678
696
  ' credentials to authenticate to the API.',
679
697
  _response
680
698
  )
681
- elsif _response.status_code == 403
682
- raise ApiErrorResponseException.new(
699
+ when 403
700
+ raise ApiErrorException.new(
683
701
  'User unauthorized to perform this action.',
684
702
  _response
685
703
  )
686
- elsif _response.status_code == 404
687
- raise ApiErrorResponseException.new(
704
+ when 404
705
+ raise ApiErrorException.new(
688
706
  'The resource specified cannot be found or does not belong to you.',
689
707
  _response
690
708
  )
691
- elsif _response.status_code == 415
692
- raise ApiErrorResponseException.new(
709
+ when 415
710
+ raise ApiErrorException.new(
693
711
  'We don\'t support that media type. If a request body is required,' \
694
712
  ' please send it to us as `application/json`.',
695
713
  _response
696
714
  )
697
- elsif _response.status_code == 429
698
- raise ApiErrorResponseException.new(
715
+ when 429
716
+ raise ApiErrorException.new(
699
717
  'You\'re sending requests to this endpoint too frequently. Please' \
700
718
  ' slow your request rate down and try again.',
701
719
  _response
702
720
  )
703
- elsif _response.status_code == 500
704
- raise ApiErrorResponseException.new(
721
+ when 500
722
+ raise ApiErrorException.new(
705
723
  'Something unexpected happened. Please try again.',
706
724
  _response
707
725
  )
@@ -712,14 +730,14 @@ module Voice
712
730
  ApiResponse.new(_response)
713
731
  end
714
732
 
715
- # Downloads the specified transcription
733
+ # Downloads the specified transcription.
716
734
  # @param [String] account_id Required parameter: Example:
717
735
  # @param [String] call_id Required parameter: Example:
718
736
  # @param [String] recording_id Required parameter: Example:
719
737
  # @return [TranscriptionResponse] response from the API call
720
- def get_recording_transcription(account_id,
721
- call_id,
722
- recording_id)
738
+ def get_call_transcription(account_id,
739
+ call_id,
740
+ recording_id)
723
741
  # Prepare query url.
724
742
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
725
743
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
@@ -745,42 +763,43 @@ module Voice
745
763
  _response = execute_request(_request)
746
764
 
747
765
  # Validate response against endpoint and global error codes.
748
- if _response.status_code == 400
749
- raise ApiErrorResponseException.new(
766
+ case _response.status_code
767
+ when 400
768
+ raise ApiErrorException.new(
750
769
  'Something\'s not quite right... Your request is invalid. Please' \
751
770
  ' fix it before trying again.',
752
771
  _response
753
772
  )
754
- elsif _response.status_code == 401
773
+ when 401
755
774
  raise APIException.new(
756
775
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
757
776
  ' credentials to authenticate to the API.',
758
777
  _response
759
778
  )
760
- elsif _response.status_code == 403
761
- raise ApiErrorResponseException.new(
779
+ when 403
780
+ raise ApiErrorException.new(
762
781
  'User unauthorized to perform this action.',
763
782
  _response
764
783
  )
765
- elsif _response.status_code == 404
766
- raise ApiErrorResponseException.new(
784
+ when 404
785
+ raise ApiErrorException.new(
767
786
  'The resource specified cannot be found or does not belong to you.',
768
787
  _response
769
788
  )
770
- elsif _response.status_code == 415
771
- raise ApiErrorResponseException.new(
789
+ when 415
790
+ raise ApiErrorException.new(
772
791
  'We don\'t support that media type. If a request body is required,' \
773
792
  ' please send it to us as `application/json`.',
774
793
  _response
775
794
  )
776
- elsif _response.status_code == 429
777
- raise ApiErrorResponseException.new(
795
+ when 429
796
+ raise ApiErrorException.new(
778
797
  'You\'re sending requests to this endpoint too frequently. Please' \
779
798
  ' slow your request rate down and try again.',
780
799
  _response
781
800
  )
782
- elsif _response.status_code == 500
783
- raise ApiErrorResponseException.new(
801
+ when 500
802
+ raise ApiErrorException.new(
784
803
  'Something unexpected happened. Please try again.',
785
804
  _response
786
805
  )
@@ -794,16 +813,16 @@ module Voice
794
813
  )
795
814
  end
796
815
 
797
- # Requests that the specified recording be transcribed
816
+ # Requests that the specified recording be transcribed.
798
817
  # @param [String] account_id Required parameter: Example:
799
818
  # @param [String] call_id Required parameter: Example:
800
819
  # @param [String] recording_id Required parameter: Example:
801
- # @param [ApiTranscribeRecordingRequest] body Optional parameter: Example:
820
+ # @param [TranscribeRecordingRequest] body Required parameter: Example:
802
821
  # @return [void] response from the API call
803
- def create_transcribe_recording(account_id,
804
- call_id,
805
- recording_id,
806
- body: nil)
822
+ def create_transcribe_call_recording(account_id,
823
+ call_id,
824
+ recording_id,
825
+ body)
807
826
  # Prepare query url.
808
827
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
809
828
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
@@ -830,48 +849,49 @@ module Voice
830
849
  _response = execute_request(_request)
831
850
 
832
851
  # Validate response against endpoint and global error codes.
833
- if _response.status_code == 400
834
- raise ApiErrorResponseException.new(
852
+ case _response.status_code
853
+ when 400
854
+ raise ApiErrorException.new(
835
855
  'Something\'s not quite right... Your request is invalid. Please' \
836
856
  ' fix it before trying again.',
837
857
  _response
838
858
  )
839
- elsif _response.status_code == 401
859
+ when 401
840
860
  raise APIException.new(
841
861
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
842
862
  ' credentials to authenticate to the API.',
843
863
  _response
844
864
  )
845
- elsif _response.status_code == 403
846
- raise ApiErrorResponseException.new(
865
+ when 403
866
+ raise ApiErrorException.new(
847
867
  'User unauthorized to perform this action.',
848
868
  _response
849
869
  )
850
- elsif _response.status_code == 404
851
- raise ApiErrorResponseException.new(
870
+ when 404
871
+ raise ApiErrorException.new(
852
872
  'The resource specified cannot be found or does not belong to you.',
853
873
  _response
854
874
  )
855
- elsif _response.status_code == 410
856
- raise ApiErrorResponseException.new(
875
+ when 410
876
+ raise ApiErrorException.new(
857
877
  'The media for this recording has been deleted, so we can\'t' \
858
878
  ' transcribe it',
859
879
  _response
860
880
  )
861
- elsif _response.status_code == 415
862
- raise ApiErrorResponseException.new(
881
+ when 415
882
+ raise ApiErrorException.new(
863
883
  'We don\'t support that media type. If a request body is required,' \
864
884
  ' please send it to us as `application/json`.',
865
885
  _response
866
886
  )
867
- elsif _response.status_code == 429
868
- raise ApiErrorResponseException.new(
887
+ when 429
888
+ raise ApiErrorException.new(
869
889
  'You\'re sending requests to this endpoint too frequently. Please' \
870
890
  ' slow your request rate down and try again.',
871
891
  _response
872
892
  )
873
- elsif _response.status_code == 500
874
- raise ApiErrorResponseException.new(
893
+ when 500
894
+ raise ApiErrorException.new(
875
895
  'Something unexpected happened. Please try again.',
876
896
  _response
877
897
  )
@@ -882,14 +902,14 @@ module Voice
882
902
  ApiResponse.new(_response)
883
903
  end
884
904
 
885
- # Deletes the specified recording's transcription
905
+ # Deletes the specified recording's transcription.
886
906
  # @param [String] account_id Required parameter: Example:
887
907
  # @param [String] call_id Required parameter: Example:
888
908
  # @param [String] recording_id Required parameter: Example:
889
909
  # @return [void] response from the API call
890
- def delete_recording_transcription(account_id,
891
- call_id,
892
- recording_id)
910
+ def delete_call_transcription(account_id,
911
+ call_id,
912
+ recording_id)
893
913
  # Prepare query url.
894
914
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
895
915
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
@@ -909,42 +929,43 @@ module Voice
909
929
  _response = execute_request(_request)
910
930
 
911
931
  # Validate response against endpoint and global error codes.
912
- if _response.status_code == 400
913
- raise ApiErrorResponseException.new(
932
+ case _response.status_code
933
+ when 400
934
+ raise ApiErrorException.new(
914
935
  'Something\'s not quite right... Your request is invalid. Please' \
915
936
  ' fix it before trying again.',
916
937
  _response
917
938
  )
918
- elsif _response.status_code == 401
939
+ when 401
919
940
  raise APIException.new(
920
941
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
921
942
  ' credentials to authenticate to the API.',
922
943
  _response
923
944
  )
924
- elsif _response.status_code == 403
925
- raise ApiErrorResponseException.new(
945
+ when 403
946
+ raise ApiErrorException.new(
926
947
  'User unauthorized to perform this action.',
927
948
  _response
928
949
  )
929
- elsif _response.status_code == 404
930
- raise ApiErrorResponseException.new(
950
+ when 404
951
+ raise ApiErrorException.new(
931
952
  'The resource specified cannot be found or does not belong to you.',
932
953
  _response
933
954
  )
934
- elsif _response.status_code == 415
935
- raise ApiErrorResponseException.new(
955
+ when 415
956
+ raise ApiErrorException.new(
936
957
  'We don\'t support that media type. If a request body is required,' \
937
958
  ' please send it to us as `application/json`.',
938
959
  _response
939
960
  )
940
- elsif _response.status_code == 429
941
- raise ApiErrorResponseException.new(
961
+ when 429
962
+ raise ApiErrorException.new(
942
963
  'You\'re sending requests to this endpoint too frequently. Please' \
943
964
  ' slow your request rate down and try again.',
944
965
  _response
945
966
  )
946
- elsif _response.status_code == 500
947
- raise ApiErrorResponseException.new(
967
+ when 500
968
+ raise ApiErrorException.new(
948
969
  'Something unexpected happened. Please try again.',
949
970
  _response
950
971
  )
@@ -955,20 +976,20 @@ module Voice
955
976
  ApiResponse.new(_response)
956
977
  end
957
978
 
958
- # Returns information about the conferences in the account
979
+ # Returns information about the conferences in the account.
959
980
  # @param [String] account_id Required parameter: Example:
960
- # @param [Integer] page_size Optional parameter: Example:1000
961
- # @param [String] page_token Optional parameter: Example:
962
981
  # @param [String] name Optional parameter: Example:
963
982
  # @param [String] min_created_time Optional parameter: Example:
964
983
  # @param [String] max_created_time Optional parameter: Example:
965
- # @return [List of ConferenceDetail] response from the API call
966
- def get_conferences_by_account(account_id,
967
- page_size: 1000,
968
- page_token: nil,
969
- name: nil,
970
- min_created_time: nil,
971
- max_created_time: nil)
984
+ # @param [Integer] page_size Optional parameter: Example:1000
985
+ # @param [String] page_token Optional parameter: Example:
986
+ # @return [List of ConferenceState] response from the API call
987
+ def get_conferences(account_id,
988
+ name: nil,
989
+ min_created_time: nil,
990
+ max_created_time: nil,
991
+ page_size: 1000,
992
+ page_token: nil)
972
993
  # Prepare query url.
973
994
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
974
995
  _query_builder << '/api/v2/accounts/{accountId}/conferences'
@@ -978,11 +999,11 @@ module Voice
978
999
  )
979
1000
  _query_builder = APIHelper.append_url_with_query_parameters(
980
1001
  _query_builder,
981
- 'pageSize' => page_size,
982
- 'pageToken' => page_token,
983
1002
  'name' => name,
984
1003
  'minCreatedTime' => min_created_time,
985
- 'maxCreatedTime' => max_created_time
1004
+ 'maxCreatedTime' => max_created_time,
1005
+ 'pageSize' => page_size,
1006
+ 'pageToken' => page_token
986
1007
  )
987
1008
  _query_url = APIHelper.clean_url _query_builder
988
1009
 
@@ -1000,42 +1021,43 @@ module Voice
1000
1021
  _response = execute_request(_request)
1001
1022
 
1002
1023
  # Validate response against endpoint and global error codes.
1003
- if _response.status_code == 400
1004
- raise ApiErrorResponseException.new(
1024
+ case _response.status_code
1025
+ when 400
1026
+ raise ApiErrorException.new(
1005
1027
  'Something\'s not quite right... Your request is invalid. Please' \
1006
1028
  ' fix it before trying again.',
1007
1029
  _response
1008
1030
  )
1009
- elsif _response.status_code == 401
1031
+ when 401
1010
1032
  raise APIException.new(
1011
1033
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1012
1034
  ' credentials to authenticate to the API.',
1013
1035
  _response
1014
1036
  )
1015
- elsif _response.status_code == 403
1016
- raise ApiErrorResponseException.new(
1037
+ when 403
1038
+ raise ApiErrorException.new(
1017
1039
  'User unauthorized to perform this action.',
1018
1040
  _response
1019
1041
  )
1020
- elsif _response.status_code == 404
1021
- raise ApiErrorResponseException.new(
1042
+ when 404
1043
+ raise ApiErrorException.new(
1022
1044
  'The resource specified cannot be found or does not belong to you.',
1023
1045
  _response
1024
1046
  )
1025
- elsif _response.status_code == 415
1026
- raise ApiErrorResponseException.new(
1047
+ when 415
1048
+ raise ApiErrorException.new(
1027
1049
  'We don\'t support that media type. If a request body is required,' \
1028
1050
  ' please send it to us as `application/json`.',
1029
1051
  _response
1030
1052
  )
1031
- elsif _response.status_code == 429
1032
- raise ApiErrorResponseException.new(
1053
+ when 429
1054
+ raise ApiErrorException.new(
1033
1055
  'You\'re sending requests to this endpoint too frequently. Please' \
1034
1056
  ' slow your request rate down and try again.',
1035
1057
  _response
1036
1058
  )
1037
- elsif _response.status_code == 500
1038
- raise ApiErrorResponseException.new(
1059
+ when 500
1060
+ raise ApiErrorException.new(
1039
1061
  'Something unexpected happened. Please try again.',
1040
1062
  _response
1041
1063
  )
@@ -1046,16 +1068,16 @@ module Voice
1046
1068
  decoded = APIHelper.json_deserialize(_response.raw_body)
1047
1069
  ApiResponse.new(
1048
1070
  _response,
1049
- data: decoded.map { |element| ConferenceDetail.from_hash(element) }
1071
+ data: decoded.map { |element| ConferenceState.from_hash(element) }
1050
1072
  )
1051
1073
  end
1052
1074
 
1053
- # Returns information about the specified conference
1075
+ # Returns information about the specified conference.
1054
1076
  # @param [String] account_id Required parameter: Example:
1055
1077
  # @param [String] conference_id Required parameter: Example:
1056
- # @return [ConferenceDetail] response from the API call
1057
- def get_conference_by_id(account_id,
1058
- conference_id)
1078
+ # @return [ConferenceState] response from the API call
1079
+ def get_conference(account_id,
1080
+ conference_id)
1059
1081
  # Prepare query url.
1060
1082
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1061
1083
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}'
@@ -1080,42 +1102,43 @@ module Voice
1080
1102
  _response = execute_request(_request)
1081
1103
 
1082
1104
  # Validate response against endpoint and global error codes.
1083
- if _response.status_code == 400
1084
- raise ApiErrorResponseException.new(
1105
+ case _response.status_code
1106
+ when 400
1107
+ raise ApiErrorException.new(
1085
1108
  'Something\'s not quite right... Your request is invalid. Please' \
1086
1109
  ' fix it before trying again.',
1087
1110
  _response
1088
1111
  )
1089
- elsif _response.status_code == 401
1112
+ when 401
1090
1113
  raise APIException.new(
1091
1114
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1092
1115
  ' credentials to authenticate to the API.',
1093
1116
  _response
1094
1117
  )
1095
- elsif _response.status_code == 403
1096
- raise ApiErrorResponseException.new(
1118
+ when 403
1119
+ raise ApiErrorException.new(
1097
1120
  'User unauthorized to perform this action.',
1098
1121
  _response
1099
1122
  )
1100
- elsif _response.status_code == 404
1101
- raise ApiErrorResponseException.new(
1123
+ when 404
1124
+ raise ApiErrorException.new(
1102
1125
  'The resource specified cannot be found or does not belong to you.',
1103
1126
  _response
1104
1127
  )
1105
- elsif _response.status_code == 415
1106
- raise ApiErrorResponseException.new(
1128
+ when 415
1129
+ raise ApiErrorException.new(
1107
1130
  'We don\'t support that media type. If a request body is required,' \
1108
1131
  ' please send it to us as `application/json`.',
1109
1132
  _response
1110
1133
  )
1111
- elsif _response.status_code == 429
1112
- raise ApiErrorResponseException.new(
1134
+ when 429
1135
+ raise ApiErrorException.new(
1113
1136
  'You\'re sending requests to this endpoint too frequently. Please' \
1114
1137
  ' slow your request rate down and try again.',
1115
1138
  _response
1116
1139
  )
1117
- elsif _response.status_code == 500
1118
- raise ApiErrorResponseException.new(
1140
+ when 500
1141
+ raise ApiErrorException.new(
1119
1142
  'Something unexpected happened. Please try again.',
1120
1143
  _response
1121
1144
  )
@@ -1125,18 +1148,18 @@ module Voice
1125
1148
  # Return appropriate response type.
1126
1149
  decoded = APIHelper.json_deserialize(_response.raw_body)
1127
1150
  ApiResponse.new(
1128
- _response, data: ConferenceDetail.from_hash(decoded)
1151
+ _response, data: ConferenceState.from_hash(decoded)
1129
1152
  )
1130
1153
  end
1131
1154
 
1132
- # Modify the conference state
1155
+ # Modify the conference state.
1133
1156
  # @param [String] account_id Required parameter: Example:
1134
1157
  # @param [String] conference_id Required parameter: Example:
1135
- # @param [ApiModifyConferenceRequest] body Optional parameter: Example:
1158
+ # @param [ModifyConferenceRequest] body Required parameter: Example:
1136
1159
  # @return [void] response from the API call
1137
1160
  def modify_conference(account_id,
1138
1161
  conference_id,
1139
- body: nil)
1162
+ body)
1140
1163
  # Prepare query url.
1141
1164
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1142
1165
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}'
@@ -1162,42 +1185,43 @@ module Voice
1162
1185
  _response = execute_request(_request)
1163
1186
 
1164
1187
  # Validate response against endpoint and global error codes.
1165
- if _response.status_code == 400
1166
- raise ApiErrorResponseException.new(
1188
+ case _response.status_code
1189
+ when 400
1190
+ raise ApiErrorException.new(
1167
1191
  'Something\'s not quite right... Your request is invalid. Please' \
1168
1192
  ' fix it before trying again.',
1169
1193
  _response
1170
1194
  )
1171
- elsif _response.status_code == 401
1195
+ when 401
1172
1196
  raise APIException.new(
1173
1197
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1174
1198
  ' credentials to authenticate to the API.',
1175
1199
  _response
1176
1200
  )
1177
- elsif _response.status_code == 403
1178
- raise ApiErrorResponseException.new(
1201
+ when 403
1202
+ raise ApiErrorException.new(
1179
1203
  'User unauthorized to perform this action.',
1180
1204
  _response
1181
1205
  )
1182
- elsif _response.status_code == 404
1183
- raise ApiErrorResponseException.new(
1206
+ when 404
1207
+ raise ApiErrorException.new(
1184
1208
  'The resource specified cannot be found or does not belong to you.',
1185
1209
  _response
1186
1210
  )
1187
- elsif _response.status_code == 415
1188
- raise ApiErrorResponseException.new(
1211
+ when 415
1212
+ raise ApiErrorException.new(
1189
1213
  'We don\'t support that media type. If a request body is required,' \
1190
1214
  ' please send it to us as `application/json`.',
1191
1215
  _response
1192
1216
  )
1193
- elsif _response.status_code == 429
1194
- raise ApiErrorResponseException.new(
1217
+ when 429
1218
+ raise ApiErrorException.new(
1195
1219
  'You\'re sending requests to this endpoint too frequently. Please' \
1196
1220
  ' slow your request rate down and try again.',
1197
1221
  _response
1198
1222
  )
1199
- elsif _response.status_code == 500
1200
- raise ApiErrorResponseException.new(
1223
+ when 500
1224
+ raise ApiErrorException.new(
1201
1225
  'Something unexpected happened. Please try again.',
1202
1226
  _response
1203
1227
  )
@@ -1208,16 +1232,16 @@ module Voice
1208
1232
  ApiResponse.new(_response)
1209
1233
  end
1210
1234
 
1211
- # Updates settings for a particular conference member
1235
+ # Updates settings for a particular conference member.
1212
1236
  # @param [String] account_id Required parameter: Example:
1213
1237
  # @param [String] conference_id Required parameter: Example:
1214
1238
  # @param [String] call_id Required parameter: Example:
1215
- # @param [ConferenceMemberDetail] body Optional parameter: Example:
1239
+ # @param [ConferenceMemberState] body Required parameter: Example:
1216
1240
  # @return [void] response from the API call
1217
1241
  def modify_conference_member(account_id,
1218
1242
  conference_id,
1219
1243
  call_id,
1220
- body: nil)
1244
+ body)
1221
1245
  # Prepare query url.
1222
1246
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1223
1247
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/members/{callId}'
@@ -1244,42 +1268,43 @@ module Voice
1244
1268
  _response = execute_request(_request)
1245
1269
 
1246
1270
  # Validate response against endpoint and global error codes.
1247
- if _response.status_code == 400
1248
- raise ApiErrorResponseException.new(
1271
+ case _response.status_code
1272
+ when 400
1273
+ raise ApiErrorException.new(
1249
1274
  'Something\'s not quite right... Your request is invalid. Please' \
1250
1275
  ' fix it before trying again.',
1251
1276
  _response
1252
1277
  )
1253
- elsif _response.status_code == 401
1278
+ when 401
1254
1279
  raise APIException.new(
1255
1280
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1256
1281
  ' credentials to authenticate to the API.',
1257
1282
  _response
1258
1283
  )
1259
- elsif _response.status_code == 403
1260
- raise ApiErrorResponseException.new(
1284
+ when 403
1285
+ raise ApiErrorException.new(
1261
1286
  'User unauthorized to perform this action.',
1262
1287
  _response
1263
1288
  )
1264
- elsif _response.status_code == 404
1265
- raise ApiErrorResponseException.new(
1289
+ when 404
1290
+ raise ApiErrorException.new(
1266
1291
  'The resource specified cannot be found or does not belong to you.',
1267
1292
  _response
1268
1293
  )
1269
- elsif _response.status_code == 415
1270
- raise ApiErrorResponseException.new(
1294
+ when 415
1295
+ raise ApiErrorException.new(
1271
1296
  'We don\'t support that media type. If a request body is required,' \
1272
1297
  ' please send it to us as `application/json`.',
1273
1298
  _response
1274
1299
  )
1275
- elsif _response.status_code == 429
1276
- raise ApiErrorResponseException.new(
1300
+ when 429
1301
+ raise ApiErrorException.new(
1277
1302
  'You\'re sending requests to this endpoint too frequently. Please' \
1278
1303
  ' slow your request rate down and try again.',
1279
1304
  _response
1280
1305
  )
1281
- elsif _response.status_code == 500
1282
- raise ApiErrorResponseException.new(
1306
+ when 500
1307
+ raise ApiErrorException.new(
1283
1308
  'Something unexpected happened. Please try again.',
1284
1309
  _response
1285
1310
  )
@@ -1290,11 +1315,11 @@ module Voice
1290
1315
  ApiResponse.new(_response)
1291
1316
  end
1292
1317
 
1293
- # Returns information about the specified conference member
1318
+ # Returns information about the specified conference member.
1294
1319
  # @param [String] account_id Required parameter: Example:
1295
1320
  # @param [String] conference_id Required parameter: Example:
1296
1321
  # @param [String] member_id Required parameter: Example:
1297
- # @return [ConferenceMemberDetail] response from the API call
1322
+ # @return [ConferenceMemberState] response from the API call
1298
1323
  def get_conference_member(account_id,
1299
1324
  conference_id,
1300
1325
  member_id)
@@ -1323,42 +1348,43 @@ module Voice
1323
1348
  _response = execute_request(_request)
1324
1349
 
1325
1350
  # Validate response against endpoint and global error codes.
1326
- if _response.status_code == 400
1327
- raise ApiErrorResponseException.new(
1351
+ case _response.status_code
1352
+ when 400
1353
+ raise ApiErrorException.new(
1328
1354
  'Something\'s not quite right... Your request is invalid. Please' \
1329
1355
  ' fix it before trying again.',
1330
1356
  _response
1331
1357
  )
1332
- elsif _response.status_code == 401
1358
+ when 401
1333
1359
  raise APIException.new(
1334
1360
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1335
1361
  ' credentials to authenticate to the API.',
1336
1362
  _response
1337
1363
  )
1338
- elsif _response.status_code == 403
1339
- raise ApiErrorResponseException.new(
1364
+ when 403
1365
+ raise ApiErrorException.new(
1340
1366
  'User unauthorized to perform this action.',
1341
1367
  _response
1342
1368
  )
1343
- elsif _response.status_code == 404
1344
- raise ApiErrorResponseException.new(
1369
+ when 404
1370
+ raise ApiErrorException.new(
1345
1371
  'The resource specified cannot be found or does not belong to you.',
1346
1372
  _response
1347
1373
  )
1348
- elsif _response.status_code == 415
1349
- raise ApiErrorResponseException.new(
1374
+ when 415
1375
+ raise ApiErrorException.new(
1350
1376
  'We don\'t support that media type. If a request body is required,' \
1351
1377
  ' please send it to us as `application/json`.',
1352
1378
  _response
1353
1379
  )
1354
- elsif _response.status_code == 429
1355
- raise ApiErrorResponseException.new(
1380
+ when 429
1381
+ raise ApiErrorException.new(
1356
1382
  'You\'re sending requests to this endpoint too frequently. Please' \
1357
1383
  ' slow your request rate down and try again.',
1358
1384
  _response
1359
1385
  )
1360
- elsif _response.status_code == 500
1361
- raise ApiErrorResponseException.new(
1386
+ when 500
1387
+ raise ApiErrorException.new(
1362
1388
  'Something unexpected happened. Please try again.',
1363
1389
  _response
1364
1390
  )
@@ -1368,7 +1394,7 @@ module Voice
1368
1394
  # Return appropriate response type.
1369
1395
  decoded = APIHelper.json_deserialize(_response.raw_body)
1370
1396
  ApiResponse.new(
1371
- _response, data: ConferenceMemberDetail.from_hash(decoded)
1397
+ _response, data: ConferenceMemberState.from_hash(decoded)
1372
1398
  )
1373
1399
  end
1374
1400
 
@@ -1376,9 +1402,9 @@ module Voice
1376
1402
  # took place during the specified conference
1377
1403
  # @param [String] account_id Required parameter: Example:
1378
1404
  # @param [String] conference_id Required parameter: Example:
1379
- # @return [List of ConferenceRecordingMetadataResponse] response from the API call
1380
- def get_query_metadata_for_account_and_conference(account_id,
1381
- conference_id)
1405
+ # @return [List of ConferenceRecordingMetadata] response from the API call
1406
+ def get_conference_recordings(account_id,
1407
+ conference_id)
1382
1408
  # Prepare query url.
1383
1409
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1384
1410
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings'
@@ -1403,42 +1429,43 @@ module Voice
1403
1429
  _response = execute_request(_request)
1404
1430
 
1405
1431
  # Validate response against endpoint and global error codes.
1406
- if _response.status_code == 400
1407
- raise ApiErrorResponseException.new(
1432
+ case _response.status_code
1433
+ when 400
1434
+ raise ApiErrorException.new(
1408
1435
  'Something\'s not quite right... Your request is invalid. Please' \
1409
1436
  ' fix it before trying again.',
1410
1437
  _response
1411
1438
  )
1412
- elsif _response.status_code == 401
1439
+ when 401
1413
1440
  raise APIException.new(
1414
1441
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1415
1442
  ' credentials to authenticate to the API.',
1416
1443
  _response
1417
1444
  )
1418
- elsif _response.status_code == 403
1419
- raise ApiErrorResponseException.new(
1445
+ when 403
1446
+ raise ApiErrorException.new(
1420
1447
  'User unauthorized to perform this action.',
1421
1448
  _response
1422
1449
  )
1423
- elsif _response.status_code == 404
1424
- raise ApiErrorResponseException.new(
1450
+ when 404
1451
+ raise ApiErrorException.new(
1425
1452
  'The resource specified cannot be found or does not belong to you.',
1426
1453
  _response
1427
1454
  )
1428
- elsif _response.status_code == 415
1429
- raise ApiErrorResponseException.new(
1455
+ when 415
1456
+ raise ApiErrorException.new(
1430
1457
  'We don\'t support that media type. If a request body is required,' \
1431
1458
  ' please send it to us as `application/json`.',
1432
1459
  _response
1433
1460
  )
1434
- elsif _response.status_code == 429
1435
- raise ApiErrorResponseException.new(
1461
+ when 429
1462
+ raise ApiErrorException.new(
1436
1463
  'You\'re sending requests to this endpoint too frequently. Please' \
1437
1464
  ' slow your request rate down and try again.',
1438
1465
  _response
1439
1466
  )
1440
- elsif _response.status_code == 500
1441
- raise ApiErrorResponseException.new(
1467
+ when 500
1468
+ raise ApiErrorException.new(
1442
1469
  'Something unexpected happened. Please try again.',
1443
1470
  _response
1444
1471
  )
@@ -1449,18 +1476,18 @@ module Voice
1449
1476
  decoded = APIHelper.json_deserialize(_response.raw_body)
1450
1477
  ApiResponse.new(
1451
1478
  _response,
1452
- data: decoded.map { |element| ConferenceRecordingMetadataResponse.from_hash(element) }
1479
+ data: decoded.map { |element| ConferenceRecordingMetadata.from_hash(element) }
1453
1480
  )
1454
1481
  end
1455
1482
 
1456
- # Returns metadata for the specified recording
1483
+ # Returns metadata for the specified recording.
1457
1484
  # @param [String] account_id Required parameter: Example:
1458
1485
  # @param [String] conference_id Required parameter: Example:
1459
1486
  # @param [String] recording_id Required parameter: Example:
1460
- # @return [RecordingMetadataResponse] response from the API call
1461
- def get_metadata_for_conference_recording(account_id,
1462
- conference_id,
1463
- recording_id)
1487
+ # @return [CallRecordingMetadata] response from the API call
1488
+ def get_conference_recording(account_id,
1489
+ conference_id,
1490
+ recording_id)
1464
1491
  # Prepare query url.
1465
1492
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1466
1493
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}'
@@ -1486,42 +1513,43 @@ module Voice
1486
1513
  _response = execute_request(_request)
1487
1514
 
1488
1515
  # Validate response against endpoint and global error codes.
1489
- if _response.status_code == 400
1490
- raise ApiErrorResponseException.new(
1516
+ case _response.status_code
1517
+ when 400
1518
+ raise ApiErrorException.new(
1491
1519
  'Something\'s not quite right... Your request is invalid. Please' \
1492
1520
  ' fix it before trying again.',
1493
1521
  _response
1494
1522
  )
1495
- elsif _response.status_code == 401
1523
+ when 401
1496
1524
  raise APIException.new(
1497
1525
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1498
1526
  ' credentials to authenticate to the API.',
1499
1527
  _response
1500
1528
  )
1501
- elsif _response.status_code == 403
1502
- raise ApiErrorResponseException.new(
1529
+ when 403
1530
+ raise ApiErrorException.new(
1503
1531
  'User unauthorized to perform this action.',
1504
1532
  _response
1505
1533
  )
1506
- elsif _response.status_code == 404
1507
- raise ApiErrorResponseException.new(
1534
+ when 404
1535
+ raise ApiErrorException.new(
1508
1536
  'The resource specified cannot be found or does not belong to you.',
1509
1537
  _response
1510
1538
  )
1511
- elsif _response.status_code == 415
1512
- raise ApiErrorResponseException.new(
1539
+ when 415
1540
+ raise ApiErrorException.new(
1513
1541
  'We don\'t support that media type. If a request body is required,' \
1514
1542
  ' please send it to us as `application/json`.',
1515
1543
  _response
1516
1544
  )
1517
- elsif _response.status_code == 429
1518
- raise ApiErrorResponseException.new(
1545
+ when 429
1546
+ raise ApiErrorException.new(
1519
1547
  'You\'re sending requests to this endpoint too frequently. Please' \
1520
1548
  ' slow your request rate down and try again.',
1521
1549
  _response
1522
1550
  )
1523
- elsif _response.status_code == 500
1524
- raise ApiErrorResponseException.new(
1551
+ when 500
1552
+ raise ApiErrorException.new(
1525
1553
  'Something unexpected happened. Please try again.',
1526
1554
  _response
1527
1555
  )
@@ -1531,18 +1559,18 @@ module Voice
1531
1559
  # Return appropriate response type.
1532
1560
  decoded = APIHelper.json_deserialize(_response.raw_body)
1533
1561
  ApiResponse.new(
1534
- _response, data: RecordingMetadataResponse.from_hash(decoded)
1562
+ _response, data: CallRecordingMetadata.from_hash(decoded)
1535
1563
  )
1536
1564
  end
1537
1565
 
1538
- # Downloads the specified recording
1566
+ # Downloads the specified recording.
1539
1567
  # @param [String] account_id Required parameter: Example:
1540
1568
  # @param [String] conference_id Required parameter: Example:
1541
1569
  # @param [String] recording_id Required parameter: Example:
1542
- # @return [Binary] response from the API call
1543
- def get_stream_conference_recording_media(account_id,
1544
- conference_id,
1545
- recording_id)
1570
+ # @return [Mixed] response from the API call
1571
+ def get_download_conference_recording(account_id,
1572
+ conference_id,
1573
+ recording_id)
1546
1574
  # Prepare query url.
1547
1575
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1548
1576
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media'
@@ -1554,50 +1582,57 @@ module Voice
1554
1582
  )
1555
1583
  _query_url = APIHelper.clean_url _query_builder
1556
1584
 
1585
+ # Prepare headers.
1586
+ _headers = {
1587
+ 'accept' => 'application/json'
1588
+ }
1589
+
1557
1590
  # Prepare and execute HttpRequest.
1558
1591
  _request = config.http_client.get(
1559
- _query_url
1592
+ _query_url,
1593
+ headers: _headers
1560
1594
  )
1561
1595
  VoiceBasicAuth.apply(config, _request)
1562
- _response = execute_request(_request, binary: true)
1596
+ _response = execute_request(_request)
1563
1597
 
1564
1598
  # Validate response against endpoint and global error codes.
1565
- if _response.status_code == 400
1566
- raise ApiErrorResponseException.new(
1599
+ case _response.status_code
1600
+ when 400
1601
+ raise ApiErrorException.new(
1567
1602
  'Something\'s not quite right... Your request is invalid. Please' \
1568
1603
  ' fix it before trying again.',
1569
1604
  _response
1570
1605
  )
1571
- elsif _response.status_code == 401
1606
+ when 401
1572
1607
  raise APIException.new(
1573
1608
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1574
1609
  ' credentials to authenticate to the API.',
1575
1610
  _response
1576
1611
  )
1577
- elsif _response.status_code == 403
1578
- raise ApiErrorResponseException.new(
1612
+ when 403
1613
+ raise ApiErrorException.new(
1579
1614
  'User unauthorized to perform this action.',
1580
1615
  _response
1581
1616
  )
1582
- elsif _response.status_code == 404
1583
- raise ApiErrorResponseException.new(
1617
+ when 404
1618
+ raise ApiErrorException.new(
1584
1619
  'The resource specified cannot be found or does not belong to you.',
1585
1620
  _response
1586
1621
  )
1587
- elsif _response.status_code == 415
1588
- raise ApiErrorResponseException.new(
1622
+ when 415
1623
+ raise ApiErrorException.new(
1589
1624
  'We don\'t support that media type. If a request body is required,' \
1590
1625
  ' please send it to us as `application/json`.',
1591
1626
  _response
1592
1627
  )
1593
- elsif _response.status_code == 429
1594
- raise ApiErrorResponseException.new(
1628
+ when 429
1629
+ raise ApiErrorException.new(
1595
1630
  'You\'re sending requests to this endpoint too frequently. Please' \
1596
1631
  ' slow your request rate down and try again.',
1597
1632
  _response
1598
1633
  )
1599
- elsif _response.status_code == 500
1600
- raise ApiErrorResponseException.new(
1634
+ when 500
1635
+ raise ApiErrorException.new(
1601
1636
  'Something unexpected happened. Please try again.',
1602
1637
  _response
1603
1638
  )
@@ -1605,8 +1640,11 @@ module Voice
1605
1640
  validate_response(_response)
1606
1641
 
1607
1642
  # Return appropriate response type.
1643
+ decoded = APIHelper.json_deserialize(_response.raw_body) unless
1644
+ _response.raw_body.nil? ||
1645
+ _response.raw_body.to_s.strip.empty?
1608
1646
  ApiResponse.new(
1609
- _response, data: _response.raw_body
1647
+ _response, data: decoded
1610
1648
  )
1611
1649
  end
1612
1650
 
@@ -1619,12 +1657,12 @@ module Voice
1619
1657
  # @param [String] to Optional parameter: Example:
1620
1658
  # @param [String] min_start_time Optional parameter: Example:
1621
1659
  # @param [String] max_start_time Optional parameter: Example:
1622
- # @return [List of RecordingMetadataResponse] response from the API call
1623
- def get_query_metadata_for_account(account_id,
1624
- from: nil,
1625
- to: nil,
1626
- min_start_time: nil,
1627
- max_start_time: nil)
1660
+ # @return [List of CallRecordingMetadata] response from the API call
1661
+ def get_query_call_recordings(account_id,
1662
+ from: nil,
1663
+ to: nil,
1664
+ min_start_time: nil,
1665
+ max_start_time: nil)
1628
1666
  # Prepare query url.
1629
1667
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1630
1668
  _query_builder << '/api/v2/accounts/{accountId}/recordings'
@@ -1655,42 +1693,43 @@ module Voice
1655
1693
  _response = execute_request(_request)
1656
1694
 
1657
1695
  # Validate response against endpoint and global error codes.
1658
- if _response.status_code == 400
1659
- raise ApiErrorResponseException.new(
1696
+ case _response.status_code
1697
+ when 400
1698
+ raise ApiErrorException.new(
1660
1699
  'Something\'s not quite right... Your request is invalid. Please' \
1661
1700
  ' fix it before trying again.',
1662
1701
  _response
1663
1702
  )
1664
- elsif _response.status_code == 401
1703
+ when 401
1665
1704
  raise APIException.new(
1666
1705
  'Your credentials are invalid. Please use your Bandwidth dashboard' \
1667
1706
  ' credentials to authenticate to the API.',
1668
1707
  _response
1669
1708
  )
1670
- elsif _response.status_code == 403
1671
- raise ApiErrorResponseException.new(
1709
+ when 403
1710
+ raise ApiErrorException.new(
1672
1711
  'User unauthorized to perform this action.',
1673
1712
  _response
1674
1713
  )
1675
- elsif _response.status_code == 404
1676
- raise ApiErrorResponseException.new(
1714
+ when 404
1715
+ raise ApiErrorException.new(
1677
1716
  'The resource specified cannot be found or does not belong to you.',
1678
1717
  _response
1679
1718
  )
1680
- elsif _response.status_code == 415
1681
- raise ApiErrorResponseException.new(
1719
+ when 415
1720
+ raise ApiErrorException.new(
1682
1721
  'We don\'t support that media type. If a request body is required,' \
1683
1722
  ' please send it to us as `application/json`.',
1684
1723
  _response
1685
1724
  )
1686
- elsif _response.status_code == 429
1687
- raise ApiErrorResponseException.new(
1725
+ when 429
1726
+ raise ApiErrorException.new(
1688
1727
  'You\'re sending requests to this endpoint too frequently. Please' \
1689
1728
  ' slow your request rate down and try again.',
1690
1729
  _response
1691
1730
  )
1692
- elsif _response.status_code == 500
1693
- raise ApiErrorResponseException.new(
1731
+ when 500
1732
+ raise ApiErrorException.new(
1694
1733
  'Something unexpected happened. Please try again.',
1695
1734
  _response
1696
1735
  )
@@ -1701,7 +1740,7 @@ module Voice
1701
1740
  decoded = APIHelper.json_deserialize(_response.raw_body)
1702
1741
  ApiResponse.new(
1703
1742
  _response,
1704
- data: decoded.map { |element| RecordingMetadataResponse.from_hash(element) }
1743
+ data: decoded.map { |element| CallRecordingMetadata.from_hash(element) }
1705
1744
  )
1706
1745
  end
1707
1746
  end