bandwidth-sdk 3.8.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/lib/bandwidth/client.rb +2 -0
  4. data/lib/bandwidth/configuration.rb +23 -4
  5. data/lib/bandwidth/http/api_response.rb +2 -0
  6. data/lib/bandwidth/http/faraday_client.rb +9 -2
  7. data/lib/bandwidth/messaging_lib/messaging/client.rb +2 -0
  8. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +8 -8
  9. data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +1 -1
  10. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/client.rb +2 -0
  11. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/api_controller.rb +3 -3
  12. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/base_controller.rb +1 -1
  13. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_verify_request_schema.rb +0 -19
  14. data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +7 -1
  15. data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +5 -1
  16. data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +5 -1
  17. data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +5 -1
  18. data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +5 -1
  19. data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +5 -1
  20. data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +15 -0
  21. data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +25 -0
  22. data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +20 -0
  23. data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +14 -0
  24. data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +13 -0
  25. data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +14 -3
  26. data/lib/bandwidth/voice_lib/voice/client.rb +2 -0
  27. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +455 -56
  28. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +1 -1
  29. data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +17 -0
  30. data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +45 -0
  31. data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +117 -12
  32. data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +36 -0
  33. data/lib/bandwidth/voice_lib/voice/models/api_modify_conference_request.rb +107 -0
  34. data/lib/bandwidth/voice_lib/voice/models/api_transcribe_recording_request.rb +11 -2
  35. data/lib/bandwidth/voice_lib/voice/models/call_engine_modify_conference_request.rb +74 -2
  36. data/lib/bandwidth/voice_lib/voice/models/conference_detail.rb +7 -4
  37. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata_response.rb +126 -0
  38. data/lib/bandwidth/voice_lib/voice/models/recording_metadata_response.rb +32 -4
  39. data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +17 -0
  40. data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +4 -1
  41. data/lib/bandwidth/voice_lib/voice/models/{status2_enum.rb → status3_enum.rb} +3 -3
  42. data/lib/bandwidth/voice_lib/voice/models/transcription.rb +1 -1
  43. data/lib/bandwidth/voice_lib/voice.rb +5 -2
  44. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +13 -0
  45. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +2 -0
  46. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +24 -24
  47. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +1 -1
  48. data/lib/bandwidth.rb +24 -1
  49. metadata +35 -13
@@ -22,7 +22,7 @@ module Voice
22
22
  _query_builder << '/api/v2/accounts/{accountId}/calls'
23
23
  _query_builder = APIHelper.append_url_with_template_parameters(
24
24
  _query_builder,
25
- 'accountId' => { 'value' => account_id, 'encode' => true }
25
+ 'accountId' => { 'value' => account_id, 'encode' => false }
26
26
  )
27
27
  _query_url = APIHelper.clean_url _query_builder
28
28
 
@@ -102,8 +102,8 @@ module Voice
102
102
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
103
103
  _query_builder = APIHelper.append_url_with_template_parameters(
104
104
  _query_builder,
105
- 'accountId' => { 'value' => account_id, 'encode' => true },
106
- 'callId' => { 'value' => call_id, 'encode' => true }
105
+ 'accountId' => { 'value' => account_id, 'encode' => false },
106
+ 'callId' => { 'value' => call_id, 'encode' => false }
107
107
  )
108
108
  _query_url = APIHelper.clean_url _query_builder
109
109
 
@@ -183,8 +183,8 @@ module Voice
183
183
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}'
184
184
  _query_builder = APIHelper.append_url_with_template_parameters(
185
185
  _query_builder,
186
- 'accountId' => { 'value' => account_id, 'encode' => true },
187
- 'callId' => { 'value' => call_id, 'encode' => true }
186
+ 'accountId' => { 'value' => account_id, 'encode' => false },
187
+ 'callId' => { 'value' => call_id, 'encode' => false }
188
188
  )
189
189
  _query_url = APIHelper.clean_url _query_builder
190
190
 
@@ -262,8 +262,8 @@ module Voice
262
262
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recording'
263
263
  _query_builder = APIHelper.append_url_with_template_parameters(
264
264
  _query_builder,
265
- 'accountId' => { 'value' => account_id, 'encode' => true },
266
- 'callId' => { 'value' => call_id, 'encode' => true }
265
+ 'accountId' => { 'value' => account_id, 'encode' => false },
266
+ 'callId' => { 'value' => call_id, 'encode' => false }
267
267
  )
268
268
  _query_url = APIHelper.clean_url _query_builder
269
269
 
@@ -332,31 +332,16 @@ 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
- # @param [String] from Optional parameter: Example:
336
- # @param [String] to Optional parameter: Example:
337
- # @param [String] min_start_time Optional parameter: Example:
338
- # @param [String] max_start_time Optional parameter: Example:
339
335
  # @return [List of RecordingMetadataResponse] response from the API call
340
336
  def get_query_metadata_for_account_and_call(account_id,
341
- call_id,
342
- from: nil,
343
- to: nil,
344
- min_start_time: nil,
345
- max_start_time: nil)
337
+ call_id)
346
338
  # Prepare query url.
347
339
  _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
348
340
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings'
349
341
  _query_builder = APIHelper.append_url_with_template_parameters(
350
342
  _query_builder,
351
- 'accountId' => { 'value' => account_id, 'encode' => true },
352
- 'callId' => { 'value' => call_id, 'encode' => true }
353
- )
354
- _query_builder = APIHelper.append_url_with_query_parameters(
355
- _query_builder,
356
- 'from' => from,
357
- 'to' => to,
358
- 'minStartTime' => min_start_time,
359
- 'maxStartTime' => max_start_time
343
+ 'accountId' => { 'value' => account_id, 'encode' => false },
344
+ 'callId' => { 'value' => call_id, 'encode' => false }
360
345
  )
361
346
  _query_url = APIHelper.clean_url _query_builder
362
347
 
@@ -437,9 +422,9 @@ module Voice
437
422
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}'
438
423
  _query_builder = APIHelper.append_url_with_template_parameters(
439
424
  _query_builder,
440
- 'accountId' => { 'value' => account_id, 'encode' => true },
441
- 'callId' => { 'value' => call_id, 'encode' => true },
442
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
425
+ 'accountId' => { 'value' => account_id, 'encode' => false },
426
+ 'callId' => { 'value' => call_id, 'encode' => false },
427
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
443
428
  )
444
429
  _query_url = APIHelper.clean_url _query_builder
445
430
 
@@ -519,9 +504,9 @@ module Voice
519
504
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}'
520
505
  _query_builder = APIHelper.append_url_with_template_parameters(
521
506
  _query_builder,
522
- 'accountId' => { 'value' => account_id, 'encode' => true },
523
- 'callId' => { 'value' => call_id, 'encode' => true },
524
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
507
+ 'accountId' => { 'value' => account_id, 'encode' => false },
508
+ 'callId' => { 'value' => call_id, 'encode' => false },
509
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
525
510
  )
526
511
  _query_url = APIHelper.clean_url _query_builder
527
512
 
@@ -592,9 +577,9 @@ module Voice
592
577
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media'
593
578
  _query_builder = APIHelper.append_url_with_template_parameters(
594
579
  _query_builder,
595
- 'accountId' => { 'value' => account_id, 'encode' => true },
596
- 'callId' => { 'value' => call_id, 'encode' => true },
597
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
580
+ 'accountId' => { 'value' => account_id, 'encode' => false },
581
+ 'callId' => { 'value' => call_id, 'encode' => false },
582
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
598
583
  )
599
584
  _query_url = APIHelper.clean_url _query_builder
600
585
 
@@ -667,9 +652,9 @@ module Voice
667
652
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/media'
668
653
  _query_builder = APIHelper.append_url_with_template_parameters(
669
654
  _query_builder,
670
- 'accountId' => { 'value' => account_id, 'encode' => true },
671
- 'callId' => { 'value' => call_id, 'encode' => true },
672
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
655
+ 'accountId' => { 'value' => account_id, 'encode' => false },
656
+ 'callId' => { 'value' => call_id, 'encode' => false },
657
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
673
658
  )
674
659
  _query_url = APIHelper.clean_url _query_builder
675
660
 
@@ -740,9 +725,9 @@ module Voice
740
725
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
741
726
  _query_builder = APIHelper.append_url_with_template_parameters(
742
727
  _query_builder,
743
- 'accountId' => { 'value' => account_id, 'encode' => true },
744
- 'callId' => { 'value' => call_id, 'encode' => true },
745
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
728
+ 'accountId' => { 'value' => account_id, 'encode' => false },
729
+ 'callId' => { 'value' => call_id, 'encode' => false },
730
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
746
731
  )
747
732
  _query_url = APIHelper.clean_url _query_builder
748
733
 
@@ -824,9 +809,9 @@ module Voice
824
809
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
825
810
  _query_builder = APIHelper.append_url_with_template_parameters(
826
811
  _query_builder,
827
- 'accountId' => { 'value' => account_id, 'encode' => true },
828
- 'callId' => { 'value' => call_id, 'encode' => true },
829
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
812
+ 'accountId' => { 'value' => account_id, 'encode' => false },
813
+ 'callId' => { 'value' => call_id, 'encode' => false },
814
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
830
815
  )
831
816
  _query_url = APIHelper.clean_url _query_builder
832
817
 
@@ -910,9 +895,9 @@ module Voice
910
895
  _query_builder << '/api/v2/accounts/{accountId}/calls/{callId}/recordings/{recordingId}/transcription'
911
896
  _query_builder = APIHelper.append_url_with_template_parameters(
912
897
  _query_builder,
913
- 'accountId' => { 'value' => account_id, 'encode' => true },
914
- 'callId' => { 'value' => call_id, 'encode' => true },
915
- 'recordingId' => { 'value' => recording_id, 'encode' => true }
898
+ 'accountId' => { 'value' => account_id, 'encode' => false },
899
+ 'callId' => { 'value' => call_id, 'encode' => false },
900
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
916
901
  )
917
902
  _query_url = APIHelper.clean_url _query_builder
918
903
 
@@ -970,6 +955,101 @@ module Voice
970
955
  ApiResponse.new(_response)
971
956
  end
972
957
 
958
+ # Returns information about the conferences in the account
959
+ # @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
+ # @param [String] name Optional parameter: Example:
963
+ # @param [String] min_created_time Optional parameter: Example:
964
+ # @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
+ # Prepare query url.
973
+ _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
974
+ _query_builder << '/api/v2/accounts/{accountId}/conferences'
975
+ _query_builder = APIHelper.append_url_with_template_parameters(
976
+ _query_builder,
977
+ 'accountId' => { 'value' => account_id, 'encode' => false }
978
+ )
979
+ _query_builder = APIHelper.append_url_with_query_parameters(
980
+ _query_builder,
981
+ 'pageSize' => page_size,
982
+ 'pageToken' => page_token,
983
+ 'name' => name,
984
+ 'minCreatedTime' => min_created_time,
985
+ 'maxCreatedTime' => max_created_time
986
+ )
987
+ _query_url = APIHelper.clean_url _query_builder
988
+
989
+ # Prepare headers.
990
+ _headers = {
991
+ 'accept' => 'application/json'
992
+ }
993
+
994
+ # Prepare and execute HttpRequest.
995
+ _request = config.http_client.get(
996
+ _query_url,
997
+ headers: _headers
998
+ )
999
+ VoiceBasicAuth.apply(config, _request)
1000
+ _response = execute_request(_request)
1001
+
1002
+ # Validate response against endpoint and global error codes.
1003
+ if _response.status_code == 400
1004
+ raise ApiErrorResponseException.new(
1005
+ 'Something\'s not quite right... Your request is invalid. Please' \
1006
+ ' fix it before trying again.',
1007
+ _response
1008
+ )
1009
+ elsif _response.status_code == 401
1010
+ raise APIException.new(
1011
+ 'Your credentials are invalid. Please use your Bandwidth dashboard' \
1012
+ ' credentials to authenticate to the API.',
1013
+ _response
1014
+ )
1015
+ elsif _response.status_code == 403
1016
+ raise ApiErrorResponseException.new(
1017
+ 'User unauthorized to perform this action.',
1018
+ _response
1019
+ )
1020
+ elsif _response.status_code == 404
1021
+ raise ApiErrorResponseException.new(
1022
+ 'The resource specified cannot be found or does not belong to you.',
1023
+ _response
1024
+ )
1025
+ elsif _response.status_code == 415
1026
+ raise ApiErrorResponseException.new(
1027
+ 'We don\'t support that media type. If a request body is required,' \
1028
+ ' please send it to us as `application/json`.',
1029
+ _response
1030
+ )
1031
+ elsif _response.status_code == 429
1032
+ raise ApiErrorResponseException.new(
1033
+ 'You\'re sending requests to this endpoint too frequently. Please' \
1034
+ ' slow your request rate down and try again.',
1035
+ _response
1036
+ )
1037
+ elsif _response.status_code == 500
1038
+ raise ApiErrorResponseException.new(
1039
+ 'Something unexpected happened. Please try again.',
1040
+ _response
1041
+ )
1042
+ end
1043
+ validate_response(_response)
1044
+
1045
+ # Return appropriate response type.
1046
+ decoded = APIHelper.json_deserialize(_response.raw_body)
1047
+ ApiResponse.new(
1048
+ _response,
1049
+ data: decoded.map { |element| ConferenceDetail.from_hash(element) }
1050
+ )
1051
+ end
1052
+
973
1053
  # Returns information about the specified conference
974
1054
  # @param [String] account_id Required parameter: Example:
975
1055
  # @param [String] conference_id Required parameter: Example:
@@ -981,8 +1061,8 @@ module Voice
981
1061
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}'
982
1062
  _query_builder = APIHelper.append_url_with_template_parameters(
983
1063
  _query_builder,
984
- 'accountId' => { 'value' => account_id, 'encode' => true },
985
- 'conferenceId' => { 'value' => conference_id, 'encode' => true }
1064
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1065
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false }
986
1066
  )
987
1067
  _query_url = APIHelper.clean_url _query_builder
988
1068
 
@@ -1052,8 +1132,7 @@ module Voice
1052
1132
  # Modify the conference state
1053
1133
  # @param [String] account_id Required parameter: Example:
1054
1134
  # @param [String] conference_id Required parameter: Example:
1055
- # @param [CallEngineModifyConferenceRequest] body Optional parameter:
1056
- # Example:
1135
+ # @param [ApiModifyConferenceRequest] body Optional parameter: Example:
1057
1136
  # @return [void] response from the API call
1058
1137
  def modify_conference(account_id,
1059
1138
  conference_id,
@@ -1063,8 +1142,8 @@ module Voice
1063
1142
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}'
1064
1143
  _query_builder = APIHelper.append_url_with_template_parameters(
1065
1144
  _query_builder,
1066
- 'accountId' => { 'value' => account_id, 'encode' => true },
1067
- 'conferenceId' => { 'value' => conference_id, 'encode' => true }
1145
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1146
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false }
1068
1147
  )
1069
1148
  _query_url = APIHelper.clean_url _query_builder
1070
1149
 
@@ -1129,6 +1208,88 @@ module Voice
1129
1208
  ApiResponse.new(_response)
1130
1209
  end
1131
1210
 
1211
+ # Updates settings for a particular conference member
1212
+ # @param [String] account_id Required parameter: Example:
1213
+ # @param [String] conference_id Required parameter: Example:
1214
+ # @param [String] call_id Required parameter: Example:
1215
+ # @param [ConferenceMemberDetail] body Optional parameter: Example:
1216
+ # @return [void] response from the API call
1217
+ def modify_conference_member(account_id,
1218
+ conference_id,
1219
+ call_id,
1220
+ body: nil)
1221
+ # Prepare query url.
1222
+ _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1223
+ _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/members/{callId}'
1224
+ _query_builder = APIHelper.append_url_with_template_parameters(
1225
+ _query_builder,
1226
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1227
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false },
1228
+ 'callId' => { 'value' => call_id, 'encode' => false }
1229
+ )
1230
+ _query_url = APIHelper.clean_url _query_builder
1231
+
1232
+ # Prepare headers.
1233
+ _headers = {
1234
+ 'content-type' => 'application/json; charset=utf-8'
1235
+ }
1236
+
1237
+ # Prepare and execute HttpRequest.
1238
+ _request = config.http_client.put(
1239
+ _query_url,
1240
+ headers: _headers,
1241
+ parameters: body.to_json
1242
+ )
1243
+ VoiceBasicAuth.apply(config, _request)
1244
+ _response = execute_request(_request)
1245
+
1246
+ # Validate response against endpoint and global error codes.
1247
+ if _response.status_code == 400
1248
+ raise ApiErrorResponseException.new(
1249
+ 'Something\'s not quite right... Your request is invalid. Please' \
1250
+ ' fix it before trying again.',
1251
+ _response
1252
+ )
1253
+ elsif _response.status_code == 401
1254
+ raise APIException.new(
1255
+ 'Your credentials are invalid. Please use your Bandwidth dashboard' \
1256
+ ' credentials to authenticate to the API.',
1257
+ _response
1258
+ )
1259
+ elsif _response.status_code == 403
1260
+ raise ApiErrorResponseException.new(
1261
+ 'User unauthorized to perform this action.',
1262
+ _response
1263
+ )
1264
+ elsif _response.status_code == 404
1265
+ raise ApiErrorResponseException.new(
1266
+ 'The resource specified cannot be found or does not belong to you.',
1267
+ _response
1268
+ )
1269
+ elsif _response.status_code == 415
1270
+ raise ApiErrorResponseException.new(
1271
+ 'We don\'t support that media type. If a request body is required,' \
1272
+ ' please send it to us as `application/json`.',
1273
+ _response
1274
+ )
1275
+ elsif _response.status_code == 429
1276
+ raise ApiErrorResponseException.new(
1277
+ 'You\'re sending requests to this endpoint too frequently. Please' \
1278
+ ' slow your request rate down and try again.',
1279
+ _response
1280
+ )
1281
+ elsif _response.status_code == 500
1282
+ raise ApiErrorResponseException.new(
1283
+ 'Something unexpected happened. Please try again.',
1284
+ _response
1285
+ )
1286
+ end
1287
+ validate_response(_response)
1288
+
1289
+ # Return appropriate response type.
1290
+ ApiResponse.new(_response)
1291
+ end
1292
+
1132
1293
  # Returns information about the specified conference member
1133
1294
  # @param [String] account_id Required parameter: Example:
1134
1295
  # @param [String] conference_id Required parameter: Example:
@@ -1142,9 +1303,9 @@ module Voice
1142
1303
  _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/members/{memberId}'
1143
1304
  _query_builder = APIHelper.append_url_with_template_parameters(
1144
1305
  _query_builder,
1145
- 'accountId' => { 'value' => account_id, 'encode' => true },
1146
- 'conferenceId' => { 'value' => conference_id, 'encode' => true },
1147
- 'memberId' => { 'value' => member_id, 'encode' => true }
1306
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1307
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false },
1308
+ 'memberId' => { 'value' => member_id, 'encode' => false }
1148
1309
  )
1149
1310
  _query_url = APIHelper.clean_url _query_builder
1150
1311
 
@@ -1211,6 +1372,244 @@ module Voice
1211
1372
  )
1212
1373
  end
1213
1374
 
1375
+ # Returns a (potentially empty) list of metadata for the recordings that
1376
+ # took place during the specified conference
1377
+ # @param [String] account_id Required parameter: Example:
1378
+ # @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)
1382
+ # Prepare query url.
1383
+ _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1384
+ _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings'
1385
+ _query_builder = APIHelper.append_url_with_template_parameters(
1386
+ _query_builder,
1387
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1388
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false }
1389
+ )
1390
+ _query_url = APIHelper.clean_url _query_builder
1391
+
1392
+ # Prepare headers.
1393
+ _headers = {
1394
+ 'accept' => 'application/json'
1395
+ }
1396
+
1397
+ # Prepare and execute HttpRequest.
1398
+ _request = config.http_client.get(
1399
+ _query_url,
1400
+ headers: _headers
1401
+ )
1402
+ VoiceBasicAuth.apply(config, _request)
1403
+ _response = execute_request(_request)
1404
+
1405
+ # Validate response against endpoint and global error codes.
1406
+ if _response.status_code == 400
1407
+ raise ApiErrorResponseException.new(
1408
+ 'Something\'s not quite right... Your request is invalid. Please' \
1409
+ ' fix it before trying again.',
1410
+ _response
1411
+ )
1412
+ elsif _response.status_code == 401
1413
+ raise APIException.new(
1414
+ 'Your credentials are invalid. Please use your Bandwidth dashboard' \
1415
+ ' credentials to authenticate to the API.',
1416
+ _response
1417
+ )
1418
+ elsif _response.status_code == 403
1419
+ raise ApiErrorResponseException.new(
1420
+ 'User unauthorized to perform this action.',
1421
+ _response
1422
+ )
1423
+ elsif _response.status_code == 404
1424
+ raise ApiErrorResponseException.new(
1425
+ 'The resource specified cannot be found or does not belong to you.',
1426
+ _response
1427
+ )
1428
+ elsif _response.status_code == 415
1429
+ raise ApiErrorResponseException.new(
1430
+ 'We don\'t support that media type. If a request body is required,' \
1431
+ ' please send it to us as `application/json`.',
1432
+ _response
1433
+ )
1434
+ elsif _response.status_code == 429
1435
+ raise ApiErrorResponseException.new(
1436
+ 'You\'re sending requests to this endpoint too frequently. Please' \
1437
+ ' slow your request rate down and try again.',
1438
+ _response
1439
+ )
1440
+ elsif _response.status_code == 500
1441
+ raise ApiErrorResponseException.new(
1442
+ 'Something unexpected happened. Please try again.',
1443
+ _response
1444
+ )
1445
+ end
1446
+ validate_response(_response)
1447
+
1448
+ # Return appropriate response type.
1449
+ decoded = APIHelper.json_deserialize(_response.raw_body)
1450
+ ApiResponse.new(
1451
+ _response,
1452
+ data: decoded.map { |element| ConferenceRecordingMetadataResponse.from_hash(element) }
1453
+ )
1454
+ end
1455
+
1456
+ # Returns metadata for the specified recording
1457
+ # @param [String] account_id Required parameter: Example:
1458
+ # @param [String] conference_id Required parameter: Example:
1459
+ # @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)
1464
+ # Prepare query url.
1465
+ _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1466
+ _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}'
1467
+ _query_builder = APIHelper.append_url_with_template_parameters(
1468
+ _query_builder,
1469
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1470
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false },
1471
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
1472
+ )
1473
+ _query_url = APIHelper.clean_url _query_builder
1474
+
1475
+ # Prepare headers.
1476
+ _headers = {
1477
+ 'accept' => 'application/json'
1478
+ }
1479
+
1480
+ # Prepare and execute HttpRequest.
1481
+ _request = config.http_client.get(
1482
+ _query_url,
1483
+ headers: _headers
1484
+ )
1485
+ VoiceBasicAuth.apply(config, _request)
1486
+ _response = execute_request(_request)
1487
+
1488
+ # Validate response against endpoint and global error codes.
1489
+ if _response.status_code == 400
1490
+ raise ApiErrorResponseException.new(
1491
+ 'Something\'s not quite right... Your request is invalid. Please' \
1492
+ ' fix it before trying again.',
1493
+ _response
1494
+ )
1495
+ elsif _response.status_code == 401
1496
+ raise APIException.new(
1497
+ 'Your credentials are invalid. Please use your Bandwidth dashboard' \
1498
+ ' credentials to authenticate to the API.',
1499
+ _response
1500
+ )
1501
+ elsif _response.status_code == 403
1502
+ raise ApiErrorResponseException.new(
1503
+ 'User unauthorized to perform this action.',
1504
+ _response
1505
+ )
1506
+ elsif _response.status_code == 404
1507
+ raise ApiErrorResponseException.new(
1508
+ 'The resource specified cannot be found or does not belong to you.',
1509
+ _response
1510
+ )
1511
+ elsif _response.status_code == 415
1512
+ raise ApiErrorResponseException.new(
1513
+ 'We don\'t support that media type. If a request body is required,' \
1514
+ ' please send it to us as `application/json`.',
1515
+ _response
1516
+ )
1517
+ elsif _response.status_code == 429
1518
+ raise ApiErrorResponseException.new(
1519
+ 'You\'re sending requests to this endpoint too frequently. Please' \
1520
+ ' slow your request rate down and try again.',
1521
+ _response
1522
+ )
1523
+ elsif _response.status_code == 500
1524
+ raise ApiErrorResponseException.new(
1525
+ 'Something unexpected happened. Please try again.',
1526
+ _response
1527
+ )
1528
+ end
1529
+ validate_response(_response)
1530
+
1531
+ # Return appropriate response type.
1532
+ decoded = APIHelper.json_deserialize(_response.raw_body)
1533
+ ApiResponse.new(
1534
+ _response, data: RecordingMetadataResponse.from_hash(decoded)
1535
+ )
1536
+ end
1537
+
1538
+ # Downloads the specified recording
1539
+ # @param [String] account_id Required parameter: Example:
1540
+ # @param [String] conference_id Required parameter: Example:
1541
+ # @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)
1546
+ # Prepare query url.
1547
+ _query_builder = config.get_base_uri(Server::VOICEDEFAULT)
1548
+ _query_builder << '/api/v2/accounts/{accountId}/conferences/{conferenceId}/recordings/{recordingId}/media'
1549
+ _query_builder = APIHelper.append_url_with_template_parameters(
1550
+ _query_builder,
1551
+ 'accountId' => { 'value' => account_id, 'encode' => false },
1552
+ 'conferenceId' => { 'value' => conference_id, 'encode' => false },
1553
+ 'recordingId' => { 'value' => recording_id, 'encode' => false }
1554
+ )
1555
+ _query_url = APIHelper.clean_url _query_builder
1556
+
1557
+ # Prepare and execute HttpRequest.
1558
+ _request = config.http_client.get(
1559
+ _query_url
1560
+ )
1561
+ VoiceBasicAuth.apply(config, _request)
1562
+ _response = execute_request(_request, binary: true)
1563
+
1564
+ # Validate response against endpoint and global error codes.
1565
+ if _response.status_code == 400
1566
+ raise ApiErrorResponseException.new(
1567
+ 'Something\'s not quite right... Your request is invalid. Please' \
1568
+ ' fix it before trying again.',
1569
+ _response
1570
+ )
1571
+ elsif _response.status_code == 401
1572
+ raise APIException.new(
1573
+ 'Your credentials are invalid. Please use your Bandwidth dashboard' \
1574
+ ' credentials to authenticate to the API.',
1575
+ _response
1576
+ )
1577
+ elsif _response.status_code == 403
1578
+ raise ApiErrorResponseException.new(
1579
+ 'User unauthorized to perform this action.',
1580
+ _response
1581
+ )
1582
+ elsif _response.status_code == 404
1583
+ raise ApiErrorResponseException.new(
1584
+ 'The resource specified cannot be found or does not belong to you.',
1585
+ _response
1586
+ )
1587
+ elsif _response.status_code == 415
1588
+ raise ApiErrorResponseException.new(
1589
+ 'We don\'t support that media type. If a request body is required,' \
1590
+ ' please send it to us as `application/json`.',
1591
+ _response
1592
+ )
1593
+ elsif _response.status_code == 429
1594
+ raise ApiErrorResponseException.new(
1595
+ 'You\'re sending requests to this endpoint too frequently. Please' \
1596
+ ' slow your request rate down and try again.',
1597
+ _response
1598
+ )
1599
+ elsif _response.status_code == 500
1600
+ raise ApiErrorResponseException.new(
1601
+ 'Something unexpected happened. Please try again.',
1602
+ _response
1603
+ )
1604
+ end
1605
+ validate_response(_response)
1606
+
1607
+ # Return appropriate response type.
1608
+ ApiResponse.new(
1609
+ _response, data: _response.raw_body
1610
+ )
1611
+ end
1612
+
1214
1613
  # Returns a list of metadata for the recordings associated with the
1215
1614
  # specified account. The list can be filtered by the optional from, to,
1216
1615
  # minStartTime, and maxStartTime arguments. The list is capped at 1000
@@ -1231,7 +1630,7 @@ module Voice
1231
1630
  _query_builder << '/api/v2/accounts/{accountId}/recordings'
1232
1631
  _query_builder = APIHelper.append_url_with_template_parameters(
1233
1632
  _query_builder,
1234
- 'accountId' => { 'value' => account_id, 'encode' => true }
1633
+ 'accountId' => { 'value' => account_id, 'encode' => false }
1235
1634
  )
1236
1635
  _query_builder = APIHelper.append_url_with_query_parameters(
1237
1636
  _query_builder,
@@ -13,7 +13,7 @@ module Bandwidth
13
13
  @http_call_back = http_call_back
14
14
 
15
15
  @global_headers = {
16
- 'user-agent' => 'ruby-sdk-refs/tags/ruby3.8.0'
16
+ 'user-agent' => 'ruby-sdk'
17
17
  }
18
18
  end
19
19
 
@@ -0,0 +1,17 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ # AnswerFallbackMethod.
8
+ class AnswerFallbackMethodEnum
9
+ ANSWER_FALLBACK_METHOD_ENUM = [
10
+ # TODO: Write general description for POST
11
+ POST = 'POST'.freeze,
12
+
13
+ # TODO: Write general description for GET
14
+ GET = 'GET'.freeze
15
+ ].freeze
16
+ end
17
+ end