bandwidth-sdk 10.5.0 → 11.0.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (529) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -0
  3. data/Gemfile.lock +77 -0
  4. data/README.md +198 -140
  5. data/Rakefile +22 -0
  6. data/bandwidth-sdk.gemspec +40 -0
  7. data/bandwidth.yml +5544 -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 +40 -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 +366 -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 +64 -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 +97 -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 +100 -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 +547 -255
  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/custom_param.rb +0 -17
  448. data/lib/bandwidth/voice_lib/bxml/verbs/forward.rb +0 -18
  449. data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +0 -49
  450. data/lib/bandwidth/voice_lib/bxml/verbs/hangup.rb +0 -14
  451. data/lib/bandwidth/voice_lib/bxml/verbs/pause.rb +0 -15
  452. data/lib/bandwidth/voice_lib/bxml/verbs/pause_recording.rb +0 -14
  453. data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +0 -24
  454. data/lib/bandwidth/voice_lib/bxml/verbs/play_audio.rb +0 -17
  455. data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +0 -34
  456. data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +0 -24
  457. data/lib/bandwidth/voice_lib/bxml/verbs/resume_recording.rb +0 -14
  458. data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +0 -16
  459. data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +0 -16
  460. data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +0 -25
  461. data/lib/bandwidth/voice_lib/bxml/verbs/speak_sentence.rb +0 -18
  462. data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +0 -20
  463. data/lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb +0 -26
  464. data/lib/bandwidth/voice_lib/bxml/verbs/start_stream.rb +0 -41
  465. data/lib/bandwidth/voice_lib/bxml/verbs/start_transcription.rb +0 -42
  466. data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +0 -14
  467. data/lib/bandwidth/voice_lib/bxml/verbs/stop_recording.rb +0 -14
  468. data/lib/bandwidth/voice_lib/bxml/verbs/stop_stream.rb +0 -16
  469. data/lib/bandwidth/voice_lib/bxml/verbs/stop_transcription.rb +0 -16
  470. data/lib/bandwidth/voice_lib/bxml/verbs/stream_param.rb +0 -17
  471. data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +0 -13
  472. data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +0 -48
  473. data/lib/bandwidth/voice_lib/bxml/verbs/xml_verb.rb +0 -26
  474. data/lib/bandwidth/voice_lib/voice/client.rb +0 -60
  475. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +0 -1820
  476. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +0 -47
  477. data/lib/bandwidth/voice_lib/voice/exceptions/api_error_exception.rb +0 -42
  478. data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +0 -17
  479. data/lib/bandwidth/voice_lib/voice/models/answer_method_enum.rb +0 -17
  480. data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +0 -343
  481. data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +0 -250
  482. data/lib/bandwidth/voice_lib/voice/models/call_state.rb +0 -301
  483. data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +0 -17
  484. data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +0 -211
  485. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +0 -17
  486. data/lib/bandwidth/voice_lib/voice/models/conference_member_state.rb +0 -103
  487. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +0 -173
  488. data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +0 -153
  489. data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +0 -236
  490. data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +0 -266
  491. data/lib/bandwidth/voice_lib/voice/models/direction_enum.rb +0 -17
  492. data/lib/bandwidth/voice_lib/voice/models/disconnect_method_enum.rb +0 -17
  493. data/lib/bandwidth/voice_lib/voice/models/diversion.rb +0 -80
  494. data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +0 -17
  495. data/lib/bandwidth/voice_lib/voice/models/file_format_enum.rb +0 -17
  496. data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +0 -231
  497. data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +0 -20
  498. data/lib/bandwidth/voice_lib/voice/models/modify_call_recording_request.rb +0 -48
  499. data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +0 -156
  500. data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +0 -144
  501. data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +0 -17
  502. data/lib/bandwidth/voice_lib/voice/models/redirect_method_enum.rb +0 -17
  503. data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +0 -20
  504. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +0 -17
  505. data/lib/bandwidth/voice_lib/voice/models/status_enum.rb +0 -17
  506. data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +0 -120
  507. data/lib/bandwidth/voice_lib/voice/models/transcript.rb +0 -60
  508. data/lib/bandwidth/voice_lib/voice/models/transcription.rb +0 -80
  509. data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +0 -89
  510. data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +0 -59
  511. data/lib/bandwidth/voice_lib/voice.rb +0 -48
  512. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +0 -18
  513. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +0 -60
  514. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +0 -703
  515. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +0 -47
  516. data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +0 -37
  517. data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +0 -62
  518. data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +0 -17
  519. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +0 -115
  520. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +0 -48
  521. data/lib/bandwidth/web_rtc_lib/web_rtc/models/publish_permission_enum.rb +0 -17
  522. data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +0 -60
  523. data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +0 -71
  524. data/lib/bandwidth/web_rtc_lib/web_rtc.rb +0 -22
  525. data/lib/bandwidth.rb +0 -72
  526. data/test/controllers/controller_test_base.rb +0 -21
  527. data/test/http_response_catcher.rb +0 -19
  528. data/test/integration/test_integration.rb +0 -851
  529. data/test/test_helper.rb +0 -94
@@ -0,0 +1,651 @@
1
+ =begin
2
+ #Bandwidth
3
+
4
+ #Bandwidth's Communication APIs
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: letstalk@bandwidth.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Bandwidth
17
+ class CreateCall
18
+ # The destination to call (must be an E.164 formatted number (e.g. `+15555551212`) or a SIP URI (e.g. `sip:user@server.com`)).
19
+ attr_accessor :to
20
+
21
+ # A Bandwidth phone number on your account the call should come from (must be in E.164 format, like `+15555551212`, or be one of the following strings: `Restricted`, `Anonymous`, `Private`, or `Unavailable`).
22
+ attr_accessor :from
23
+
24
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE when calling a SIP URI. Each value must end with an 'encoding' parameter as described in <a href='https://tools.ietf.org/html/rfc7433'>RFC 7433</a>. Only 'jwt' and 'base64' encodings are allowed. The entire value cannot exceed 350 characters, including parameters and separators.
25
+ attr_accessor :uui
26
+
27
+ # The id of the application associated with the `from` number.
28
+ attr_accessor :application_id
29
+
30
+ # The full URL to send the <a href='/docs/voice/webhooks/answer'>Answer</a> event to when the called party answers. This endpoint should return the first <a href='/docs/voice/bxml'>BXML document</a> to be executed in the call. Must use `https` if specifying `username` and `password`
31
+ attr_accessor :answer_url
32
+
33
+ attr_accessor :answer_method
34
+
35
+ # Basic auth username.
36
+ attr_accessor :username
37
+
38
+ # Basic auth password.
39
+ attr_accessor :password
40
+
41
+ # A fallback url which, if provided, will be used to retry the `answer` webhook delivery in case `answerUrl` fails to respond Must use `https` if specifying `fallbackUsername` and `fallbackPassword`
42
+ attr_accessor :answer_fallback_url
43
+
44
+ attr_accessor :answer_fallback_method
45
+
46
+ # Basic auth username.
47
+ attr_accessor :fallback_username
48
+
49
+ # Basic auth password.
50
+ attr_accessor :fallback_password
51
+
52
+ # The URL to send the <a href='/docs/voice/webhooks/disconnect'>Disconnect</a> event to when the call ends. This event does not expect a BXML response.
53
+ attr_accessor :disconnect_url
54
+
55
+ attr_accessor :disconnect_method
56
+
57
+ # The timeout (in seconds) for the callee to answer the call after it starts ringing. If the call does not start ringing within 30s, the call will be cancelled regardless of this value. Can be any numeric value (including decimals) between 1 and 300.
58
+ attr_accessor :call_timeout
59
+
60
+ # This is the timeout (in seconds) to use when delivering webhooks for the call. Can be any numeric value (including decimals) between 1 and 25.
61
+ attr_accessor :callback_timeout
62
+
63
+ attr_accessor :machine_detection
64
+
65
+ # The priority of this call over other calls from your account. For example, if during a call your application needs to place a new call and bridge it with the current call, you might want to create the call with priority 1 so that it will be the next call picked off your queue, ahead of other less time sensitive calls. A lower value means higher priority, so a priority 1 call takes precedence over a priority 2 call.
66
+ attr_accessor :priority
67
+
68
+ # A custom string that will be sent with all webhooks for this call unless overwritten by a future <a href='/docs/voice/bxml/tag'>`<Tag>`</a> verb or `tag` attribute on another verb, or cleared. May be cleared by setting `tag=\"\"` Max length 256 characters.
69
+ attr_accessor :tag
70
+
71
+ class EnumAttributeValidator
72
+ attr_reader :datatype
73
+ attr_reader :allowable_values
74
+
75
+ def initialize(datatype, allowable_values)
76
+ @allowable_values = allowable_values.map do |value|
77
+ case datatype.to_s
78
+ when /Integer/i
79
+ value.to_i
80
+ when /Float/i
81
+ value.to_f
82
+ else
83
+ value
84
+ end
85
+ end
86
+ end
87
+
88
+ def valid?(value)
89
+ !value || allowable_values.include?(value)
90
+ end
91
+ end
92
+
93
+ # Attribute mapping from ruby-style variable name to JSON key.
94
+ def self.attribute_map
95
+ {
96
+ :'to' => :'to',
97
+ :'from' => :'from',
98
+ :'uui' => :'uui',
99
+ :'application_id' => :'applicationId',
100
+ :'answer_url' => :'answerUrl',
101
+ :'answer_method' => :'answerMethod',
102
+ :'username' => :'username',
103
+ :'password' => :'password',
104
+ :'answer_fallback_url' => :'answerFallbackUrl',
105
+ :'answer_fallback_method' => :'answerFallbackMethod',
106
+ :'fallback_username' => :'fallbackUsername',
107
+ :'fallback_password' => :'fallbackPassword',
108
+ :'disconnect_url' => :'disconnectUrl',
109
+ :'disconnect_method' => :'disconnectMethod',
110
+ :'call_timeout' => :'callTimeout',
111
+ :'callback_timeout' => :'callbackTimeout',
112
+ :'machine_detection' => :'machineDetection',
113
+ :'priority' => :'priority',
114
+ :'tag' => :'tag'
115
+ }
116
+ end
117
+
118
+ # Returns all the JSON keys this model knows about
119
+ def self.acceptable_attributes
120
+ attribute_map.values
121
+ end
122
+
123
+ # Attribute type mapping.
124
+ def self.openapi_types
125
+ {
126
+ :'to' => :'String',
127
+ :'from' => :'String',
128
+ :'uui' => :'String',
129
+ :'application_id' => :'String',
130
+ :'answer_url' => :'String',
131
+ :'answer_method' => :'CallbackMethodEnum',
132
+ :'username' => :'String',
133
+ :'password' => :'String',
134
+ :'answer_fallback_url' => :'String',
135
+ :'answer_fallback_method' => :'CallbackMethodEnum',
136
+ :'fallback_username' => :'String',
137
+ :'fallback_password' => :'String',
138
+ :'disconnect_url' => :'String',
139
+ :'disconnect_method' => :'CallbackMethodEnum',
140
+ :'call_timeout' => :'Float',
141
+ :'callback_timeout' => :'Float',
142
+ :'machine_detection' => :'MachineDetectionConfiguration',
143
+ :'priority' => :'Integer',
144
+ :'tag' => :'String'
145
+ }
146
+ end
147
+
148
+ # List of attributes with nullable: true
149
+ def self.openapi_nullable
150
+ Set.new([
151
+ :'uui',
152
+ :'answer_method',
153
+ :'username',
154
+ :'password',
155
+ :'answer_fallback_url',
156
+ :'answer_fallback_method',
157
+ :'fallback_username',
158
+ :'fallback_password',
159
+ :'disconnect_url',
160
+ :'disconnect_method',
161
+ :'call_timeout',
162
+ :'callback_timeout',
163
+ :'priority',
164
+ :'tag'
165
+ ])
166
+ end
167
+
168
+ # Initializes the object
169
+ # @param [Hash] attributes Model attributes in the form of hash
170
+ def initialize(attributes = {})
171
+ if (!attributes.is_a?(Hash))
172
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Bandwidth::CreateCall` initialize method"
173
+ end
174
+
175
+ # check to see if the attribute exists and convert string to symbol for hash key
176
+ attributes = attributes.each_with_object({}) { |(k, v), h|
177
+ if (!self.class.attribute_map.key?(k.to_sym))
178
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Bandwidth::CreateCall`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
179
+ end
180
+ h[k.to_sym] = v
181
+ }
182
+
183
+ if attributes.key?(:'to')
184
+ self.to = attributes[:'to']
185
+ end
186
+
187
+ if attributes.key?(:'from')
188
+ self.from = attributes[:'from']
189
+ end
190
+
191
+ if attributes.key?(:'uui')
192
+ self.uui = attributes[:'uui']
193
+ end
194
+
195
+ if attributes.key?(:'application_id')
196
+ self.application_id = attributes[:'application_id']
197
+ end
198
+
199
+ if attributes.key?(:'answer_url')
200
+ self.answer_url = attributes[:'answer_url']
201
+ end
202
+
203
+ if attributes.key?(:'answer_method')
204
+ self.answer_method = attributes[:'answer_method']
205
+ else
206
+ self.answer_method = 'POST'
207
+ end
208
+
209
+ if attributes.key?(:'username')
210
+ self.username = attributes[:'username']
211
+ end
212
+
213
+ if attributes.key?(:'password')
214
+ self.password = attributes[:'password']
215
+ end
216
+
217
+ if attributes.key?(:'answer_fallback_url')
218
+ self.answer_fallback_url = attributes[:'answer_fallback_url']
219
+ end
220
+
221
+ if attributes.key?(:'answer_fallback_method')
222
+ self.answer_fallback_method = attributes[:'answer_fallback_method']
223
+ else
224
+ self.answer_fallback_method = 'POST'
225
+ end
226
+
227
+ if attributes.key?(:'fallback_username')
228
+ self.fallback_username = attributes[:'fallback_username']
229
+ end
230
+
231
+ if attributes.key?(:'fallback_password')
232
+ self.fallback_password = attributes[:'fallback_password']
233
+ end
234
+
235
+ if attributes.key?(:'disconnect_url')
236
+ self.disconnect_url = attributes[:'disconnect_url']
237
+ end
238
+
239
+ if attributes.key?(:'disconnect_method')
240
+ self.disconnect_method = attributes[:'disconnect_method']
241
+ else
242
+ self.disconnect_method = 'POST'
243
+ end
244
+
245
+ if attributes.key?(:'call_timeout')
246
+ self.call_timeout = attributes[:'call_timeout']
247
+ else
248
+ self.call_timeout = 30
249
+ end
250
+
251
+ if attributes.key?(:'callback_timeout')
252
+ self.callback_timeout = attributes[:'callback_timeout']
253
+ else
254
+ self.callback_timeout = 15
255
+ end
256
+
257
+ if attributes.key?(:'machine_detection')
258
+ self.machine_detection = attributes[:'machine_detection']
259
+ end
260
+
261
+ if attributes.key?(:'priority')
262
+ self.priority = attributes[:'priority']
263
+ else
264
+ self.priority = 5
265
+ end
266
+
267
+ if attributes.key?(:'tag')
268
+ self.tag = attributes[:'tag']
269
+ end
270
+ end
271
+
272
+ # Show invalid properties with the reasons. Usually used together with valid?
273
+ # @return Array for valid properties with the reasons
274
+ def list_invalid_properties
275
+ invalid_properties = Array.new
276
+ if @to.nil?
277
+ invalid_properties.push('invalid value for "to", to cannot be nil.')
278
+ end
279
+
280
+ if @from.nil?
281
+ invalid_properties.push('invalid value for "from", from cannot be nil.')
282
+ end
283
+
284
+ if @application_id.nil?
285
+ invalid_properties.push('invalid value for "application_id", application_id cannot be nil.')
286
+ end
287
+
288
+ if @answer_url.nil?
289
+ invalid_properties.push('invalid value for "answer_url", answer_url cannot be nil.')
290
+ end
291
+
292
+ if @answer_url.to_s.length > 2048
293
+ invalid_properties.push('invalid value for "answer_url", the character length must be smaller than or equal to 2048.')
294
+ end
295
+
296
+ if !@username.nil? && @username.to_s.length > 1024
297
+ invalid_properties.push('invalid value for "username", the character length must be smaller than or equal to 1024.')
298
+ end
299
+
300
+ if !@password.nil? && @password.to_s.length > 1024
301
+ invalid_properties.push('invalid value for "password", the character length must be smaller than or equal to 1024.')
302
+ end
303
+
304
+ if !@answer_fallback_url.nil? && @answer_fallback_url.to_s.length > 2048
305
+ invalid_properties.push('invalid value for "answer_fallback_url", the character length must be smaller than or equal to 2048.')
306
+ end
307
+
308
+ if !@fallback_username.nil? && @fallback_username.to_s.length > 1024
309
+ invalid_properties.push('invalid value for "fallback_username", the character length must be smaller than or equal to 1024.')
310
+ end
311
+
312
+ if !@fallback_password.nil? && @fallback_password.to_s.length > 1024
313
+ invalid_properties.push('invalid value for "fallback_password", the character length must be smaller than or equal to 1024.')
314
+ end
315
+
316
+ if !@disconnect_url.nil? && @disconnect_url.to_s.length > 2048
317
+ invalid_properties.push('invalid value for "disconnect_url", the character length must be smaller than or equal to 2048.')
318
+ end
319
+
320
+ if !@call_timeout.nil? && @call_timeout > 300
321
+ invalid_properties.push('invalid value for "call_timeout", must be smaller than or equal to 300.')
322
+ end
323
+
324
+ if !@call_timeout.nil? && @call_timeout < 1
325
+ invalid_properties.push('invalid value for "call_timeout", must be greater than or equal to 1.')
326
+ end
327
+
328
+ if !@callback_timeout.nil? && @callback_timeout > 25
329
+ invalid_properties.push('invalid value for "callback_timeout", must be smaller than or equal to 25.')
330
+ end
331
+
332
+ if !@callback_timeout.nil? && @callback_timeout < 1
333
+ invalid_properties.push('invalid value for "callback_timeout", must be greater than or equal to 1.')
334
+ end
335
+
336
+ if !@priority.nil? && @priority > 5
337
+ invalid_properties.push('invalid value for "priority", must be smaller than or equal to 5.')
338
+ end
339
+
340
+ if !@priority.nil? && @priority < 1
341
+ invalid_properties.push('invalid value for "priority", must be greater than or equal to 1.')
342
+ end
343
+
344
+ invalid_properties
345
+ end
346
+
347
+ # Check to see if the all the properties in the model are valid
348
+ # @return true if the model is valid
349
+ def valid?
350
+ return false if @to.nil?
351
+ return false if @from.nil?
352
+ return false if @application_id.nil?
353
+ return false if @answer_url.nil?
354
+ return false if @answer_url.to_s.length > 2048
355
+ return false if !@username.nil? && @username.to_s.length > 1024
356
+ return false if !@password.nil? && @password.to_s.length > 1024
357
+ return false if !@answer_fallback_url.nil? && @answer_fallback_url.to_s.length > 2048
358
+ return false if !@fallback_username.nil? && @fallback_username.to_s.length > 1024
359
+ return false if !@fallback_password.nil? && @fallback_password.to_s.length > 1024
360
+ return false if !@disconnect_url.nil? && @disconnect_url.to_s.length > 2048
361
+ return false if !@call_timeout.nil? && @call_timeout > 300
362
+ return false if !@call_timeout.nil? && @call_timeout < 1
363
+ return false if !@callback_timeout.nil? && @callback_timeout > 25
364
+ return false if !@callback_timeout.nil? && @callback_timeout < 1
365
+ return false if !@priority.nil? && @priority > 5
366
+ return false if !@priority.nil? && @priority < 1
367
+ true
368
+ end
369
+
370
+ # Custom attribute writer method with validation
371
+ # @param [Object] answer_url Value to be assigned
372
+ def answer_url=(answer_url)
373
+ if answer_url.nil?
374
+ fail ArgumentError, 'answer_url cannot be nil'
375
+ end
376
+
377
+ if answer_url.to_s.length > 2048
378
+ fail ArgumentError, 'invalid value for "answer_url", the character length must be smaller than or equal to 2048.'
379
+ end
380
+
381
+ @answer_url = answer_url
382
+ end
383
+
384
+ # Custom attribute writer method with validation
385
+ # @param [Object] username Value to be assigned
386
+ def username=(username)
387
+ if !username.nil? && username.to_s.length > 1024
388
+ fail ArgumentError, 'invalid value for "username", the character length must be smaller than or equal to 1024.'
389
+ end
390
+
391
+ @username = username
392
+ end
393
+
394
+ # Custom attribute writer method with validation
395
+ # @param [Object] password Value to be assigned
396
+ def password=(password)
397
+ if !password.nil? && password.to_s.length > 1024
398
+ fail ArgumentError, 'invalid value for "password", the character length must be smaller than or equal to 1024.'
399
+ end
400
+
401
+ @password = password
402
+ end
403
+
404
+ # Custom attribute writer method with validation
405
+ # @param [Object] answer_fallback_url Value to be assigned
406
+ def answer_fallback_url=(answer_fallback_url)
407
+ if !answer_fallback_url.nil? && answer_fallback_url.to_s.length > 2048
408
+ fail ArgumentError, 'invalid value for "answer_fallback_url", the character length must be smaller than or equal to 2048.'
409
+ end
410
+
411
+ @answer_fallback_url = answer_fallback_url
412
+ end
413
+
414
+ # Custom attribute writer method with validation
415
+ # @param [Object] fallback_username Value to be assigned
416
+ def fallback_username=(fallback_username)
417
+ if !fallback_username.nil? && fallback_username.to_s.length > 1024
418
+ fail ArgumentError, 'invalid value for "fallback_username", the character length must be smaller than or equal to 1024.'
419
+ end
420
+
421
+ @fallback_username = fallback_username
422
+ end
423
+
424
+ # Custom attribute writer method with validation
425
+ # @param [Object] fallback_password Value to be assigned
426
+ def fallback_password=(fallback_password)
427
+ if !fallback_password.nil? && fallback_password.to_s.length > 1024
428
+ fail ArgumentError, 'invalid value for "fallback_password", the character length must be smaller than or equal to 1024.'
429
+ end
430
+
431
+ @fallback_password = fallback_password
432
+ end
433
+
434
+ # Custom attribute writer method with validation
435
+ # @param [Object] disconnect_url Value to be assigned
436
+ def disconnect_url=(disconnect_url)
437
+ if !disconnect_url.nil? && disconnect_url.to_s.length > 2048
438
+ fail ArgumentError, 'invalid value for "disconnect_url", the character length must be smaller than or equal to 2048.'
439
+ end
440
+
441
+ @disconnect_url = disconnect_url
442
+ end
443
+
444
+ # Custom attribute writer method with validation
445
+ # @param [Object] call_timeout Value to be assigned
446
+ def call_timeout=(call_timeout)
447
+ if !call_timeout.nil? && call_timeout > 300
448
+ fail ArgumentError, 'invalid value for "call_timeout", must be smaller than or equal to 300.'
449
+ end
450
+
451
+ if !call_timeout.nil? && call_timeout < 1
452
+ fail ArgumentError, 'invalid value for "call_timeout", must be greater than or equal to 1.'
453
+ end
454
+
455
+ @call_timeout = call_timeout
456
+ end
457
+
458
+ # Custom attribute writer method with validation
459
+ # @param [Object] callback_timeout Value to be assigned
460
+ def callback_timeout=(callback_timeout)
461
+ if !callback_timeout.nil? && callback_timeout > 25
462
+ fail ArgumentError, 'invalid value for "callback_timeout", must be smaller than or equal to 25.'
463
+ end
464
+
465
+ if !callback_timeout.nil? && callback_timeout < 1
466
+ fail ArgumentError, 'invalid value for "callback_timeout", must be greater than or equal to 1.'
467
+ end
468
+
469
+ @callback_timeout = callback_timeout
470
+ end
471
+
472
+ # Custom attribute writer method with validation
473
+ # @param [Object] priority Value to be assigned
474
+ def priority=(priority)
475
+ if !priority.nil? && priority > 5
476
+ fail ArgumentError, 'invalid value for "priority", must be smaller than or equal to 5.'
477
+ end
478
+
479
+ if !priority.nil? && priority < 1
480
+ fail ArgumentError, 'invalid value for "priority", must be greater than or equal to 1.'
481
+ end
482
+
483
+ @priority = priority
484
+ end
485
+
486
+ # Custom attribute writer method with validation
487
+ # @param [Object] tag Value to be assigned
488
+ def tag=(tag)
489
+ @tag = tag
490
+ end
491
+
492
+ # Checks equality by comparing each attribute.
493
+ # @param [Object] Object to be compared
494
+ def ==(o)
495
+ return true if self.equal?(o)
496
+ self.class == o.class &&
497
+ to == o.to &&
498
+ from == o.from &&
499
+ uui == o.uui &&
500
+ application_id == o.application_id &&
501
+ answer_url == o.answer_url &&
502
+ answer_method == o.answer_method &&
503
+ username == o.username &&
504
+ password == o.password &&
505
+ answer_fallback_url == o.answer_fallback_url &&
506
+ answer_fallback_method == o.answer_fallback_method &&
507
+ fallback_username == o.fallback_username &&
508
+ fallback_password == o.fallback_password &&
509
+ disconnect_url == o.disconnect_url &&
510
+ disconnect_method == o.disconnect_method &&
511
+ call_timeout == o.call_timeout &&
512
+ callback_timeout == o.callback_timeout &&
513
+ machine_detection == o.machine_detection &&
514
+ priority == o.priority &&
515
+ tag == o.tag
516
+ end
517
+
518
+ # @see the `==` method
519
+ # @param [Object] Object to be compared
520
+ def eql?(o)
521
+ self == o
522
+ end
523
+
524
+ # Calculates hash code according to all attributes.
525
+ # @return [Integer] Hash code
526
+ def hash
527
+ [to, from, uui, application_id, answer_url, answer_method, username, password, answer_fallback_url, answer_fallback_method, fallback_username, fallback_password, disconnect_url, disconnect_method, call_timeout, callback_timeout, machine_detection, priority, tag].hash
528
+ end
529
+
530
+ # Builds the object from hash
531
+ # @param [Hash] attributes Model attributes in the form of hash
532
+ # @return [Object] Returns the model itself
533
+ def self.build_from_hash(attributes)
534
+ new.build_from_hash(attributes)
535
+ end
536
+
537
+ # Builds the object from hash
538
+ # @param [Hash] attributes Model attributes in the form of hash
539
+ # @return [Object] Returns the model itself
540
+ def build_from_hash(attributes)
541
+ return nil unless attributes.is_a?(Hash)
542
+ attributes = attributes.transform_keys(&:to_sym)
543
+ self.class.openapi_types.each_pair do |key, type|
544
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
545
+ self.send("#{key}=", nil)
546
+ elsif type =~ /\AArray<(.*)>/i
547
+ # check to ensure the input is an array given that the attribute
548
+ # is documented as an array but the input is not
549
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
550
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
551
+ end
552
+ elsif !attributes[self.class.attribute_map[key]].nil?
553
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
554
+ end
555
+ end
556
+
557
+ self
558
+ end
559
+
560
+ # Deserializes the data based on type
561
+ # @param string type Data type
562
+ # @param string value Value to be deserialized
563
+ # @return [Object] Deserialized data
564
+ def _deserialize(type, value)
565
+ case type.to_sym
566
+ when :Time
567
+ Time.parse(value)
568
+ when :Date
569
+ Date.parse(value)
570
+ when :String
571
+ value.to_s
572
+ when :Integer
573
+ value.to_i
574
+ when :Float
575
+ value.to_f
576
+ when :Boolean
577
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
578
+ true
579
+ else
580
+ false
581
+ end
582
+ when :Object
583
+ # generic object (usually a Hash), return directly
584
+ value
585
+ when /\AArray<(?<inner_type>.+)>\z/
586
+ inner_type = Regexp.last_match[:inner_type]
587
+ value.map { |v| _deserialize(inner_type, v) }
588
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
589
+ k_type = Regexp.last_match[:k_type]
590
+ v_type = Regexp.last_match[:v_type]
591
+ {}.tap do |hash|
592
+ value.each do |k, v|
593
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
594
+ end
595
+ end
596
+ else # model
597
+ # models (e.g. Pet) or oneOf
598
+ klass = Bandwidth.const_get(type)
599
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
600
+ end
601
+ end
602
+
603
+ # Returns the string representation of the object
604
+ # @return [String] String presentation of the object
605
+ def to_s
606
+ to_hash.to_s
607
+ end
608
+
609
+ # to_body is an alias to to_hash (backward compatibility)
610
+ # @return [Hash] Returns the object in the form of hash
611
+ def to_body
612
+ to_hash
613
+ end
614
+
615
+ # Returns the object in the form of hash
616
+ # @return [Hash] Returns the object in the form of hash
617
+ def to_hash
618
+ hash = {}
619
+ self.class.attribute_map.each_pair do |attr, param|
620
+ value = self.send(attr)
621
+ if value.nil?
622
+ is_nullable = self.class.openapi_nullable.include?(attr)
623
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
624
+ end
625
+
626
+ hash[param] = _to_hash(value)
627
+ end
628
+ hash
629
+ end
630
+
631
+ # Outputs non-array value in the form of hash
632
+ # For object, use to_hash. Otherwise, just return the value
633
+ # @param [Object] value Any valid value
634
+ # @return [Hash] Returns the value in the form of hash
635
+ def _to_hash(value)
636
+ if value.is_a?(Array)
637
+ value.compact.map { |v| _to_hash(v) }
638
+ elsif value.is_a?(Hash)
639
+ {}.tap do |hash|
640
+ value.each { |k, v| hash[k] = _to_hash(v) }
641
+ end
642
+ elsif value.respond_to? :to_hash
643
+ value.to_hash
644
+ else
645
+ value
646
+ end
647
+ end
648
+
649
+ end
650
+
651
+ end