bandwidth-sdk 6.1.0 → 8.0.0

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