bandwidth-sdk 10.3.0 → 11.0.0.pre.beta.1.1

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 (526) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +76 -0
  4. data/README.md +197 -139
  5. data/Rakefile +22 -0
  6. data/bandwidth-sdk.gemspec +40 -0
  7. data/bandwidth.yml +5551 -0
  8. data/docs/AccountStatistics.md +20 -0
  9. data/docs/AnswerCallback.md +44 -0
  10. data/docs/BridgeCompleteCallback.md +48 -0
  11. data/docs/BridgeTargetCompleteCallback.md +42 -0
  12. data/docs/CallDirectionEnum.md +15 -0
  13. data/docs/CallRecordingMetadata.md +52 -0
  14. data/docs/CallState.md +52 -0
  15. data/docs/CallStateEnum.md +15 -0
  16. data/docs/CallbackMethodEnum.md +15 -0
  17. data/docs/CallsApi.md +304 -0
  18. data/docs/CodeRequest.md +28 -0
  19. data/docs/Conference.md +32 -0
  20. data/docs/ConferenceCompletedCallback.md +26 -0
  21. data/docs/ConferenceCreatedCallback.md +26 -0
  22. data/docs/ConferenceMember.md +28 -0
  23. data/docs/ConferenceMemberExitCallback.md +32 -0
  24. data/docs/ConferenceMemberJoinCallback.md +32 -0
  25. data/docs/ConferenceRecordingAvailableCallback.md +44 -0
  26. data/docs/ConferenceRecordingMetadata.md +38 -0
  27. data/docs/ConferenceRedirectCallback.md +26 -0
  28. data/docs/ConferenceStateEnum.md +15 -0
  29. data/docs/ConferencesApi.md +688 -0
  30. data/docs/CreateCall.md +54 -0
  31. data/docs/CreateCallResponse.md +58 -0
  32. data/docs/CreateLookupResponse.md +20 -0
  33. data/docs/CreateMessageRequestError.md +22 -0
  34. data/docs/CreateParticipantRequest.md +24 -0
  35. data/docs/CreateParticipantResponse.md +20 -0
  36. data/docs/DeferredResult.md +20 -0
  37. data/docs/DeviceApiVersionEnum.md +15 -0
  38. data/docs/DisconenctCallback.md +50 -0
  39. data/docs/DisconnectCallback.md +50 -0
  40. data/docs/Diversion.md +30 -0
  41. data/docs/DtmfCallback.md +50 -0
  42. data/docs/FieldError.md +20 -0
  43. data/docs/FileFormatEnum.md +15 -0
  44. data/docs/ForbiddenRequest.md +18 -0
  45. data/docs/GatherCallback.md +52 -0
  46. data/docs/InboundMessageCallback.md +26 -0
  47. data/docs/InboundMessageCallbackMessage.md +40 -0
  48. data/docs/InitiateCallback.md +40 -0
  49. data/docs/ListMessageDirectionEnum.md +15 -0
  50. data/docs/ListMessageItem.md +48 -0
  51. data/docs/LookupRequest.md +18 -0
  52. data/docs/LookupResult.md +34 -0
  53. data/docs/LookupStatus.md +24 -0
  54. data/docs/LookupStatusEnum.md +15 -0
  55. data/docs/MFAApi.md +226 -0
  56. data/docs/MachineDetectionCompleteCallback.md +44 -0
  57. data/docs/MachineDetectionConfiguration.md +46 -0
  58. data/docs/MachineDetectionModeEnum.md +15 -0
  59. data/docs/Media.md +22 -0
  60. data/docs/MediaApi.md +307 -0
  61. data/docs/Message.md +42 -0
  62. data/docs/MessageDeliveredCallback.md +26 -0
  63. data/docs/MessageDeliveredCallbackMessage.md +40 -0
  64. data/docs/MessageDirectionEnum.md +15 -0
  65. data/docs/MessageFailedCallback.md +28 -0
  66. data/docs/MessageFailedCallbackMessage.md +40 -0
  67. data/docs/MessageRequest.md +32 -0
  68. data/docs/MessageSendingCallback.md +26 -0
  69. data/docs/MessageSendingCallbackMessage.md +40 -0
  70. data/docs/MessageStatusEnum.md +15 -0
  71. data/docs/MessageTypeEnum.md +15 -0
  72. data/docs/MessagesApi.md +179 -0
  73. data/docs/MessagesList.md +22 -0
  74. data/docs/MessagingCodeResponse.md +18 -0
  75. data/docs/MessagingRequestError.md +20 -0
  76. data/docs/MfaForbiddenRequestError.md +18 -0
  77. data/docs/MfaRequestError.md +20 -0
  78. data/docs/MfaUnauthorizedRequestError.md +18 -0
  79. data/docs/PageInfo.md +24 -0
  80. data/docs/Participant.md +30 -0
  81. data/docs/ParticipantSubscription.md +20 -0
  82. data/docs/ParticipantsApi.md +227 -0
  83. data/docs/PhoneNumberLookupApi.md +153 -0
  84. data/docs/PriorityEnum.md +15 -0
  85. data/docs/PublishPermissionsEnum.md +15 -0
  86. data/docs/RecordingAvailableCallback.md +60 -0
  87. data/docs/RecordingCompleteCallback.md +60 -0
  88. data/docs/RecordingStateEnum.md +15 -0
  89. data/docs/RecordingsApi.md +758 -0
  90. data/docs/RedirectCallback.md +48 -0
  91. data/docs/RedirectMethodEnum.md +15 -0
  92. data/docs/RequestError.md +20 -0
  93. data/docs/Session.md +20 -0
  94. data/docs/SessionsApi.md +605 -0
  95. data/docs/StatisticsApi.md +78 -0
  96. data/docs/StirShaken.md +22 -0
  97. data/docs/Subscriptions.md +20 -0
  98. data/docs/Tag.md +20 -0
  99. data/docs/TnLookupRequestError.md +18 -0
  100. data/docs/TranscribeRecording.md +28 -0
  101. data/docs/Transcription.md +20 -0
  102. data/docs/TranscriptionAvailableCallback.md +58 -0
  103. data/docs/TranscriptionList.md +18 -0
  104. data/docs/TranscriptionMetadata.md +24 -0
  105. data/docs/TransferAnswerCallback.md +46 -0
  106. data/docs/TransferCompleteCallback.md +52 -0
  107. data/docs/TransferDisconnectCallback.md +56 -0
  108. data/docs/UnauthorizedRequest.md +18 -0
  109. data/docs/UpdateCall.md +36 -0
  110. data/docs/UpdateCallRecording.md +18 -0
  111. data/docs/UpdateConference.md +34 -0
  112. data/docs/UpdateConferenceMember.md +22 -0
  113. data/docs/VerifyCodeRequest.md +24 -0
  114. data/docs/VerifyCodeResponse.md +18 -0
  115. data/docs/VoiceApiError.md +22 -0
  116. data/docs/VoiceCodeResponse.md +18 -0
  117. data/git_push.sh +57 -0
  118. data/lib/bandwidth-sdk/api/calls_api.rb +325 -0
  119. data/lib/bandwidth-sdk/api/conferences_api.rb +717 -0
  120. data/lib/bandwidth-sdk/api/media_api.rb +312 -0
  121. data/lib/bandwidth-sdk/api/messages_api.rb +198 -0
  122. data/lib/bandwidth-sdk/api/mfa_api.rb +244 -0
  123. data/lib/bandwidth-sdk/api/phone_number_lookup_api.rb +165 -0
  124. data/lib/bandwidth-sdk/api/recordings_api.rb +782 -0
  125. data/lib/bandwidth-sdk/api/statistics_api.rb +85 -0
  126. data/lib/bandwidth-sdk/api_client.rb +428 -0
  127. data/lib/bandwidth-sdk/api_error.rb +58 -0
  128. data/lib/bandwidth-sdk/configuration.rb +589 -0
  129. data/lib/bandwidth-sdk/models/account_statistics.rb +230 -0
  130. data/lib/bandwidth-sdk/models/answer_callback.rb +376 -0
  131. data/lib/bandwidth-sdk/models/bridge_complete_callback.rb +397 -0
  132. data/lib/bandwidth-sdk/models/bridge_target_complete_callback.rb +365 -0
  133. data/lib/bandwidth-sdk/models/bxml/bxml.rb +13 -0
  134. data/lib/bandwidth-sdk/models/bxml/nestable_verb.rb +50 -0
  135. data/lib/bandwidth-sdk/models/bxml/response.rb +13 -0
  136. data/lib/bandwidth-sdk/models/bxml/root.rb +47 -0
  137. data/lib/bandwidth-sdk/models/bxml/verb.rb +51 -0
  138. data/lib/bandwidth-sdk/models/bxml/verbs/bridge.rb +30 -0
  139. data/lib/bandwidth-sdk/models/bxml/verbs/conference.rb +31 -0
  140. data/lib/bandwidth-sdk/models/bxml/verbs/forward.rb +22 -0
  141. data/lib/bandwidth-sdk/models/bxml/verbs/gather.rb +44 -0
  142. data/lib/bandwidth-sdk/models/bxml/verbs/hangup.rb +12 -0
  143. data/lib/bandwidth-sdk/models/bxml/verbs/pause.rb +17 -0
  144. data/lib/bandwidth-sdk/models/bxml/verbs/pause_recording.rb +12 -0
  145. data/lib/bandwidth-sdk/models/bxml/verbs/phone_number.rb +28 -0
  146. data/lib/bandwidth-sdk/models/bxml/verbs/play_audio.rb +19 -0
  147. data/lib/bandwidth-sdk/models/bxml/verbs/record.rb +34 -0
  148. data/lib/bandwidth-sdk/models/bxml/verbs/redirect.rb +25 -0
  149. data/lib/bandwidth-sdk/models/bxml/verbs/resume_recording.rb +12 -0
  150. data/lib/bandwidth-sdk/models/bxml/verbs/ring.rb +18 -0
  151. data/lib/bandwidth-sdk/models/bxml/verbs/send_dtmf.rb +19 -0
  152. data/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb +29 -0
  153. data/lib/bandwidth-sdk/models/bxml/verbs/speak_sentence.rb +27 -0
  154. data/lib/bandwidth-sdk/models/bxml/verbs/start_gather.rb +21 -0
  155. data/lib/bandwidth-sdk/models/bxml/verbs/start_recording.rb +26 -0
  156. data/lib/bandwidth-sdk/models/bxml/verbs/start_stream.rb +30 -0
  157. data/lib/bandwidth-sdk/models/bxml/verbs/stop_gather.rb +12 -0
  158. data/lib/bandwidth-sdk/models/bxml/verbs/stop_recording.rb +12 -0
  159. data/lib/bandwidth-sdk/models/bxml/verbs/stop_stream.rb +17 -0
  160. data/lib/bandwidth-sdk/models/bxml/verbs/stream_param.rb +18 -0
  161. data/lib/bandwidth-sdk/models/bxml/verbs/tag.rb +13 -0
  162. data/lib/bandwidth-sdk/models/bxml/verbs/transfer.rb +36 -0
  163. data/lib/bandwidth-sdk/models/call_direction_enum.rb +40 -0
  164. data/lib/bandwidth-sdk/models/call_recording_metadata.rb +411 -0
  165. data/lib/bandwidth-sdk/models/call_state.rb +423 -0
  166. data/lib/bandwidth-sdk/models/call_state_enum.rb +40 -0
  167. data/lib/bandwidth-sdk/models/callback_method_enum.rb +40 -0
  168. data/lib/bandwidth-sdk/models/code_request.rb +427 -0
  169. data/lib/bandwidth-sdk/models/conference.rb +320 -0
  170. data/lib/bandwidth-sdk/models/conference_completed_callback.rb +262 -0
  171. data/lib/bandwidth-sdk/models/conference_created_callback.rb +262 -0
  172. data/lib/bandwidth-sdk/models/conference_member.rb +273 -0
  173. data/lib/bandwidth-sdk/models/conference_member_exit_callback.rb +292 -0
  174. data/lib/bandwidth-sdk/models/conference_member_join_callback.rb +292 -0
  175. data/lib/bandwidth-sdk/models/conference_recording_available_callback.rb +374 -0
  176. data/lib/bandwidth-sdk/models/conference_recording_metadata.rb +342 -0
  177. data/lib/bandwidth-sdk/models/conference_redirect_callback.rb +262 -0
  178. data/lib/bandwidth-sdk/models/conference_state_enum.rb +40 -0
  179. data/lib/bandwidth-sdk/models/create_call.rb +651 -0
  180. data/lib/bandwidth-sdk/models/create_call_response.rb +552 -0
  181. data/lib/bandwidth-sdk/models/create_lookup_response.rb +252 -0
  182. data/lib/bandwidth-sdk/models/create_message_request_error.rb +249 -0
  183. data/lib/bandwidth-sdk/models/deferred_result.rb +228 -0
  184. data/lib/bandwidth-sdk/models/disconenct_callback.rb +407 -0
  185. data/lib/bandwidth-sdk/models/disconnect_callback.rb +407 -0
  186. data/lib/bandwidth-sdk/models/diversion.rb +280 -0
  187. data/lib/bandwidth-sdk/models/dtmf_callback.rb +405 -0
  188. data/lib/bandwidth-sdk/models/field_error.rb +230 -0
  189. data/lib/bandwidth-sdk/models/file_format_enum.rb +40 -0
  190. data/lib/bandwidth-sdk/models/gather_callback.rb +415 -0
  191. data/lib/bandwidth-sdk/models/inbound_message_callback.rb +281 -0
  192. data/lib/bandwidth-sdk/models/inbound_message_callback_message.rb +399 -0
  193. data/lib/bandwidth-sdk/models/initiate_callback.rb +350 -0
  194. data/lib/bandwidth-sdk/models/list_message_direction_enum.rb +40 -0
  195. data/lib/bandwidth-sdk/models/list_message_item.rb +394 -0
  196. data/lib/bandwidth-sdk/models/lookup_request.rb +227 -0
  197. data/lib/bandwidth-sdk/models/lookup_result.rb +301 -0
  198. data/lib/bandwidth-sdk/models/lookup_status.rb +276 -0
  199. data/lib/bandwidth-sdk/models/lookup_status_enum.rb +42 -0
  200. data/lib/bandwidth-sdk/models/machine_detection_complete_callback.rb +376 -0
  201. data/lib/bandwidth-sdk/models/machine_detection_configuration.rb +500 -0
  202. data/lib/bandwidth-sdk/models/machine_detection_mode_enum.rb +40 -0
  203. data/lib/bandwidth-sdk/models/media.rb +237 -0
  204. data/lib/bandwidth-sdk/models/message.rb +376 -0
  205. data/lib/bandwidth-sdk/models/message_delivered_callback.rb +281 -0
  206. data/lib/bandwidth-sdk/models/message_delivered_callback_message.rb +404 -0
  207. data/lib/bandwidth-sdk/models/message_direction_enum.rb +40 -0
  208. data/lib/bandwidth-sdk/models/message_failed_callback.rb +295 -0
  209. data/lib/bandwidth-sdk/models/message_failed_callback_message.rb +409 -0
  210. data/lib/bandwidth-sdk/models/message_request.rb +355 -0
  211. data/lib/bandwidth-sdk/models/message_sending_callback.rb +281 -0
  212. data/lib/bandwidth-sdk/models/message_sending_callback_message.rb +409 -0
  213. data/lib/bandwidth-sdk/models/message_status_enum.rb +46 -0
  214. data/lib/bandwidth-sdk/models/message_type_enum.rb +40 -0
  215. data/lib/bandwidth-sdk/models/messages_list.rb +240 -0
  216. data/lib/bandwidth-sdk/models/messaging_code_response.rb +220 -0
  217. data/lib/bandwidth-sdk/models/messaging_request_error.rb +238 -0
  218. data/lib/bandwidth-sdk/models/mfa_forbidden_request_error.rb +220 -0
  219. data/lib/bandwidth-sdk/models/mfa_request_error.rb +230 -0
  220. data/lib/bandwidth-sdk/models/mfa_unauthorized_request_error.rb +220 -0
  221. data/lib/bandwidth-sdk/models/page_info.rb +250 -0
  222. data/lib/bandwidth-sdk/models/priority_enum.rb +40 -0
  223. data/lib/bandwidth-sdk/models/recording_available_callback.rb +454 -0
  224. data/lib/bandwidth-sdk/models/recording_complete_callback.rb +455 -0
  225. data/lib/bandwidth-sdk/models/recording_state_enum.rb +40 -0
  226. data/lib/bandwidth-sdk/models/redirect_callback.rb +395 -0
  227. data/lib/bandwidth-sdk/models/redirect_method_enum.rb +40 -0
  228. data/lib/bandwidth-sdk/models/stir_shaken.rb +240 -0
  229. data/lib/bandwidth-sdk/models/tag.rb +228 -0
  230. data/lib/bandwidth-sdk/models/tn_lookup_request_error.rb +220 -0
  231. data/lib/bandwidth-sdk/models/transcribe_recording.rb +354 -0
  232. data/lib/bandwidth-sdk/models/transcription.rb +230 -0
  233. data/lib/bandwidth-sdk/models/transcription_available_callback.rb +443 -0
  234. data/lib/bandwidth-sdk/models/transcription_list.rb +221 -0
  235. data/lib/bandwidth-sdk/models/transcription_metadata.rb +251 -0
  236. data/lib/bandwidth-sdk/models/transfer_answer_callback.rb +385 -0
  237. data/lib/bandwidth-sdk/models/transfer_complete_callback.rb +417 -0
  238. data/lib/bandwidth-sdk/models/transfer_disconnect_callback.rb +437 -0
  239. data/lib/bandwidth-sdk/models/update_call.rb +411 -0
  240. data/lib/bandwidth-sdk/models/update_call_recording.rb +246 -0
  241. data/lib/bandwidth-sdk/models/update_conference.rb +394 -0
  242. data/lib/bandwidth-sdk/models/update_conference_member.rb +243 -0
  243. data/lib/bandwidth-sdk/models/verify_code_request.rb +342 -0
  244. data/lib/bandwidth-sdk/models/verify_code_response.rb +220 -0
  245. data/lib/bandwidth-sdk/models/voice_api_error.rb +238 -0
  246. data/lib/bandwidth-sdk/models/voice_code_response.rb +220 -0
  247. data/lib/bandwidth-sdk/version.rb +15 -0
  248. data/lib/bandwidth-sdk.rb +166 -0
  249. data/openapi-config.yml +11 -0
  250. data/ruby-notes.md +15 -0
  251. data/spec/call_utils.rb +74 -0
  252. data/spec/fixtures/ruby_cat.jpeg +0 -0
  253. data/spec/integration/calls_api_integration_spec.rb +181 -0
  254. data/spec/integration/conferences_api_integration_spec.rb +163 -0
  255. data/spec/integration/media_api_integration_spec.rb +86 -0
  256. data/spec/integration/messages_api_integration_spec.rb +125 -0
  257. data/spec/integration/mfa_api_integration_spec.rb +109 -0
  258. data/spec/integration/phone_number_lookup_api_integration_spec.rb +92 -0
  259. data/spec/integration/recordings_api_integration_spec.rb +219 -0
  260. data/spec/integration/statistics_api_integration_spec.rb +57 -0
  261. data/spec/spec_helper.rb +154 -0
  262. data/spec/unit/api/calls_api_spec.rb +89 -0
  263. data/spec/unit/api/conferences_api_spec.rb +163 -0
  264. data/spec/unit/api/media_api_spec.rb +90 -0
  265. data/spec/unit/api/messages_api_spec.rb +73 -0
  266. data/spec/unit/api/mfa_api_spec.rb +74 -0
  267. data/spec/unit/api/phone_number_lookup_api_spec.rb +61 -0
  268. data/spec/unit/api/recordings_api_spec.rb +177 -0
  269. data/spec/unit/api/statistics_api_spec.rb +47 -0
  270. data/spec/unit/models/account_statistics_spec.rb +40 -0
  271. data/spec/unit/models/answer_callback_spec.rb +112 -0
  272. data/spec/unit/models/bridge_complete_callback_spec.rb +124 -0
  273. data/spec/unit/models/bridge_target_complete_callback_spec.rb +106 -0
  274. data/spec/unit/models/bxml/bxml_spec.rb +18 -0
  275. data/spec/unit/models/bxml/nestable_verb_spec.rb +13 -0
  276. data/spec/unit/models/bxml/response_spec.rb +18 -0
  277. data/spec/unit/models/bxml/verb_spec.rb +28 -0
  278. data/spec/unit/models/bxml/verbs/bridge_spec.rb +60 -0
  279. data/spec/unit/models/bxml/verbs/conference_spec.rb +60 -0
  280. data/spec/unit/models/bxml/verbs/forward_spec.rb +46 -0
  281. data/spec/unit/models/bxml/verbs/gather_spec.rb +88 -0
  282. data/spec/unit/models/bxml/verbs/hangup_spec.rb +18 -0
  283. data/spec/unit/models/bxml/verbs/pause_recording_spec.rb +18 -0
  284. data/spec/unit/models/bxml/verbs/pause_spec.rb +36 -0
  285. data/spec/unit/models/bxml/verbs/phone_number_spec.rb +56 -0
  286. data/spec/unit/models/bxml/verbs/play_audio_spec.rb +38 -0
  287. data/spec/unit/models/bxml/verbs/record_spec.rb +70 -0
  288. data/spec/unit/models/bxml/verbs/redirect_spec.rb +52 -0
  289. data/spec/unit/models/bxml/verbs/resume_recording_spec.rb +18 -0
  290. data/spec/unit/models/bxml/verbs/ring_spec.rb +38 -0
  291. data/spec/unit/models/bxml/verbs/send_dtmf_spec.rb +38 -0
  292. data/spec/unit/models/bxml/verbs/sip_uri_spec.rb +58 -0
  293. data/spec/unit/models/bxml/verbs/speak_sentence_spec.rb +40 -0
  294. data/spec/unit/models/bxml/verbs/start_gather_spec.rb +44 -0
  295. data/spec/unit/models/bxml/verbs/start_recording_spec.rb +54 -0
  296. data/spec/unit/models/bxml/verbs/start_stream_spec.rb +74 -0
  297. data/spec/unit/models/bxml/verbs/stop_gather_spec.rb +18 -0
  298. data/spec/unit/models/bxml/verbs/stop_recording_spec.rb +18 -0
  299. data/spec/unit/models/bxml/verbs/stop_stream_spec.rb +36 -0
  300. data/spec/unit/models/bxml/verbs/stream_param_spec.rb +38 -0
  301. data/spec/unit/models/bxml/verbs/tag_spec.rb +18 -0
  302. data/spec/unit/models/bxml/verbs/transfer_spec.rb +86 -0
  303. data/spec/unit/models/call_direction_enum_spec.rb +28 -0
  304. data/spec/unit/models/call_recording_metadata_spec.rb +136 -0
  305. data/spec/unit/models/call_state_enum_spec.rb +28 -0
  306. data/spec/unit/models/call_state_spec.rb +136 -0
  307. data/spec/unit/models/callback_method_enum_spec.rb +28 -0
  308. data/spec/unit/models/code_request_spec.rb +64 -0
  309. data/spec/unit/models/conference_completed_callback_spec.rb +58 -0
  310. data/spec/unit/models/conference_created_callback_spec.rb +58 -0
  311. data/spec/unit/models/conference_member_exit_callback_spec.rb +76 -0
  312. data/spec/unit/models/conference_member_join_callback_spec.rb +76 -0
  313. data/spec/unit/models/conference_member_spec.rb +64 -0
  314. data/spec/unit/models/conference_recording_available_callback_spec.rb +112 -0
  315. data/spec/unit/models/conference_recording_metadata_spec.rb +94 -0
  316. data/spec/unit/models/conference_redirect_callback_spec.rb +58 -0
  317. data/spec/unit/models/conference_spec.rb +76 -0
  318. data/spec/unit/models/conference_state_enum_spec.rb +28 -0
  319. data/spec/unit/models/create_call_response_spec.rb +154 -0
  320. data/spec/unit/models/create_call_spec.rb +142 -0
  321. data/spec/unit/models/create_lookup_response_spec.rb +40 -0
  322. data/spec/unit/models/create_message_request_error_spec.rb +46 -0
  323. data/spec/unit/models/deferred_result_spec.rb +40 -0
  324. data/spec/unit/models/disconnect_callback_spec.rb +130 -0
  325. data/spec/unit/models/diversion_spec.rb +70 -0
  326. data/spec/unit/models/dtmf_callback_spec.rb +130 -0
  327. data/spec/unit/models/field_error_spec.rb +40 -0
  328. data/spec/unit/models/file_format_enum_spec.rb +28 -0
  329. data/spec/unit/models/gather_callback_spec.rb +136 -0
  330. data/spec/unit/models/inbound_message_callback_message_spec.rb +100 -0
  331. data/spec/unit/models/inbound_message_callback_spec.rb +58 -0
  332. data/spec/unit/models/initiate_callback_spec.rb +100 -0
  333. data/spec/unit/models/list_message_direction_enum_spec.rb +28 -0
  334. data/spec/unit/models/list_message_item_spec.rb +124 -0
  335. data/spec/unit/models/lookup_request_spec.rb +34 -0
  336. data/spec/unit/models/lookup_result_spec.rb +82 -0
  337. data/spec/unit/models/lookup_status_enum_spec.rb +28 -0
  338. data/spec/unit/models/lookup_status_spec.rb +52 -0
  339. data/spec/unit/models/machine_detection_complete_callback_spec.rb +112 -0
  340. data/spec/unit/models/machine_detection_configuration_spec.rb +118 -0
  341. data/spec/unit/models/machine_detection_mode_enum_spec.rb +28 -0
  342. data/spec/unit/models/media_spec.rb +46 -0
  343. data/spec/unit/models/message_delivered_callback_message_spec.rb +100 -0
  344. data/spec/unit/models/message_delivered_callback_spec.rb +58 -0
  345. data/spec/unit/models/message_direction_enum_spec.rb +28 -0
  346. data/spec/unit/models/message_failed_callback_message_spec.rb +100 -0
  347. data/spec/unit/models/message_failed_callback_spec.rb +64 -0
  348. data/spec/unit/models/message_request_spec.rb +76 -0
  349. data/spec/unit/models/message_sending_callback_message_spec.rb +100 -0
  350. data/spec/unit/models/message_sending_callback_spec.rb +58 -0
  351. data/spec/unit/models/message_spec.rb +106 -0
  352. data/spec/unit/models/message_status_enum_spec.rb +28 -0
  353. data/spec/unit/models/message_type_enum_spec.rb +28 -0
  354. data/spec/unit/models/messages_list_spec.rb +46 -0
  355. data/spec/unit/models/messaging_code_response_spec.rb +34 -0
  356. data/spec/unit/models/messaging_request_error_spec.rb +40 -0
  357. data/spec/unit/models/mfa_forbidden_request_error_spec.rb +34 -0
  358. data/spec/unit/models/mfa_request_error_spec.rb +40 -0
  359. data/spec/unit/models/mfa_unauthorized_request_error_spec.rb +34 -0
  360. data/spec/unit/models/page_info_spec.rb +52 -0
  361. data/spec/unit/models/priority_enum_spec.rb +28 -0
  362. data/spec/unit/models/recording_available_callback_spec.rb +160 -0
  363. data/spec/unit/models/recording_complete_callback_spec.rb +160 -0
  364. data/spec/unit/models/recording_state_enum_spec.rb +28 -0
  365. data/spec/unit/models/redirect_callback_spec.rb +124 -0
  366. data/spec/unit/models/redirect_method_enum_spec.rb +28 -0
  367. data/spec/unit/models/stir_shaken_spec.rb +46 -0
  368. data/spec/unit/models/tag_spec.rb +40 -0
  369. data/spec/unit/models/tn_lookup_request_error_spec.rb +34 -0
  370. data/spec/unit/models/transcribe_recording_spec.rb +64 -0
  371. data/spec/unit/models/transcription_available_callback_spec.rb +154 -0
  372. data/spec/unit/models/transcription_list_spec.rb +34 -0
  373. data/spec/unit/models/transcription_metadata_spec.rb +52 -0
  374. data/spec/unit/models/transcription_spec.rb +40 -0
  375. data/spec/unit/models/transfer_answer_callback_spec.rb +118 -0
  376. data/spec/unit/models/transfer_complete_callback_spec.rb +136 -0
  377. data/spec/unit/models/transfer_disconnect_callback_spec.rb +148 -0
  378. data/spec/unit/models/update_call_recording_spec.rb +34 -0
  379. data/spec/unit/models/update_call_spec.rb +88 -0
  380. data/spec/unit/models/update_conference_member_spec.rb +46 -0
  381. data/spec/unit/models/update_conference_spec.rb +82 -0
  382. data/spec/unit/models/verify_code_request_spec.rb +52 -0
  383. data/spec/unit/models/verify_code_response_spec.rb +34 -0
  384. data/spec/unit/models/voice_api_error_spec.rb +46 -0
  385. data/spec/unit/models/voice_code_response_spec.rb +34 -0
  386. metadata +543 -248
  387. data/LICENSE +0 -28
  388. data/lib/bandwidth/api_helper.rb +0 -280
  389. data/lib/bandwidth/client.rb +0 -75
  390. data/lib/bandwidth/configuration.rb +0 -209
  391. data/lib/bandwidth/exceptions/api_exception.rb +0 -20
  392. data/lib/bandwidth/http/api_response.rb +0 -38
  393. data/lib/bandwidth/http/auth/messaging_basic_auth.rb +0 -22
  394. data/lib/bandwidth/http/auth/multi_factor_auth_basic_auth.rb +0 -22
  395. data/lib/bandwidth/http/auth/phone_number_lookup_basic_auth.rb +0 -22
  396. data/lib/bandwidth/http/auth/voice_basic_auth.rb +0 -22
  397. data/lib/bandwidth/http/auth/web_rtc_basic_auth.rb +0 -22
  398. data/lib/bandwidth/http/faraday_client.rb +0 -70
  399. data/lib/bandwidth/http/http_call_back.rb +0 -24
  400. data/lib/bandwidth/http/http_client.rb +0 -104
  401. data/lib/bandwidth/http/http_method_enum.rb +0 -13
  402. data/lib/bandwidth/http/http_request.rb +0 -50
  403. data/lib/bandwidth/http/http_response.rb +0 -29
  404. data/lib/bandwidth/messaging_lib/messaging/client.rb +0 -60
  405. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +0 -491
  406. data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +0 -47
  407. data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +0 -37
  408. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +0 -100
  409. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +0 -174
  410. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +0 -203
  411. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +0 -79
  412. data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +0 -60
  413. data/lib/bandwidth/messaging_lib/messaging/models/media.rb +0 -70
  414. data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +0 -122
  415. data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +0 -82
  416. data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +0 -19
  417. data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +0 -60
  418. data/lib/bandwidth/messaging_lib/messaging.rb +0 -25
  419. data/lib/bandwidth/models/base_model.rb +0 -58
  420. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/client.rb +0 -60
  421. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/base_controller.rb +0 -47
  422. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/mfa_controller.rb +0 -214
  423. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/error_with_request_exception.rb +0 -37
  424. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/forbidden_request_exception.rb +0 -32
  425. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/unauthorized_request_exception.rb +0 -32
  426. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_code_request_schema.rb +0 -103
  427. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_messaging_response.rb +0 -50
  428. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_code_response.rb +0 -50
  429. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_request_schema.rb +0 -94
  430. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_voice_response.rb +0 -50
  431. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +0 -23
  432. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/client.rb +0 -60
  433. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +0 -1553
  434. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +0 -47
  435. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +0 -32
  436. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +0 -50
  437. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +0 -61
  438. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +0 -95
  439. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +0 -132
  440. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +0 -20
  441. data/lib/bandwidth/utilities/date_time_helper.rb +0 -156
  442. data/lib/bandwidth/utilities/file_wrapper.rb +0 -16
  443. data/lib/bandwidth/voice_lib/bxml/bxml.rb +0 -36
  444. data/lib/bandwidth/voice_lib/bxml/response.rb +0 -39
  445. data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +0 -28
  446. data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +0 -32
  447. data/lib/bandwidth/voice_lib/bxml/verbs/forward.rb +0 -18
  448. data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +0 -49
  449. data/lib/bandwidth/voice_lib/bxml/verbs/hangup.rb +0 -14
  450. data/lib/bandwidth/voice_lib/bxml/verbs/pause.rb +0 -15
  451. data/lib/bandwidth/voice_lib/bxml/verbs/pause_recording.rb +0 -14
  452. data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +0 -24
  453. data/lib/bandwidth/voice_lib/bxml/verbs/play_audio.rb +0 -17
  454. data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +0 -33
  455. data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +0 -24
  456. data/lib/bandwidth/voice_lib/bxml/verbs/resume_recording.rb +0 -14
  457. data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +0 -16
  458. data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +0 -16
  459. data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +0 -25
  460. data/lib/bandwidth/voice_lib/bxml/verbs/speak_sentence.rb +0 -18
  461. data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +0 -20
  462. data/lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb +0 -25
  463. data/lib/bandwidth/voice_lib/bxml/verbs/start_stream.rb +0 -41
  464. data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +0 -14
  465. data/lib/bandwidth/voice_lib/bxml/verbs/stop_recording.rb +0 -14
  466. data/lib/bandwidth/voice_lib/bxml/verbs/stop_stream.rb +0 -16
  467. data/lib/bandwidth/voice_lib/bxml/verbs/stream_param.rb +0 -17
  468. data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +0 -13
  469. data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +0 -48
  470. data/lib/bandwidth/voice_lib/bxml/verbs/xml_verb.rb +0 -26
  471. data/lib/bandwidth/voice_lib/voice/client.rb +0 -60
  472. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +0 -1820
  473. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +0 -47
  474. data/lib/bandwidth/voice_lib/voice/exceptions/api_error_exception.rb +0 -42
  475. data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +0 -17
  476. data/lib/bandwidth/voice_lib/voice/models/answer_method_enum.rb +0 -17
  477. data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +0 -343
  478. data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +0 -250
  479. data/lib/bandwidth/voice_lib/voice/models/call_state.rb +0 -301
  480. data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +0 -17
  481. data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +0 -211
  482. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +0 -17
  483. data/lib/bandwidth/voice_lib/voice/models/conference_member_state.rb +0 -103
  484. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +0 -173
  485. data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +0 -153
  486. data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +0 -236
  487. data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +0 -266
  488. data/lib/bandwidth/voice_lib/voice/models/direction_enum.rb +0 -17
  489. data/lib/bandwidth/voice_lib/voice/models/disconnect_method_enum.rb +0 -17
  490. data/lib/bandwidth/voice_lib/voice/models/diversion.rb +0 -80
  491. data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +0 -17
  492. data/lib/bandwidth/voice_lib/voice/models/file_format_enum.rb +0 -17
  493. data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +0 -231
  494. data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +0 -20
  495. data/lib/bandwidth/voice_lib/voice/models/modify_call_recording_request.rb +0 -48
  496. data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +0 -156
  497. data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +0 -144
  498. data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +0 -17
  499. data/lib/bandwidth/voice_lib/voice/models/redirect_method_enum.rb +0 -17
  500. data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +0 -20
  501. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +0 -17
  502. data/lib/bandwidth/voice_lib/voice/models/status_enum.rb +0 -17
  503. data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +0 -108
  504. data/lib/bandwidth/voice_lib/voice/models/transcript.rb +0 -60
  505. data/lib/bandwidth/voice_lib/voice/models/transcription.rb +0 -80
  506. data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +0 -89
  507. data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +0 -59
  508. data/lib/bandwidth/voice_lib/voice.rb +0 -48
  509. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +0 -18
  510. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +0 -60
  511. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +0 -703
  512. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +0 -47
  513. data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +0 -37
  514. data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +0 -62
  515. data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +0 -17
  516. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +0 -115
  517. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +0 -48
  518. data/lib/bandwidth/web_rtc_lib/web_rtc/models/publish_permission_enum.rb +0 -17
  519. data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +0 -60
  520. data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +0 -71
  521. data/lib/bandwidth/web_rtc_lib/web_rtc.rb +0 -22
  522. data/lib/bandwidth.rb +0 -72
  523. data/test/controllers/controller_test_base.rb +0 -21
  524. data/test/http_response_catcher.rb +0 -19
  525. data/test/integration/test_integration.rb +0 -767
  526. data/test/test_helper.rb +0 -94
data/LICENSE DELETED
@@ -1,28 +0,0 @@
1
- License:
2
- ========
3
- The MIT License (MIT)
4
- http://opensource.org/licenses/MIT
5
-
6
- Copyright (c) 2014 - 2020 APIMATIC Limited
7
-
8
- Permission is hereby granted, free of charge, to any person obtaining a copy
9
- of this software and associated documentation files (the "Software"), to deal
10
- in the Software without restriction, including without limitation the rights
11
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
- copies of the Software, and to permit persons to whom the Software is
13
- furnished to do so, subject to the following conditions:
14
-
15
- The above copyright notice and this permission notice shall be included in
16
- all copies or substantial portions of the Software.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
- THE SOFTWARE.
25
-
26
- Trade Mark:
27
- ==========
28
- APIMATIC is a trade mark for APIMATIC Limited
@@ -1,280 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Bandwidth
7
- # API utility class
8
- class APIHelper
9
- # Serializes an array parameter (creates key value pairs).
10
- # @param [String] The name of the parameter.
11
- # @param [Array] The value of the parameter.
12
- # @param [String] The format of the serialization.
13
- def self.serialize_array(key, array, formatting: 'indexed')
14
- tuples = []
15
-
16
- case formatting
17
- when 'unindexed'
18
- tuples += array.map { |element| ["#{key}[]", element] }
19
- when 'indexed'
20
- tuples += array.map.with_index do |element, index|
21
- ["#{key}[#{index}]", element]
22
- end
23
- when 'plain'
24
- tuples += array.map { |element| [key, element] }
25
- else
26
- raise ArgumentError, 'Invalid format provided.'
27
- end
28
- tuples
29
- end
30
-
31
- # Replaces template parameters in the given url.
32
- # @param [String] The query string builder to replace the template
33
- # parameters.
34
- # @param [Hash] The parameters to replace in the url.
35
- def self.append_url_with_template_parameters(query_builder, parameters)
36
- # perform parameter validation
37
- unless query_builder.instance_of? String
38
- raise ArgumentError, 'Given value for parameter \"query_builder\" is
39
- invalid.'
40
- end
41
-
42
- # Return if there are no parameters to replace.
43
- return query_builder if parameters.nil?
44
-
45
- parameters.each do |key, val|
46
- if val.nil?
47
- replace_value = ''
48
- elsif val['value'].instance_of? Array
49
- if val['encode'] == true
50
- val['value'].map! { |element| CGI.escape(element.to_s) }
51
- else
52
- val['value'].map!(&:to_s)
53
- end
54
- replace_value = val['value'].join('/')
55
- else
56
- replace_value = if val['encode'] == true
57
- CGI.escape(val['value'].to_s)
58
- else
59
- val['value'].to_s
60
- end
61
- end
62
-
63
- # Find the template parameter and replace it with its value.
64
- query_builder = query_builder.gsub("{#{key}}", replace_value)
65
- end
66
- query_builder
67
- end
68
-
69
- # Appends the given set of parameters to the given query string.
70
- # @param [String] The query string builder to add the query parameters to.
71
- # @param [Hash] The parameters to append.
72
- def self.append_url_with_query_parameters(query_builder, parameters)
73
- # Perform parameter validation.
74
- unless query_builder.instance_of? String
75
- raise ArgumentError, 'Given value for parameter \"query_builder\"
76
- is invalid.'
77
- end
78
-
79
- # Return if there are no parameters to replace.
80
- return query_builder if parameters.nil?
81
-
82
- array_serialization = 'indexed'
83
-
84
- parameters.each do |key, value|
85
- seperator = query_builder.include?('?') ? '&' : '?'
86
- unless value.nil?
87
- if value.instance_of? Array
88
- value.compact!
89
- query_builder += case array_serialization
90
- when 'csv'
91
- "#{seperator}#{key}=#{value.map do |element|
92
- CGI.escape(element.to_s)
93
- end.join(',')}"
94
- when 'psv'
95
- "#{seperator}#{key}=#{value.map do |element|
96
- CGI.escape(element.to_s)
97
- end.join('|')}"
98
- when 'tsv'
99
- "#{seperator}#{key}=#{value.map do |element|
100
- CGI.escape(element.to_s)
101
- end.join("\t")}"
102
- else
103
- "#{seperator}#{APIHelper.serialize_array(
104
- key, value, formatting: array_serialization
105
- ).map { |k, v| "#{k}=#{CGI.escape(v.to_s)}" }
106
- .join('&')}"
107
- end
108
- else
109
- query_builder += "#{seperator}#{key}=#{CGI.escape(value.to_s)}"
110
- end
111
- end
112
- end
113
- query_builder
114
- end
115
-
116
- # Validates and processes the given Url.
117
- # @param [String] The given Url to process.
118
- # @return [String] Pre-processed Url as string.
119
- def self.clean_url(url)
120
- # Perform parameter validation.
121
- raise ArgumentError, 'Invalid Url.' unless url.instance_of? String
122
-
123
- # Ensure that the urls are absolute.
124
- matches = url.match(%r{^(https?://[^/]+)})
125
- raise ArgumentError, 'Invalid Url format.' if matches.nil?
126
-
127
- # Get the http protocol match.
128
- protocol = matches[1]
129
-
130
- # Check if parameters exist.
131
- index = url.index('?')
132
-
133
- # Remove redundant forward slashes.
134
- query = url[protocol.length...(!index.nil? ? index : url.length)]
135
- query.gsub!(%r{//+}, '/')
136
-
137
- # Get the parameters.
138
- parameters = !index.nil? ? url[url.index('?')...url.length] : ''
139
-
140
- # Return processed url.
141
- protocol + query + parameters
142
- end
143
-
144
- # Parses JSON string.
145
- # @param [String] A JSON string.
146
- def self.json_deserialize(json)
147
- return {} if json.nil? || json.empty?
148
- JSON.parse(json)
149
- rescue StandardError
150
- raise TypeError, 'Server responded with invalid JSON.'
151
- end
152
-
153
- # Removes elements with empty values from a hash.
154
- # @param [Hash] The hash to clean.
155
- def self.clean_hash(hash)
156
- hash.delete_if { |_key, value| value.to_s.strip.empty? }
157
- end
158
-
159
- # Form encodes a hash of parameters.
160
- # @param [Hash] The hash of parameters to encode.
161
- # @return [Hash] A hash with the same parameters form encoded.
162
- def self.form_encode_parameters(form_parameters)
163
- array_serialization = 'indexed'
164
- encoded = {}
165
- form_parameters.each do |key, value|
166
- encoded.merge!(APIHelper.form_encode(value, key, formatting:
167
- array_serialization))
168
- end
169
- encoded
170
- end
171
-
172
- def self.custom_merge(a, b)
173
- x = {}
174
- a.each do |key, value_a|
175
- b.each do |k, value_b|
176
- next unless key == k
177
-
178
- x[k] = []
179
- if value_a.instance_of? Array
180
- value_a.each do |v|
181
- x[k].push(v)
182
- end
183
- else
184
- x[k].push(value_a)
185
- end
186
- if value_b.instance_of? Array
187
- value_b.each do |v|
188
- x[k].push(v)
189
- end
190
- else
191
- x[k].push(value_b)
192
- end
193
- a.delete(k)
194
- b.delete(k)
195
- end
196
- end
197
- x.merge!(a)
198
- x.merge!(b)
199
- x
200
- end
201
-
202
- # Form encodes an object.
203
- # @param [Dynamic] An object to form encode.
204
- # @param [String] The name of the object.
205
- # @return [Hash] A form encoded representation of the object in the form
206
- # of a hash.
207
- def self.form_encode(obj, instance_name, formatting: 'indexed')
208
- retval = {}
209
-
210
- serializable_types = [String, Numeric, TrueClass,
211
- FalseClass, Date, DateTime]
212
-
213
- # If this is a structure, resolve it's field names.
214
- obj = obj.to_hash if obj.is_a? BaseModel
215
-
216
- # Create a form encoded hash for this object.
217
- if obj.nil?
218
- nil
219
- elsif obj.instance_of? Array
220
- if formatting == 'indexed'
221
- obj.each_with_index do |value, index|
222
- retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{index}]"))
223
- end
224
- elsif serializable_types.map { |x| obj[0].is_a? x }.any?
225
- obj.each do |value|
226
- abc = if formatting == 'unindexed'
227
- APIHelper.form_encode(value, "#{instance_name}[]",
228
- formatting: formatting)
229
- else
230
- APIHelper.form_encode(value, instance_name,
231
- formatting: formatting)
232
- end
233
- retval = APIHelper.custom_merge(retval, abc)
234
- end
235
- else
236
- obj.each_with_index do |value, index|
237
- retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{index}]",
238
- formatting: formatting))
239
- end
240
- end
241
- elsif obj.instance_of? Hash
242
- obj.each do |key, value|
243
- retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{key}]",
244
- formatting: formatting))
245
- end
246
- elsif obj.instance_of? File
247
- retval[instance_name] = UploadIO.new(
248
- obj, 'application/octet-stream', File.basename(obj.path)
249
- )
250
- else
251
- retval[instance_name] = obj
252
- end
253
- retval
254
- end
255
-
256
- # Retrieves a field from a Hash/Array based on an Array of keys/indexes
257
- # @param [Hash, Array] The hash to extract data from
258
- # @param [Array<String, Integer>] The keys/indexes to use
259
- # @return [Object] The extracted value
260
- def self.map_response(obj, keys)
261
- val = obj
262
- begin
263
- keys.each do |key|
264
- val = if val.is_a? Array
265
- if key.to_i.to_s == key
266
- val[key.to_i]
267
- else
268
- val = nil
269
- end
270
- else
271
- val.fetch(key.to_sym)
272
- end
273
- end
274
- rescue NoMethodError, TypeError, IndexError
275
- val = nil
276
- end
277
- val
278
- end
279
- end
280
- end
@@ -1,75 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Bandwidth
7
- # bandwidth client class.
8
- class Client
9
- attr_reader :config
10
- # Access to messaging_client controller.
11
- # @return [Messaging::Client] Returns the client instance.
12
- def messaging_client
13
- @messaging_client ||= Messaging::Client.new(config: config)
14
- end
15
- # Access to multi_factor_auth_client controller.
16
- # @return [MultiFactorAuth::Client] Returns the client instance.
17
- def multi_factor_auth_client
18
- @multi_factor_auth_client ||= MultiFactorAuth::Client.new(config: config)
19
- end
20
- # Access to phone_number_lookup_client controller.
21
- # @return [PhoneNumberLookup::Client] Returns the client instance.
22
- def phone_number_lookup_client
23
- @phone_number_lookup_client ||= PhoneNumberLookup::Client.new(config: config)
24
- end
25
- # Access to voice_client controller.
26
- # @return [Voice::Client] Returns the client instance.
27
- def voice_client
28
- @voice_client ||= Voice::Client.new(config: config)
29
- end
30
- # Access to web_rtc_client controller.
31
- # @return [WebRtc::Client] Returns the client instance.
32
- def web_rtc_client
33
- @web_rtc_client ||= WebRtc::Client.new(config: config)
34
- end
35
-
36
- def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
37
- backoff_factor: 2,
38
- retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
39
- retry_methods: %i[get put get put],
40
- environment: Environment::PRODUCTION,
41
- base_url: 'https://www.example.com',
42
- messaging_basic_auth_user_name: 'TODO: Replace',
43
- messaging_basic_auth_password: 'TODO: Replace',
44
- multi_factor_auth_basic_auth_user_name: 'TODO: Replace',
45
- multi_factor_auth_basic_auth_password: 'TODO: Replace',
46
- phone_number_lookup_basic_auth_user_name: 'TODO: Replace',
47
- phone_number_lookup_basic_auth_password: 'TODO: Replace',
48
- voice_basic_auth_user_name: 'TODO: Replace',
49
- voice_basic_auth_password: 'TODO: Replace',
50
- web_rtc_basic_auth_user_name: 'TODO: Replace',
51
- web_rtc_basic_auth_password: 'TODO: Replace', config: nil)
52
- @config = if config.nil?
53
- Configuration.new(timeout: timeout, max_retries: max_retries,
54
- retry_interval: retry_interval,
55
- backoff_factor: backoff_factor,
56
- retry_statuses: retry_statuses,
57
- retry_methods: retry_methods,
58
- environment: environment,
59
- base_url: base_url,
60
- messaging_basic_auth_user_name: messaging_basic_auth_user_name,
61
- messaging_basic_auth_password: messaging_basic_auth_password,
62
- multi_factor_auth_basic_auth_user_name: multi_factor_auth_basic_auth_user_name,
63
- multi_factor_auth_basic_auth_password: multi_factor_auth_basic_auth_password,
64
- phone_number_lookup_basic_auth_user_name: phone_number_lookup_basic_auth_user_name,
65
- phone_number_lookup_basic_auth_password: phone_number_lookup_basic_auth_password,
66
- voice_basic_auth_user_name: voice_basic_auth_user_name,
67
- voice_basic_auth_password: voice_basic_auth_password,
68
- web_rtc_basic_auth_user_name: web_rtc_basic_auth_user_name,
69
- web_rtc_basic_auth_password: web_rtc_basic_auth_password)
70
- else
71
- config
72
- end
73
- end
74
- end
75
- end
@@ -1,209 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Bandwidth
7
- # An enum for SDK environments.
8
- class Environment
9
- ENVIRONMENT = [
10
- PRODUCTION = 'production'.freeze,
11
- CUSTOM = 'custom'.freeze
12
- ].freeze
13
- end
14
-
15
- # An enum for API servers.
16
- class Server
17
- SERVER = [
18
- DEFAULT = 'default'.freeze,
19
- MESSAGINGDEFAULT = 'MessagingDefault'.freeze,
20
- MULTIFACTORAUTHDEFAULT = 'MultiFactorAuthDefault'.freeze,
21
- PHONENUMBERLOOKUPDEFAULT = 'PhoneNumberLookupDefault'.freeze,
22
- VOICEDEFAULT = 'VoiceDefault'.freeze,
23
- WEBRTCDEFAULT = 'WebRtcDefault'.freeze
24
- ].freeze
25
- end
26
-
27
- # All configuration including auth info and base URI for the API access
28
- # are configured in this class.
29
- class Configuration
30
- # The attribute readers for properties.
31
- attr_reader :http_client, :timeout, :max_retries, :retry_interval, :backoff_factor,
32
- :retry_statuses, :retry_methods, :environment, :base_url,
33
- :messaging_basic_auth_user_name, :messaging_basic_auth_password,
34
- :multi_factor_auth_basic_auth_user_name, :multi_factor_auth_basic_auth_password,
35
- :phone_number_lookup_basic_auth_user_name, :phone_number_lookup_basic_auth_password,
36
- :voice_basic_auth_user_name, :voice_basic_auth_password,
37
- :web_rtc_basic_auth_user_name, :web_rtc_basic_auth_password
38
-
39
- class << self
40
- attr_reader :environments
41
- end
42
-
43
- def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
44
- backoff_factor: 2,
45
- retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
46
- retry_methods: %i[get put get put],
47
- environment: Environment::PRODUCTION,
48
- base_url: 'https://www.example.com',
49
- messaging_basic_auth_user_name: 'TODO: Replace',
50
- messaging_basic_auth_password: 'TODO: Replace',
51
- multi_factor_auth_basic_auth_user_name: 'TODO: Replace',
52
- multi_factor_auth_basic_auth_password: 'TODO: Replace',
53
- phone_number_lookup_basic_auth_user_name: 'TODO: Replace',
54
- phone_number_lookup_basic_auth_password: 'TODO: Replace',
55
- voice_basic_auth_user_name: 'TODO: Replace',
56
- voice_basic_auth_password: 'TODO: Replace',
57
- web_rtc_basic_auth_user_name: 'TODO: Replace',
58
- web_rtc_basic_auth_password: 'TODO: Replace')
59
- # The value to use for connection timeout
60
- @timeout = timeout
61
-
62
- # The number of times to retry an endpoint call if it fails
63
- @max_retries = max_retries
64
-
65
- # Pause in seconds between retries
66
- @retry_interval = retry_interval
67
-
68
- # The amount to multiply each successive retry's interval amount
69
- # by in order to provide backoff
70
- @backoff_factor = backoff_factor
71
-
72
- # A list of HTTP statuses to retry
73
- @retry_statuses = retry_statuses
74
-
75
- # A list of HTTP methods to retry
76
- @retry_methods = retry_methods
77
-
78
- # Current API environment
79
- @environment = String(environment)
80
-
81
- # baseUrl value
82
- @base_url = base_url
83
-
84
- # The username to use with basic authentication
85
- @messaging_basic_auth_user_name = messaging_basic_auth_user_name
86
-
87
- # The password to use with basic authentication
88
- @messaging_basic_auth_password = messaging_basic_auth_password
89
-
90
- # The username to use with basic authentication
91
- @multi_factor_auth_basic_auth_user_name = multi_factor_auth_basic_auth_user_name
92
-
93
- # The password to use with basic authentication
94
- @multi_factor_auth_basic_auth_password = multi_factor_auth_basic_auth_password
95
-
96
- # The username to use with basic authentication
97
- @phone_number_lookup_basic_auth_user_name = phone_number_lookup_basic_auth_user_name
98
-
99
- # The password to use with basic authentication
100
- @phone_number_lookup_basic_auth_password = phone_number_lookup_basic_auth_password
101
-
102
- # The username to use with basic authentication
103
- @voice_basic_auth_user_name = voice_basic_auth_user_name
104
-
105
- # The password to use with basic authentication
106
- @voice_basic_auth_password = voice_basic_auth_password
107
-
108
- # The username to use with basic authentication
109
- @web_rtc_basic_auth_user_name = web_rtc_basic_auth_user_name
110
-
111
- # The password to use with basic authentication
112
- @web_rtc_basic_auth_password = web_rtc_basic_auth_password
113
-
114
- # The Http Client to use for making requests.
115
- @http_client = create_http_client
116
- end
117
-
118
- def clone_with(timeout: nil, max_retries: nil, retry_interval: nil,
119
- backoff_factor: nil, retry_statuses: nil, retry_methods: nil,
120
- environment: nil, base_url: nil,
121
- messaging_basic_auth_user_name: nil,
122
- messaging_basic_auth_password: nil,
123
- multi_factor_auth_basic_auth_user_name: nil,
124
- multi_factor_auth_basic_auth_password: nil,
125
- phone_number_lookup_basic_auth_user_name: nil,
126
- phone_number_lookup_basic_auth_password: nil,
127
- voice_basic_auth_user_name: nil,
128
- voice_basic_auth_password: nil,
129
- web_rtc_basic_auth_user_name: nil,
130
- web_rtc_basic_auth_password: nil)
131
- timeout ||= self.timeout
132
- max_retries ||= self.max_retries
133
- retry_interval ||= self.retry_interval
134
- backoff_factor ||= self.backoff_factor
135
- retry_statuses ||= self.retry_statuses
136
- retry_methods ||= self.retry_methods
137
- environment ||= self.environment
138
- base_url ||= self.base_url
139
- messaging_basic_auth_user_name ||= self.messaging_basic_auth_user_name
140
- messaging_basic_auth_password ||= self.messaging_basic_auth_password
141
- multi_factor_auth_basic_auth_user_name ||= self.multi_factor_auth_basic_auth_user_name
142
- multi_factor_auth_basic_auth_password ||= self.multi_factor_auth_basic_auth_password
143
- phone_number_lookup_basic_auth_user_name ||= self.phone_number_lookup_basic_auth_user_name
144
- phone_number_lookup_basic_auth_password ||= self.phone_number_lookup_basic_auth_password
145
- voice_basic_auth_user_name ||= self.voice_basic_auth_user_name
146
- voice_basic_auth_password ||= self.voice_basic_auth_password
147
- web_rtc_basic_auth_user_name ||= self.web_rtc_basic_auth_user_name
148
- web_rtc_basic_auth_password ||= self.web_rtc_basic_auth_password
149
-
150
- Configuration.new(
151
- timeout: timeout, max_retries: max_retries,
152
- retry_interval: retry_interval, backoff_factor: backoff_factor,
153
- retry_statuses: retry_statuses, retry_methods: retry_methods,
154
- environment: environment, base_url: base_url,
155
- messaging_basic_auth_user_name: messaging_basic_auth_user_name,
156
- messaging_basic_auth_password: messaging_basic_auth_password,
157
- multi_factor_auth_basic_auth_user_name: multi_factor_auth_basic_auth_user_name,
158
- multi_factor_auth_basic_auth_password: multi_factor_auth_basic_auth_password,
159
- phone_number_lookup_basic_auth_user_name: phone_number_lookup_basic_auth_user_name,
160
- phone_number_lookup_basic_auth_password: phone_number_lookup_basic_auth_password,
161
- voice_basic_auth_user_name: voice_basic_auth_user_name,
162
- voice_basic_auth_password: voice_basic_auth_password,
163
- web_rtc_basic_auth_user_name: web_rtc_basic_auth_user_name,
164
- web_rtc_basic_auth_password: web_rtc_basic_auth_password
165
- )
166
- end
167
-
168
- def create_http_client
169
- FaradayClient.new(timeout: timeout, max_retries: max_retries,
170
- retry_interval: retry_interval,
171
- backoff_factor: backoff_factor,
172
- retry_statuses: retry_statuses,
173
- retry_methods: retry_methods)
174
- end
175
-
176
- # All the environments the SDK can run in.
177
- ENVIRONMENTS = {
178
- Environment::PRODUCTION => {
179
- Server::DEFAULT => 'api.bandwidth.com',
180
- Server::MESSAGINGDEFAULT => 'https://messaging.bandwidth.com/api/v2',
181
- Server::MULTIFACTORAUTHDEFAULT => 'https://mfa.bandwidth.com/api/v1',
182
- Server::PHONENUMBERLOOKUPDEFAULT => 'https://numbers.bandwidth.com/api/v1',
183
- Server::VOICEDEFAULT => 'https://voice.bandwidth.com',
184
- Server::WEBRTCDEFAULT => 'https://api.webrtc.bandwidth.com/v1'
185
- },
186
- Environment::CUSTOM => {
187
- Server::DEFAULT => '{base_url}',
188
- Server::MESSAGINGDEFAULT => '{base_url}',
189
- Server::MULTIFACTORAUTHDEFAULT => '{base_url}',
190
- Server::PHONENUMBERLOOKUPDEFAULT => '{base_url}',
191
- Server::VOICEDEFAULT => '{base_url}',
192
- Server::WEBRTCDEFAULT => '{base_url}'
193
- }
194
- }.freeze
195
-
196
- # Generates the appropriate base URI for the environment and the server.
197
- # @param [Configuration::Server] The server enum for which the base URI is
198
- # required.
199
- # @return [String] The base URI.
200
- def get_base_uri(server = Server::DEFAULT)
201
- parameters = {
202
- 'base_url' => { 'value' => base_url, 'encode' => false }
203
- }
204
- APIHelper.append_url_with_template_parameters(
205
- ENVIRONMENTS[environment][server], parameters
206
- )
207
- end
208
- end
209
- end
@@ -1,20 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Bandwidth
7
- # Class for exceptions when there is a network error, status code error, etc.
8
- class APIException < StandardError
9
- attr_reader :response, :response_code
10
-
11
- # The constructor.
12
- # @param [String] The reason for raising an exception.
13
- # @param [HttpResponse] The HttpReponse of the API call.
14
- def initialize(reason, response)
15
- super(reason)
16
- @response = response
17
- @response_code = response.status_code
18
- end
19
- end
20
- end
@@ -1,38 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Bandwidth
7
- # Http response received.
8
- class ApiResponse
9
- attr_reader(:status_code, :reason_phrase, :headers, :raw_body, :request,
10
- :data, :errors)
11
-
12
- # The constructor
13
- # @param [HttpResponse] The original, raw response from the api.
14
- # @param [Object] The data field specified for the response.
15
- # @param [Array<String>] Any errors returned by the server.
16
- def initialize(http_response,
17
- data: nil,
18
- errors: nil)
19
- @status_code = http_response.status_code
20
- @reason_phrase = http_response.reason_phrase
21
- @headers = http_response.headers
22
- @raw_body = http_response.raw_body
23
- @request = http_response.request
24
- @data = data
25
- @errors = errors
26
- end
27
-
28
- # returns true if status_code is between 200-300
29
- def success?
30
- status_code >= 200 && status_code < 300
31
- end
32
-
33
- # returns true if status_code is between 400-600
34
- def error?
35
- status_code >= 400 && status_code < 600
36
- end
37
- end
38
- end
@@ -1,22 +0,0 @@
1
- # bandwidth
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- require 'base64'
7
-
8
- module Bandwidth
9
- # Utility class for basic authorization.
10
- class MessagingBasicAuth
11
- # Add basic authentication to the request.
12
- # @param [HttpRequest] The HttpRequest object to which authentication will
13
- # be added.
14
- def self.apply(config, http_request)
15
- username = config.messaging_basic_auth_user_name
16
- password = config.messaging_basic_auth_password
17
- value = Base64.strict_encode64("#{username}:#{password}")
18
- header_value = "Basic #{value}"
19
- http_request.headers['Authorization'] = header_value
20
- end
21
- end
22
- end