freeclimb 3.0.2 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (336) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/Gemfile +4 -1
  4. data/Gemfile.lock +33 -19
  5. data/README.md +40 -35
  6. data/docs/AccountRequest.md +9 -8
  7. data/docs/AccountResult.md +27 -26
  8. data/docs/AccountResultAllOf.md +19 -18
  9. data/docs/AddToConference.md +25 -24
  10. data/docs/AddToConferenceAllOf.md +25 -24
  11. data/docs/ApplicationList.md +21 -20
  12. data/docs/ApplicationListAllOf.md +7 -6
  13. data/docs/ApplicationRequest.md +19 -18
  14. data/docs/ApplicationResult.md +31 -30
  15. data/docs/ApplicationResultAllOf.md +23 -22
  16. data/docs/AvailableNumber.md +19 -14
  17. data/docs/AvailableNumberList.md +21 -20
  18. data/docs/AvailableNumberListAllOf.md +7 -6
  19. data/docs/BuyIncomingNumberRequest.md +11 -10
  20. data/docs/CallList.md +21 -20
  21. data/docs/CallListAllOf.md +7 -6
  22. data/docs/CallResult.md +43 -42
  23. data/docs/CallResultAllOf.md +35 -34
  24. data/docs/Capabilities.md +26 -0
  25. data/docs/ConferenceList.md +21 -20
  26. data/docs/ConferenceListAllOf.md +7 -6
  27. data/docs/ConferenceParticipantList.md +21 -20
  28. data/docs/ConferenceParticipantListAllOf.md +7 -6
  29. data/docs/ConferenceParticipantResult.md +25 -24
  30. data/docs/ConferenceParticipantResultAllOf.md +17 -16
  31. data/docs/ConferenceResult.md +33 -32
  32. data/docs/ConferenceResultAllOf.md +25 -24
  33. data/docs/CreateConference.md +17 -16
  34. data/docs/CreateConferenceAllOf.md +17 -16
  35. data/docs/CreateConferenceRequest.md +15 -14
  36. data/docs/DefaultApi.md +1625 -647
  37. data/docs/Dequeue.md +3 -4
  38. data/docs/Enqueue.md +13 -12
  39. data/docs/EnqueueAllOf.md +13 -12
  40. data/docs/FilterLogsRequest.md +7 -6
  41. data/docs/GetDigits.md +23 -22
  42. data/docs/GetDigitsAllOf.md +23 -22
  43. data/docs/GetSpeech.md +31 -30
  44. data/docs/GetSpeechAllOf.md +31 -30
  45. data/docs/Hangup.md +7 -6
  46. data/docs/HangupAllOf.md +7 -6
  47. data/docs/IncomingNumberList.md +21 -20
  48. data/docs/IncomingNumberListAllOf.md +7 -6
  49. data/docs/IncomingNumberRequest.md +9 -8
  50. data/docs/IncomingNumberResult.md +35 -30
  51. data/docs/IncomingNumberResultAllOf.md +27 -22
  52. data/docs/LogList.md +21 -20
  53. data/docs/LogListAllOf.md +7 -6
  54. data/docs/LogResult.md +19 -18
  55. data/docs/MakeCallRequest.md +25 -24
  56. data/docs/MessageRequest.md +23 -22
  57. data/docs/MessageRequestAllOf.md +15 -14
  58. data/docs/MessageResult.md +29 -28
  59. data/docs/MessageResultAllOf.md +21 -20
  60. data/docs/MessagesList.md +21 -20
  61. data/docs/MessagesListAllOf.md +7 -6
  62. data/docs/MutableResourceModel.md +13 -12
  63. data/docs/OutDial.md +25 -24
  64. data/docs/OutDialAllOf.md +25 -24
  65. data/docs/PaginationModel.md +19 -18
  66. data/docs/Park.md +22 -0
  67. data/docs/ParkAllOf.md +22 -0
  68. data/docs/Pause.md +7 -6
  69. data/docs/PauseAllOf.md +7 -6
  70. data/docs/PerclCommand.md +7 -6
  71. data/docs/PerclScript.md +7 -6
  72. data/docs/Play.md +13 -12
  73. data/docs/PlayAllOf.md +13 -12
  74. data/docs/PlayEarlyMedia.md +7 -6
  75. data/docs/PlayEarlyMediaAllOf.md +7 -6
  76. data/docs/QueueList.md +21 -20
  77. data/docs/QueueListAllOf.md +7 -6
  78. data/docs/QueueMember.md +15 -14
  79. data/docs/QueueMemberList.md +21 -20
  80. data/docs/QueueMemberListAllOf.md +7 -6
  81. data/docs/QueueRequest.md +9 -8
  82. data/docs/QueueResult.md +27 -26
  83. data/docs/QueueResultAllOf.md +19 -18
  84. data/docs/RecordUtterance.md +19 -18
  85. data/docs/RecordUtteranceAllOf.md +19 -18
  86. data/docs/RecordingList.md +21 -20
  87. data/docs/RecordingListAllOf.md +7 -6
  88. data/docs/RecordingResult.md +23 -22
  89. data/docs/RecordingResultAllOf.md +15 -14
  90. data/docs/Redirect.md +7 -6
  91. data/docs/RedirectAllOf.md +7 -6
  92. data/docs/Reject.md +7 -6
  93. data/docs/RejectAllOf.md +7 -6
  94. data/docs/RemoveFromConference.md +7 -6
  95. data/docs/RemoveFromConferenceAllOf.md +7 -6
  96. data/docs/Say.md +15 -14
  97. data/docs/SayAllOf.md +15 -14
  98. data/docs/SendDigits.md +11 -10
  99. data/docs/SendDigitsAllOf.md +11 -10
  100. data/docs/SetListen.md +9 -8
  101. data/docs/SetListenAllOf.md +9 -8
  102. data/docs/SetTalk.md +9 -8
  103. data/docs/SetTalkAllOf.md +9 -8
  104. data/docs/Sms.md +13 -12
  105. data/docs/SmsAllOf.md +13 -12
  106. data/docs/StartRecordCall.md +3 -4
  107. data/docs/TerminateConference.md +7 -6
  108. data/docs/TerminateConferenceAllOf.md +7 -6
  109. data/docs/Unpark.md +15 -0
  110. data/docs/UpdateCallRequest.md +7 -6
  111. data/docs/UpdateConferenceParticipantRequest.md +9 -8
  112. data/docs/UpdateConferenceRequest.md +11 -10
  113. data/freeclimb.gemspec +3 -4
  114. data/lib/freeclimb/api/default_api.rb +434 -278
  115. data/lib/freeclimb/api_client.rb +55 -51
  116. data/lib/freeclimb/api_error.rb +2 -2
  117. data/lib/freeclimb/configuration.rb +41 -11
  118. data/lib/freeclimb/models/account_request.rb +20 -8
  119. data/lib/freeclimb/models/account_result.rb +39 -8
  120. data/lib/freeclimb/models/account_result_all_of.rb +39 -8
  121. data/lib/freeclimb/models/add_to_conference.rb +21 -8
  122. data/lib/freeclimb/models/add_to_conference_all_of.rb +20 -8
  123. data/lib/freeclimb/models/application_list.rb +28 -8
  124. data/lib/freeclimb/models/application_list_all_of.rb +21 -8
  125. data/lib/freeclimb/models/application_request.rb +20 -8
  126. data/lib/freeclimb/models/application_result.rb +29 -8
  127. data/lib/freeclimb/models/application_result_all_of.rb +29 -8
  128. data/lib/freeclimb/models/available_number.rb +46 -9
  129. data/lib/freeclimb/models/available_number_list.rb +28 -8
  130. data/lib/freeclimb/models/available_number_list_all_of.rb +21 -8
  131. data/lib/freeclimb/models/buy_incoming_number_request.rb +20 -8
  132. data/lib/freeclimb/models/call_list.rb +28 -8
  133. data/lib/freeclimb/models/call_list_all_of.rb +21 -8
  134. data/lib/freeclimb/models/call_result.rb +35 -8
  135. data/lib/freeclimb/models/call_result_all_of.rb +35 -8
  136. data/lib/freeclimb/models/capabilities.rb +265 -0
  137. data/lib/freeclimb/models/conference_list.rb +28 -8
  138. data/lib/freeclimb/models/conference_list_all_of.rb +21 -8
  139. data/lib/freeclimb/models/conference_participant_list.rb +28 -8
  140. data/lib/freeclimb/models/conference_participant_list_all_of.rb +21 -8
  141. data/lib/freeclimb/models/conference_participant_result.rb +26 -8
  142. data/lib/freeclimb/models/conference_participant_result_all_of.rb +26 -8
  143. data/lib/freeclimb/models/conference_result.rb +30 -8
  144. data/lib/freeclimb/models/conference_result_all_of.rb +30 -8
  145. data/lib/freeclimb/models/create_conference.rb +21 -8
  146. data/lib/freeclimb/models/create_conference_all_of.rb +20 -8
  147. data/lib/freeclimb/models/create_conference_request.rb +20 -8
  148. data/lib/freeclimb/models/dequeue.rb +21 -8
  149. data/lib/freeclimb/models/enqueue.rb +21 -8
  150. data/lib/freeclimb/models/enqueue_all_of.rb +20 -8
  151. data/lib/freeclimb/models/filter_logs_request.rb +20 -8
  152. data/lib/freeclimb/models/get_digits.rb +21 -8
  153. data/lib/freeclimb/models/get_digits_all_of.rb +20 -8
  154. data/lib/freeclimb/models/get_speech.rb +21 -8
  155. data/lib/freeclimb/models/get_speech_all_of.rb +20 -8
  156. data/lib/freeclimb/models/hangup.rb +21 -8
  157. data/lib/freeclimb/models/hangup_all_of.rb +20 -8
  158. data/lib/freeclimb/models/incoming_number_list.rb +28 -8
  159. data/lib/freeclimb/models/incoming_number_list_all_of.rb +21 -8
  160. data/lib/freeclimb/models/incoming_number_request.rb +20 -8
  161. data/lib/freeclimb/models/incoming_number_result.rb +50 -9
  162. data/lib/freeclimb/models/incoming_number_result_all_of.rb +50 -9
  163. data/lib/freeclimb/models/log_list.rb +28 -8
  164. data/lib/freeclimb/models/log_list_all_of.rb +21 -8
  165. data/lib/freeclimb/models/log_result.rb +27 -8
  166. data/lib/freeclimb/models/make_call_request.rb +22 -8
  167. data/lib/freeclimb/models/message_request.rb +20 -8
  168. data/lib/freeclimb/models/message_request_all_of.rb +20 -8
  169. data/lib/freeclimb/models/message_result.rb +28 -8
  170. data/lib/freeclimb/models/message_result_all_of.rb +28 -8
  171. data/lib/freeclimb/models/messages_list.rb +28 -8
  172. data/lib/freeclimb/models/messages_list_all_of.rb +21 -8
  173. data/lib/freeclimb/models/mutable_resource_model.rb +20 -8
  174. data/lib/freeclimb/models/out_dial.rb +21 -8
  175. data/lib/freeclimb/models/out_dial_all_of.rb +20 -8
  176. data/lib/freeclimb/models/pagination_model.rb +27 -8
  177. data/lib/freeclimb/models/park.rb +263 -0
  178. data/lib/freeclimb/models/park_all_of.rb +249 -0
  179. data/lib/freeclimb/models/pause.rb +21 -8
  180. data/lib/freeclimb/models/pause_all_of.rb +20 -8
  181. data/lib/freeclimb/models/percl_command.rb +38 -8
  182. data/lib/freeclimb/models/percl_script.rb +24 -8
  183. data/lib/freeclimb/models/play.rb +21 -8
  184. data/lib/freeclimb/models/play_all_of.rb +20 -8
  185. data/lib/freeclimb/models/play_early_media.rb +21 -8
  186. data/lib/freeclimb/models/play_early_media_all_of.rb +20 -8
  187. data/lib/freeclimb/models/queue_list.rb +28 -8
  188. data/lib/freeclimb/models/queue_list_all_of.rb +21 -8
  189. data/lib/freeclimb/models/queue_member.rb +25 -8
  190. data/lib/freeclimb/models/queue_member_list.rb +28 -8
  191. data/lib/freeclimb/models/queue_member_list_all_of.rb +21 -8
  192. data/lib/freeclimb/models/queue_request.rb +22 -8
  193. data/lib/freeclimb/models/queue_result.rb +27 -8
  194. data/lib/freeclimb/models/queue_result_all_of.rb +27 -8
  195. data/lib/freeclimb/models/record_utterance.rb +21 -8
  196. data/lib/freeclimb/models/record_utterance_all_of.rb +20 -8
  197. data/lib/freeclimb/models/recording_list.rb +28 -8
  198. data/lib/freeclimb/models/recording_list_all_of.rb +21 -8
  199. data/lib/freeclimb/models/recording_result.rb +25 -8
  200. data/lib/freeclimb/models/recording_result_all_of.rb +25 -8
  201. data/lib/freeclimb/models/redirect.rb +21 -8
  202. data/lib/freeclimb/models/redirect_all_of.rb +20 -8
  203. data/lib/freeclimb/models/reject.rb +21 -8
  204. data/lib/freeclimb/models/reject_all_of.rb +20 -8
  205. data/lib/freeclimb/models/remove_from_conference.rb +21 -8
  206. data/lib/freeclimb/models/remove_from_conference_all_of.rb +20 -8
  207. data/lib/freeclimb/models/say.rb +23 -8
  208. data/lib/freeclimb/models/say_all_of.rb +22 -8
  209. data/lib/freeclimb/models/send_digits.rb +21 -8
  210. data/lib/freeclimb/models/send_digits_all_of.rb +20 -8
  211. data/lib/freeclimb/models/set_listen.rb +21 -8
  212. data/lib/freeclimb/models/set_listen_all_of.rb +20 -8
  213. data/lib/freeclimb/models/set_talk.rb +21 -8
  214. data/lib/freeclimb/models/set_talk_all_of.rb +20 -8
  215. data/lib/freeclimb/models/sms.rb +21 -8
  216. data/lib/freeclimb/models/sms_all_of.rb +20 -8
  217. data/lib/freeclimb/models/start_record_call.rb +21 -8
  218. data/lib/freeclimb/models/terminate_conference.rb +21 -8
  219. data/lib/freeclimb/models/terminate_conference_all_of.rb +20 -8
  220. data/lib/freeclimb/models/unpark.rb +222 -0
  221. data/lib/freeclimb/models/update_call_request.rb +20 -8
  222. data/lib/freeclimb/models/update_conference_participant_request.rb +20 -8
  223. data/lib/freeclimb/models/update_conference_request.rb +20 -8
  224. data/lib/freeclimb/version.rb +3 -3
  225. data/lib/freeclimb.rb +28 -52
  226. data/spec/api/default_api_spec.rb +1004 -21
  227. data/spec/api_client_spec.rb +5 -5
  228. data/spec/configuration_spec.rb +10 -10
  229. data/spec/factories.rb +80 -0
  230. data/spec/models/account_request_spec.rb +5 -12
  231. data/spec/models/account_result_spec.rb +10 -13
  232. data/spec/models/add_to_conference_spec.rb +5 -12
  233. data/spec/models/application_list_spec.rb +5 -12
  234. data/spec/models/application_request_spec.rb +5 -12
  235. data/spec/models/application_result_spec.rb +5 -12
  236. data/spec/models/available_number_list_spec.rb +5 -12
  237. data/spec/models/available_number_spec.rb +11 -12
  238. data/spec/models/buy_incoming_number_request_spec.rb +5 -12
  239. data/spec/models/call_list_spec.rb +5 -12
  240. data/spec/models/call_result_spec.rb +6 -13
  241. data/spec/models/{say_all_of_spec.rb → capabilities_spec.rb} +13 -20
  242. data/spec/models/conference_list_spec.rb +5 -12
  243. data/spec/models/conference_participant_list_spec.rb +5 -12
  244. data/spec/models/conference_participant_result_spec.rb +5 -12
  245. data/spec/models/conference_result_spec.rb +7 -14
  246. data/spec/models/create_conference_request_spec.rb +6 -13
  247. data/spec/models/create_conference_spec.rb +5 -12
  248. data/spec/models/dequeue_spec.rb +5 -12
  249. data/spec/models/enqueue_spec.rb +5 -12
  250. data/spec/models/filter_logs_request_spec.rb +5 -12
  251. data/spec/models/get_digits_spec.rb +5 -12
  252. data/spec/models/get_speech_spec.rb +5 -12
  253. data/spec/models/hangup_spec.rb +5 -12
  254. data/spec/models/incoming_number_list_spec.rb +5 -12
  255. data/spec/models/incoming_number_request_spec.rb +5 -12
  256. data/spec/models/incoming_number_result_spec.rb +11 -12
  257. data/spec/models/log_list_spec.rb +5 -12
  258. data/spec/models/log_result_spec.rb +6 -13
  259. data/spec/models/make_call_request_spec.rb +5 -12
  260. data/spec/models/message_request_spec.rb +5 -12
  261. data/spec/models/message_result_spec.rb +6 -13
  262. data/spec/models/messages_list_spec.rb +5 -12
  263. data/spec/models/mutable_resource_model_spec.rb +5 -12
  264. data/spec/models/out_dial_spec.rb +5 -12
  265. data/spec/models/pagination_model_spec.rb +5 -12
  266. data/spec/models/{enqueue_all_of_spec.rb → park_spec.rb} +11 -24
  267. data/spec/models/pause_spec.rb +5 -12
  268. data/spec/models/percl_command_spec.rb +5 -12
  269. data/spec/models/percl_script_spec.rb +5 -12
  270. data/spec/models/play_early_media_spec.rb +5 -12
  271. data/spec/models/play_spec.rb +5 -12
  272. data/spec/models/queue_list_spec.rb +5 -12
  273. data/spec/models/queue_member_list_spec.rb +5 -12
  274. data/spec/models/queue_member_spec.rb +5 -12
  275. data/spec/models/queue_request_spec.rb +5 -12
  276. data/spec/models/queue_result_spec.rb +5 -12
  277. data/spec/models/record_utterance_spec.rb +5 -12
  278. data/spec/models/recording_list_spec.rb +5 -12
  279. data/spec/models/recording_result_spec.rb +5 -12
  280. data/spec/models/redirect_spec.rb +5 -12
  281. data/spec/models/reject_spec.rb +5 -12
  282. data/spec/models/remove_from_conference_spec.rb +5 -12
  283. data/spec/models/say_spec.rb +5 -12
  284. data/spec/models/send_digits_spec.rb +5 -12
  285. data/spec/models/set_listen_spec.rb +5 -12
  286. data/spec/models/set_talk_spec.rb +5 -12
  287. data/spec/models/sms_spec.rb +5 -12
  288. data/spec/models/start_record_call_spec.rb +5 -12
  289. data/spec/models/terminate_conference_spec.rb +5 -12
  290. data/spec/models/{pause_all_of_spec.rb → unpark_spec.rb} +8 -21
  291. data/spec/models/update_call_request_spec.rb +6 -13
  292. data/spec/models/update_conference_participant_request_spec.rb +5 -12
  293. data/spec/models/update_conference_request_spec.rb +6 -13
  294. data/spec/quickstart_spec.rb +10 -0
  295. data/spec/spec_helper.rb +61 -2
  296. metadata +75 -162
  297. data/lib/freeclimb/utils.rb +0 -34
  298. data/spec/api/web_mocks.rb +0 -473
  299. data/spec/models/account_result_all_of_spec.rb +0 -81
  300. data/spec/models/add_to_conference_all_of_spec.rb +0 -95
  301. data/spec/models/application_list_all_of_spec.rb +0 -41
  302. data/spec/models/application_result_all_of_spec.rb +0 -89
  303. data/spec/models/available_number_list_all_of_spec.rb +0 -41
  304. data/spec/models/call_list_all_of_spec.rb +0 -41
  305. data/spec/models/call_result_all_of_spec.rb +0 -129
  306. data/spec/models/conference_list_all_of_spec.rb +0 -41
  307. data/spec/models/conference_participant_list_all_of_spec.rb +0 -41
  308. data/spec/models/conference_participant_result_all_of_spec.rb +0 -71
  309. data/spec/models/conference_result_all_of_spec.rb +0 -103
  310. data/spec/models/create_conference_all_of_spec.rb +0 -71
  311. data/spec/models/get_digits_all_of_spec.rb +0 -89
  312. data/spec/models/get_speech_all_of_spec.rb +0 -113
  313. data/spec/models/hangup_all_of_spec.rb +0 -41
  314. data/spec/models/incoming_number_list_all_of_spec.rb +0 -41
  315. data/spec/models/incoming_number_result_all_of_spec.rb +0 -89
  316. data/spec/models/log_list_all_of_spec.rb +0 -41
  317. data/spec/models/message_request_all_of_spec.rb +0 -65
  318. data/spec/models/message_result_all_of_spec.rb +0 -87
  319. data/spec/models/messages_list_all_of_spec.rb +0 -41
  320. data/spec/models/out_dial_all_of_spec.rb +0 -95
  321. data/spec/models/play_all_of_spec.rb +0 -59
  322. data/spec/models/play_early_media_all_of_spec.rb +0 -41
  323. data/spec/models/queue_list_all_of_spec.rb +0 -41
  324. data/spec/models/queue_member_list_all_of_spec.rb +0 -41
  325. data/spec/models/queue_result_all_of_spec.rb +0 -77
  326. data/spec/models/record_utterance_all_of_spec.rb +0 -77
  327. data/spec/models/recording_list_all_of_spec.rb +0 -41
  328. data/spec/models/recording_result_all_of_spec.rb +0 -65
  329. data/spec/models/redirect_all_of_spec.rb +0 -41
  330. data/spec/models/reject_all_of_spec.rb +0 -41
  331. data/spec/models/remove_from_conference_all_of_spec.rb +0 -41
  332. data/spec/models/send_digits_all_of_spec.rb +0 -53
  333. data/spec/models/set_listen_all_of_spec.rb +0 -47
  334. data/spec/models/set_talk_all_of_spec.rb +0 -47
  335. data/spec/models/sms_all_of_spec.rb +0 -59
  336. data/spec/models/terminate_conference_all_of_spec.rb +0 -41
@@ -4,13 +4,14 @@
4
4
  #FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
-
7
+ Contact: support@freeclimb.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.0-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module Freeclimb
16
17
  class SmsAllOf
@@ -36,6 +37,11 @@ module Freeclimb
36
37
  }
37
38
  end
38
39
 
40
+ # Returns all the JSON keys this model knows about
41
+ def self.acceptable_attributes
42
+ attribute_map.values
43
+ end
44
+
39
45
  # Attribute type mapping.
40
46
  def self.openapi_types
41
47
  {
@@ -148,7 +154,9 @@ module Freeclimb
148
154
  def build_from_hash(attributes)
149
155
  return nil unless attributes.is_a?(Hash)
150
156
  self.class.openapi_types.each_pair do |key, type|
151
- if type =~ /\AArray<(.*)>/i
157
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
158
+ self.send("#{key}=", nil)
159
+ elsif type =~ /\AArray<(.*)>/i
152
160
  # check to ensure the input is an array given that the attribute
153
161
  # is documented as an array but the input is not
154
162
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -156,7 +164,7 @@ module Freeclimb
156
164
  end
157
165
  elsif !attributes[self.class.attribute_map[key]].nil?
158
166
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
159
- end # or else data not found in attributes(hash), not an issue as the data can be optional
167
+ end
160
168
  end
161
169
 
162
170
  self
@@ -168,8 +176,8 @@ module Freeclimb
168
176
  # @return [Object] Deserialized data
169
177
  def _deserialize(type, value)
170
178
  case type.to_sym
171
- when :DateTime
172
- DateTime.parse(value)
179
+ when :Time
180
+ Time.parse(value)
173
181
  when :Date
174
182
  Date.parse(value)
175
183
  when :String
@@ -199,7 +207,9 @@ module Freeclimb
199
207
  end
200
208
  end
201
209
  else # model
202
- Freeclimb.const_get(type).build_from_hash(value)
210
+ # models (e.g. Pet) or oneOf
211
+ klass = Freeclimb.const_get(type)
212
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
203
213
  end
204
214
  end
205
215
 
@@ -225,7 +235,7 @@ module Freeclimb
225
235
  is_nullable = self.class.openapi_nullable.include?(attr)
226
236
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
227
237
  end
228
-
238
+
229
239
  hash[param] = _to_hash(value)
230
240
  end
231
241
  hash
@@ -248,5 +258,7 @@ module Freeclimb
248
258
  value
249
259
  end
250
260
  end
261
+
251
262
  end
263
+
252
264
  end
@@ -4,13 +4,14 @@
4
4
  #FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
-
7
+ Contact: support@freeclimb.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.0-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module Freeclimb
16
17
  # The `StartRecordCall` command records the current call and returns the URL of a file containing the audio recording when recording completes. `StartRecordCall` is non-blocking. After recording of the current call begins, control of the call moves to the PerCL command that follows `StartRecordCall` in the current PerCL script.
@@ -21,6 +22,11 @@ module Freeclimb
21
22
  }
22
23
  end
23
24
 
25
+ # Returns all the JSON keys this model knows about, including the ones defined in its parent(s)
26
+ def self.acceptable_attributes
27
+ attribute_map.values.concat(superclass.acceptable_attributes)
28
+ end
29
+
24
30
  # Attribute type mapping.
25
31
  def self.openapi_types
26
32
  {
@@ -57,6 +63,7 @@ module Freeclimb
57
63
 
58
64
  # call parent's initialize
59
65
  super(attributes)
66
+ self.command = "StartRecordCall"
60
67
  end
61
68
 
62
69
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -105,7 +112,9 @@ module Freeclimb
105
112
  return nil unless attributes.is_a?(Hash)
106
113
  super(attributes)
107
114
  self.class.openapi_types.each_pair do |key, type|
108
- if type =~ /\AArray<(.*)>/i
115
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
116
+ self.send("#{key}=", nil)
117
+ elsif type =~ /\AArray<(.*)>/i
109
118
  # check to ensure the input is an array given that the attribute
110
119
  # is documented as an array but the input is not
111
120
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -113,7 +122,7 @@ module Freeclimb
113
122
  end
114
123
  elsif !attributes[self.class.attribute_map[key]].nil?
115
124
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
116
- end # or else data not found in attributes(hash), not an issue as the data can be optional
125
+ end
117
126
  end
118
127
 
119
128
  self
@@ -125,8 +134,8 @@ module Freeclimb
125
134
  # @return [Object] Deserialized data
126
135
  def _deserialize(type, value)
127
136
  case type.to_sym
128
- when :DateTime
129
- DateTime.parse(value)
137
+ when :Time
138
+ Time.parse(value)
130
139
  when :Date
131
140
  Date.parse(value)
132
141
  when :String
@@ -156,7 +165,9 @@ module Freeclimb
156
165
  end
157
166
  end
158
167
  else # model
159
- Freeclimb.const_get(type).build_from_hash(value)
168
+ # models (e.g. Pet) or oneOf
169
+ klass = Freeclimb.const_get(type)
170
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
160
171
  end
161
172
  end
162
173
 
@@ -182,7 +193,7 @@ module Freeclimb
182
193
  is_nullable = self.class.openapi_nullable.include?(attr)
183
194
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
184
195
  end
185
-
196
+
186
197
  hash[param] = _to_hash(value)
187
198
  end
188
199
  hash
@@ -205,5 +216,7 @@ module Freeclimb
205
216
  value
206
217
  end
207
218
  end
219
+
208
220
  end
221
+
209
222
  end
@@ -4,13 +4,14 @@
4
4
  #FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
-
7
+ Contact: support@freeclimb.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.0-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module Freeclimb
16
17
  # The `TerminateConference` command terminates an existing Conference. Any active participants are hung up on by FreeClimb. If this is not the desired behavior, use the `RemoveFromConference` command to unbridge Calls that should not be hung up. Note: The Call requesting TerminateConference must be on the same Conference for this command to execute.
@@ -25,6 +26,11 @@ module Freeclimb
25
26
  }
26
27
  end
27
28
 
29
+ # Returns all the JSON keys this model knows about, including the ones defined in its parent(s)
30
+ def self.acceptable_attributes
31
+ attribute_map.values.concat(superclass.acceptable_attributes)
32
+ end
33
+
28
34
  # Attribute type mapping.
29
35
  def self.openapi_types
30
36
  {
@@ -67,6 +73,7 @@ module Freeclimb
67
73
  if attributes.key?(:'conference_id')
68
74
  self.conference_id = attributes[:'conference_id']
69
75
  end
76
+ self.command = "TerminateConference"
70
77
  end
71
78
 
72
79
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -121,7 +128,9 @@ module Freeclimb
121
128
  return nil unless attributes.is_a?(Hash)
122
129
  super(attributes)
123
130
  self.class.openapi_types.each_pair do |key, type|
124
- if type =~ /\AArray<(.*)>/i
131
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
132
+ self.send("#{key}=", nil)
133
+ elsif type =~ /\AArray<(.*)>/i
125
134
  # check to ensure the input is an array given that the attribute
126
135
  # is documented as an array but the input is not
127
136
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -129,7 +138,7 @@ module Freeclimb
129
138
  end
130
139
  elsif !attributes[self.class.attribute_map[key]].nil?
131
140
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
- end # or else data not found in attributes(hash), not an issue as the data can be optional
141
+ end
133
142
  end
134
143
 
135
144
  self
@@ -141,8 +150,8 @@ module Freeclimb
141
150
  # @return [Object] Deserialized data
142
151
  def _deserialize(type, value)
143
152
  case type.to_sym
144
- when :DateTime
145
- DateTime.parse(value)
153
+ when :Time
154
+ Time.parse(value)
146
155
  when :Date
147
156
  Date.parse(value)
148
157
  when :String
@@ -172,7 +181,9 @@ module Freeclimb
172
181
  end
173
182
  end
174
183
  else # model
175
- Freeclimb.const_get(type).build_from_hash(value)
184
+ # models (e.g. Pet) or oneOf
185
+ klass = Freeclimb.const_get(type)
186
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
176
187
  end
177
188
  end
178
189
 
@@ -198,7 +209,7 @@ module Freeclimb
198
209
  is_nullable = self.class.openapi_nullable.include?(attr)
199
210
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
200
211
  end
201
-
212
+
202
213
  hash[param] = _to_hash(value)
203
214
  end
204
215
  hash
@@ -221,5 +232,7 @@ module Freeclimb
221
232
  value
222
233
  end
223
234
  end
235
+
224
236
  end
237
+
225
238
  end
@@ -4,13 +4,14 @@
4
4
  #FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
-
7
+ Contact: support@freeclimb.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.0-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module Freeclimb
16
17
  class TerminateConferenceAllOf
@@ -24,6 +25,11 @@ module Freeclimb
24
25
  }
25
26
  end
26
27
 
28
+ # Returns all the JSON keys this model knows about
29
+ def self.acceptable_attributes
30
+ attribute_map.values
31
+ end
32
+
27
33
  # Attribute type mapping.
28
34
  def self.openapi_types
29
35
  {
@@ -108,7 +114,9 @@ module Freeclimb
108
114
  def build_from_hash(attributes)
109
115
  return nil unless attributes.is_a?(Hash)
110
116
  self.class.openapi_types.each_pair do |key, type|
111
- if type =~ /\AArray<(.*)>/i
117
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
118
+ self.send("#{key}=", nil)
119
+ elsif type =~ /\AArray<(.*)>/i
112
120
  # check to ensure the input is an array given that the attribute
113
121
  # is documented as an array but the input is not
114
122
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -116,7 +124,7 @@ module Freeclimb
116
124
  end
117
125
  elsif !attributes[self.class.attribute_map[key]].nil?
118
126
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
119
- end # or else data not found in attributes(hash), not an issue as the data can be optional
127
+ end
120
128
  end
121
129
 
122
130
  self
@@ -128,8 +136,8 @@ module Freeclimb
128
136
  # @return [Object] Deserialized data
129
137
  def _deserialize(type, value)
130
138
  case type.to_sym
131
- when :DateTime
132
- DateTime.parse(value)
139
+ when :Time
140
+ Time.parse(value)
133
141
  when :Date
134
142
  Date.parse(value)
135
143
  when :String
@@ -159,7 +167,9 @@ module Freeclimb
159
167
  end
160
168
  end
161
169
  else # model
162
- Freeclimb.const_get(type).build_from_hash(value)
170
+ # models (e.g. Pet) or oneOf
171
+ klass = Freeclimb.const_get(type)
172
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
163
173
  end
164
174
  end
165
175
 
@@ -185,7 +195,7 @@ module Freeclimb
185
195
  is_nullable = self.class.openapi_nullable.include?(attr)
186
196
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
187
197
  end
188
-
198
+
189
199
  hash[param] = _to_hash(value)
190
200
  end
191
201
  hash
@@ -208,5 +218,7 @@ module Freeclimb
208
218
  value
209
219
  end
210
220
  end
221
+
211
222
  end
223
+
212
224
  end
@@ -0,0 +1,222 @@
1
+ =begin
2
+ #FreeClimb API
3
+
4
+ #FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: support@freeclimb.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Freeclimb
17
+ # The `Unpark` command resumes a parked call. Execution continues with the first command in the PerCL scripted returned by the actionUrl specified in the Park command as long as the call is still in progress. If the call is no longer in progress, any returned PerCL will not be executed. Unpark is a terminal command -- any commands following it in the same script are not executed.
18
+ class Unpark < PerclCommand
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ }
23
+ end
24
+
25
+ # Returns all the JSON keys this model knows about, including the ones defined in its parent(s)
26
+ def self.acceptable_attributes
27
+ attribute_map.values.concat(superclass.acceptable_attributes)
28
+ end
29
+
30
+ # Attribute type mapping.
31
+ def self.openapi_types
32
+ {
33
+ }
34
+ end
35
+
36
+ # List of attributes with nullable: true
37
+ def self.openapi_nullable
38
+ Set.new([
39
+ ])
40
+ end
41
+
42
+ # List of class defined in allOf (OpenAPI v3)
43
+ def self.openapi_all_of
44
+ [
45
+ :'PerclCommand'
46
+ ]
47
+ end
48
+
49
+ # Initializes the object
50
+ # @param [Hash] attributes Model attributes in the form of hash
51
+ def initialize(attributes = {})
52
+ if (!attributes.is_a?(Hash))
53
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Freeclimb::Unpark` initialize method"
54
+ end
55
+
56
+ # check to see if the attribute exists and convert string to symbol for hash key
57
+ attributes = attributes.each_with_object({}) { |(k, v), h|
58
+ if (!self.class.attribute_map.key?(k.to_sym))
59
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Freeclimb::Unpark`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
60
+ end
61
+ h[k.to_sym] = v
62
+ }
63
+
64
+ # call parent's initialize
65
+ super(attributes)
66
+ self.command = "Unpark"
67
+ end
68
+
69
+ # Show invalid properties with the reasons. Usually used together with valid?
70
+ # @return Array for valid properties with the reasons
71
+ def list_invalid_properties
72
+ invalid_properties = super
73
+ invalid_properties
74
+ end
75
+
76
+ # Check to see if the all the properties in the model are valid
77
+ # @return true if the model is valid
78
+ def valid?
79
+ true && super
80
+ end
81
+
82
+ # Checks equality by comparing each attribute.
83
+ # @param [Object] Object to be compared
84
+ def ==(o)
85
+ return true if self.equal?(o)
86
+ self.class == o.class && super(o)
87
+ end
88
+
89
+ # @see the `==` method
90
+ # @param [Object] Object to be compared
91
+ def eql?(o)
92
+ self == o
93
+ end
94
+
95
+ # Calculates hash code according to all attributes.
96
+ # @return [Integer] Hash code
97
+ def hash
98
+ [].hash
99
+ end
100
+
101
+ # Builds the object from hash
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ # @return [Object] Returns the model itself
104
+ def self.build_from_hash(attributes)
105
+ new.build_from_hash(attributes)
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def build_from_hash(attributes)
112
+ return nil unless attributes.is_a?(Hash)
113
+ super(attributes)
114
+ self.class.openapi_types.each_pair do |key, type|
115
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
116
+ self.send("#{key}=", nil)
117
+ elsif type =~ /\AArray<(.*)>/i
118
+ # check to ensure the input is an array given that the attribute
119
+ # is documented as an array but the input is not
120
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
121
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
122
+ end
123
+ elsif !attributes[self.class.attribute_map[key]].nil?
124
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
125
+ end
126
+ end
127
+
128
+ self
129
+ end
130
+
131
+ # Deserializes the data based on type
132
+ # @param string type Data type
133
+ # @param string value Value to be deserialized
134
+ # @return [Object] Deserialized data
135
+ def _deserialize(type, value)
136
+ case type.to_sym
137
+ when :Time
138
+ Time.parse(value)
139
+ when :Date
140
+ Date.parse(value)
141
+ when :String
142
+ value.to_s
143
+ when :Integer
144
+ value.to_i
145
+ when :Float
146
+ value.to_f
147
+ when :Boolean
148
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
149
+ true
150
+ else
151
+ false
152
+ end
153
+ when :Object
154
+ # generic object (usually a Hash), return directly
155
+ value
156
+ when /\AArray<(?<inner_type>.+)>\z/
157
+ inner_type = Regexp.last_match[:inner_type]
158
+ value.map { |v| _deserialize(inner_type, v) }
159
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
160
+ k_type = Regexp.last_match[:k_type]
161
+ v_type = Regexp.last_match[:v_type]
162
+ {}.tap do |hash|
163
+ value.each do |k, v|
164
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
165
+ end
166
+ end
167
+ else # model
168
+ # models (e.g. Pet) or oneOf
169
+ klass = Freeclimb.const_get(type)
170
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
171
+ end
172
+ end
173
+
174
+ # Returns the string representation of the object
175
+ # @return [String] String presentation of the object
176
+ def to_s
177
+ to_hash.to_s
178
+ end
179
+
180
+ # to_body is an alias to to_hash (backward compatibility)
181
+ # @return [Hash] Returns the object in the form of hash
182
+ def to_body
183
+ to_hash
184
+ end
185
+
186
+ # Returns the object in the form of hash
187
+ # @return [Hash] Returns the object in the form of hash
188
+ def to_hash
189
+ hash = super
190
+ self.class.attribute_map.each_pair do |attr, param|
191
+ value = self.send(attr)
192
+ if value.nil?
193
+ is_nullable = self.class.openapi_nullable.include?(attr)
194
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
195
+ end
196
+
197
+ hash[param] = _to_hash(value)
198
+ end
199
+ hash
200
+ end
201
+
202
+ # Outputs non-array value in the form of hash
203
+ # For object, use to_hash. Otherwise, just return the value
204
+ # @param [Object] value Any valid value
205
+ # @return [Hash] Returns the value in the form of hash
206
+ def _to_hash(value)
207
+ if value.is_a?(Array)
208
+ value.compact.map { |v| _to_hash(v) }
209
+ elsif value.is_a?(Hash)
210
+ {}.tap do |hash|
211
+ value.each { |k, v| hash[k] = _to_hash(v) }
212
+ end
213
+ elsif value.respond_to? :to_hash
214
+ value.to_hash
215
+ else
216
+ value
217
+ end
218
+ end
219
+
220
+ end
221
+
222
+ end
@@ -4,13 +4,14 @@
4
4
  #FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
-
7
+ Contact: support@freeclimb.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.0-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module Freeclimb
16
17
  class UpdateCallRequest
@@ -46,6 +47,11 @@ module Freeclimb
46
47
  }
47
48
  end
48
49
 
50
+ # Returns all the JSON keys this model knows about
51
+ def self.acceptable_attributes
52
+ attribute_map.values
53
+ end
54
+
49
55
  # Attribute type mapping.
50
56
  def self.openapi_types
51
57
  {
@@ -142,7 +148,9 @@ module Freeclimb
142
148
  def build_from_hash(attributes)
143
149
  return nil unless attributes.is_a?(Hash)
144
150
  self.class.openapi_types.each_pair do |key, type|
145
- if type =~ /\AArray<(.*)>/i
151
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
152
+ self.send("#{key}=", nil)
153
+ elsif type =~ /\AArray<(.*)>/i
146
154
  # check to ensure the input is an array given that the attribute
147
155
  # is documented as an array but the input is not
148
156
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -150,7 +158,7 @@ module Freeclimb
150
158
  end
151
159
  elsif !attributes[self.class.attribute_map[key]].nil?
152
160
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
153
- end # or else data not found in attributes(hash), not an issue as the data can be optional
161
+ end
154
162
  end
155
163
 
156
164
  self
@@ -162,8 +170,8 @@ module Freeclimb
162
170
  # @return [Object] Deserialized data
163
171
  def _deserialize(type, value)
164
172
  case type.to_sym
165
- when :DateTime
166
- DateTime.parse(value)
173
+ when :Time
174
+ Time.parse(value)
167
175
  when :Date
168
176
  Date.parse(value)
169
177
  when :String
@@ -193,7 +201,9 @@ module Freeclimb
193
201
  end
194
202
  end
195
203
  else # model
196
- Freeclimb.const_get(type).build_from_hash(value)
204
+ # models (e.g. Pet) or oneOf
205
+ klass = Freeclimb.const_get(type)
206
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
197
207
  end
198
208
  end
199
209
 
@@ -219,7 +229,7 @@ module Freeclimb
219
229
  is_nullable = self.class.openapi_nullable.include?(attr)
220
230
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
221
231
  end
222
-
232
+
223
233
  hash[param] = _to_hash(value)
224
234
  end
225
235
  hash
@@ -242,5 +252,7 @@ module Freeclimb
242
252
  value
243
253
  end
244
254
  end
255
+
245
256
  end
257
+
246
258
  end