freeclimb 2.2.0 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -1
  3. data/Gemfile +4 -2
  4. data/Gemfile.lock +41 -20
  5. data/README.md +35 -33
  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 +17 -16
  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 +1672 -580
  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 +33 -30
  51. data/docs/IncomingNumberResultAllOf.md +25 -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/Pause.md +7 -6
  67. data/docs/PauseAllOf.md +7 -6
  68. data/docs/PerclCommand.md +7 -6
  69. data/docs/PerclScript.md +7 -6
  70. data/docs/Play.md +13 -12
  71. data/docs/PlayAllOf.md +13 -12
  72. data/docs/PlayEarlyMedia.md +7 -6
  73. data/docs/PlayEarlyMediaAllOf.md +7 -6
  74. data/docs/QueueList.md +21 -20
  75. data/docs/QueueListAllOf.md +7 -6
  76. data/docs/QueueMember.md +15 -14
  77. data/docs/QueueMemberList.md +21 -20
  78. data/docs/QueueMemberListAllOf.md +7 -6
  79. data/docs/QueueRequest.md +9 -8
  80. data/docs/QueueResult.md +27 -26
  81. data/docs/QueueResultAllOf.md +19 -18
  82. data/docs/RecordUtterance.md +19 -18
  83. data/docs/RecordUtteranceAllOf.md +19 -18
  84. data/docs/RecordingList.md +21 -20
  85. data/docs/RecordingListAllOf.md +7 -6
  86. data/docs/RecordingResult.md +23 -22
  87. data/docs/RecordingResultAllOf.md +15 -14
  88. data/docs/Redirect.md +7 -6
  89. data/docs/RedirectAllOf.md +7 -6
  90. data/docs/Reject.md +7 -6
  91. data/docs/RejectAllOf.md +7 -6
  92. data/docs/RemoveFromConference.md +7 -6
  93. data/docs/RemoveFromConferenceAllOf.md +7 -6
  94. data/docs/Say.md +15 -14
  95. data/docs/SayAllOf.md +15 -14
  96. data/docs/SendDigits.md +11 -10
  97. data/docs/SendDigitsAllOf.md +11 -10
  98. data/docs/SetListen.md +9 -8
  99. data/docs/SetListenAllOf.md +9 -8
  100. data/docs/SetTalk.md +9 -8
  101. data/docs/SetTalkAllOf.md +9 -8
  102. data/docs/Sms.md +13 -12
  103. data/docs/SmsAllOf.md +13 -12
  104. data/docs/StartRecordCall.md +3 -4
  105. data/docs/TerminateConference.md +7 -6
  106. data/docs/TerminateConferenceAllOf.md +7 -6
  107. data/docs/UpdateCallRequest.md +7 -6
  108. data/docs/UpdateConferenceParticipantRequest.md +9 -8
  109. data/docs/UpdateConferenceRequest.md +11 -10
  110. data/freeclimb.gemspec +2 -3
  111. data/lib/freeclimb/api/default_api.rb +439 -257
  112. data/lib/freeclimb/api_client.rb +54 -50
  113. data/lib/freeclimb/api_error.rb +1 -1
  114. data/lib/freeclimb/configuration.rb +40 -10
  115. data/lib/freeclimb/models/account_request.rb +19 -7
  116. data/lib/freeclimb/models/account_result.rb +20 -8
  117. data/lib/freeclimb/models/account_result_all_of.rb +20 -8
  118. data/lib/freeclimb/models/add_to_conference.rb +19 -12
  119. data/lib/freeclimb/models/add_to_conference_all_of.rb +19 -12
  120. data/lib/freeclimb/models/application_list.rb +19 -7
  121. data/lib/freeclimb/models/application_list_all_of.rb +19 -7
  122. data/lib/freeclimb/models/application_request.rb +19 -7
  123. data/lib/freeclimb/models/application_result.rb +19 -7
  124. data/lib/freeclimb/models/application_result_all_of.rb +19 -7
  125. data/lib/freeclimb/models/available_number.rb +29 -18
  126. data/lib/freeclimb/models/available_number_list.rb +19 -7
  127. data/lib/freeclimb/models/available_number_list_all_of.rb +19 -7
  128. data/lib/freeclimb/models/buy_incoming_number_request.rb +19 -7
  129. data/lib/freeclimb/models/call_list.rb +19 -7
  130. data/lib/freeclimb/models/call_list_all_of.rb +19 -7
  131. data/lib/freeclimb/models/call_result.rb +19 -7
  132. data/lib/freeclimb/models/call_result_all_of.rb +19 -7
  133. data/lib/freeclimb/models/capabilities.rb +285 -0
  134. data/lib/freeclimb/models/conference_list.rb +19 -7
  135. data/lib/freeclimb/models/conference_list_all_of.rb +19 -7
  136. data/lib/freeclimb/models/conference_participant_list.rb +19 -7
  137. data/lib/freeclimb/models/conference_participant_list_all_of.rb +19 -7
  138. data/lib/freeclimb/models/conference_participant_result.rb +19 -7
  139. data/lib/freeclimb/models/conference_participant_result_all_of.rb +19 -7
  140. data/lib/freeclimb/models/conference_result.rb +19 -7
  141. data/lib/freeclimb/models/conference_result_all_of.rb +19 -7
  142. data/lib/freeclimb/models/create_conference.rb +19 -7
  143. data/lib/freeclimb/models/create_conference_all_of.rb +19 -7
  144. data/lib/freeclimb/models/create_conference_request.rb +19 -7
  145. data/lib/freeclimb/models/dequeue.rb +19 -7
  146. data/lib/freeclimb/models/enqueue.rb +19 -7
  147. data/lib/freeclimb/models/enqueue_all_of.rb +19 -7
  148. data/lib/freeclimb/models/filter_logs_request.rb +19 -7
  149. data/lib/freeclimb/models/get_digits.rb +19 -7
  150. data/lib/freeclimb/models/get_digits_all_of.rb +19 -7
  151. data/lib/freeclimb/models/get_speech.rb +19 -7
  152. data/lib/freeclimb/models/get_speech_all_of.rb +19 -7
  153. data/lib/freeclimb/models/hangup.rb +19 -7
  154. data/lib/freeclimb/models/hangup_all_of.rb +19 -7
  155. data/lib/freeclimb/models/incoming_number_list.rb +19 -7
  156. data/lib/freeclimb/models/incoming_number_list_all_of.rb +19 -7
  157. data/lib/freeclimb/models/incoming_number_request.rb +19 -7
  158. data/lib/freeclimb/models/incoming_number_result.rb +29 -8
  159. data/lib/freeclimb/models/incoming_number_result_all_of.rb +29 -8
  160. data/lib/freeclimb/models/log_list.rb +19 -7
  161. data/lib/freeclimb/models/log_list_all_of.rb +19 -7
  162. data/lib/freeclimb/models/log_result.rb +19 -7
  163. data/lib/freeclimb/models/make_call_request.rb +19 -7
  164. data/lib/freeclimb/models/message_request.rb +19 -7
  165. data/lib/freeclimb/models/message_request_all_of.rb +19 -7
  166. data/lib/freeclimb/models/message_result.rb +19 -7
  167. data/lib/freeclimb/models/message_result_all_of.rb +19 -7
  168. data/lib/freeclimb/models/messages_list.rb +19 -7
  169. data/lib/freeclimb/models/messages_list_all_of.rb +19 -7
  170. data/lib/freeclimb/models/mutable_resource_model.rb +19 -7
  171. data/lib/freeclimb/models/out_dial.rb +19 -7
  172. data/lib/freeclimb/models/out_dial_all_of.rb +19 -7
  173. data/lib/freeclimb/models/pagination_model.rb +19 -7
  174. data/lib/freeclimb/models/pause.rb +19 -7
  175. data/lib/freeclimb/models/pause_all_of.rb +19 -7
  176. data/lib/freeclimb/models/percl_command.rb +20 -7
  177. data/lib/freeclimb/models/percl_script.rb +19 -7
  178. data/lib/freeclimb/models/play.rb +19 -7
  179. data/lib/freeclimb/models/play_all_of.rb +19 -7
  180. data/lib/freeclimb/models/play_early_media.rb +19 -7
  181. data/lib/freeclimb/models/play_early_media_all_of.rb +19 -7
  182. data/lib/freeclimb/models/queue_list.rb +19 -7
  183. data/lib/freeclimb/models/queue_list_all_of.rb +19 -7
  184. data/lib/freeclimb/models/queue_member.rb +19 -7
  185. data/lib/freeclimb/models/queue_member_list.rb +19 -7
  186. data/lib/freeclimb/models/queue_member_list_all_of.rb +19 -7
  187. data/lib/freeclimb/models/queue_request.rb +19 -7
  188. data/lib/freeclimb/models/queue_result.rb +19 -7
  189. data/lib/freeclimb/models/queue_result_all_of.rb +19 -7
  190. data/lib/freeclimb/models/record_utterance.rb +19 -7
  191. data/lib/freeclimb/models/record_utterance_all_of.rb +19 -7
  192. data/lib/freeclimb/models/recording_list.rb +19 -7
  193. data/lib/freeclimb/models/recording_list_all_of.rb +19 -7
  194. data/lib/freeclimb/models/recording_result.rb +19 -7
  195. data/lib/freeclimb/models/recording_result_all_of.rb +19 -7
  196. data/lib/freeclimb/models/redirect.rb +19 -7
  197. data/lib/freeclimb/models/redirect_all_of.rb +19 -7
  198. data/lib/freeclimb/models/reject.rb +19 -7
  199. data/lib/freeclimb/models/reject_all_of.rb +19 -7
  200. data/lib/freeclimb/models/remove_from_conference.rb +19 -7
  201. data/lib/freeclimb/models/remove_from_conference_all_of.rb +19 -7
  202. data/lib/freeclimb/models/say.rb +19 -7
  203. data/lib/freeclimb/models/say_all_of.rb +19 -7
  204. data/lib/freeclimb/models/send_digits.rb +19 -7
  205. data/lib/freeclimb/models/send_digits_all_of.rb +19 -7
  206. data/lib/freeclimb/models/set_listen.rb +19 -7
  207. data/lib/freeclimb/models/set_listen_all_of.rb +19 -7
  208. data/lib/freeclimb/models/set_talk.rb +19 -7
  209. data/lib/freeclimb/models/set_talk_all_of.rb +19 -7
  210. data/lib/freeclimb/models/sms.rb +19 -7
  211. data/lib/freeclimb/models/sms_all_of.rb +19 -7
  212. data/lib/freeclimb/models/start_record_call.rb +19 -7
  213. data/lib/freeclimb/models/terminate_conference.rb +19 -7
  214. data/lib/freeclimb/models/terminate_conference_all_of.rb +19 -7
  215. data/lib/freeclimb/models/update_call_request.rb +19 -7
  216. data/lib/freeclimb/models/update_conference_participant_request.rb +19 -7
  217. data/lib/freeclimb/models/update_conference_request.rb +19 -7
  218. data/lib/freeclimb/version.rb +2 -2
  219. data/lib/freeclimb.rb +46 -46
  220. data/spec/api/default_api_spec.rb +1092 -665
  221. data/spec/api_client_spec.rb +6 -6
  222. data/spec/configuration_spec.rb +12 -4
  223. data/spec/factories.rb +80 -0
  224. data/spec/models/account_request_spec.rb +19 -12
  225. data/spec/models/account_result_spec.rb +76 -11
  226. data/spec/models/add_to_conference_spec.rb +6 -13
  227. data/spec/models/application_list_spec.rb +54 -11
  228. data/spec/models/application_request_spec.rb +48 -11
  229. data/spec/models/application_result_spec.rb +84 -11
  230. data/spec/models/available_number_list_spec.rb +54 -12
  231. data/spec/models/available_number_spec.rb +42 -11
  232. data/spec/models/buy_incoming_number_request_spec.rb +24 -11
  233. data/spec/models/call_list_spec.rb +54 -12
  234. data/spec/models/call_result_spec.rb +123 -11
  235. data/spec/models/capabilities_spec.rb +58 -0
  236. data/spec/models/conference_list_spec.rb +54 -11
  237. data/spec/models/conference_participant_list_spec.rb +54 -11
  238. data/spec/models/conference_participant_result_spec.rb +66 -11
  239. data/spec/models/conference_result_spec.rb +98 -12
  240. data/spec/models/create_conference_request_spec.rb +40 -12
  241. data/spec/models/create_conference_spec.rb +6 -13
  242. data/spec/models/dequeue_spec.rb +6 -13
  243. data/spec/models/enqueue_spec.rb +6 -13
  244. data/spec/models/filter_logs_request_spec.rb +14 -13
  245. data/spec/models/get_digits_spec.rb +12 -13
  246. data/spec/models/get_speech_spec.rb +7 -14
  247. data/spec/models/hangup_spec.rb +4 -11
  248. data/spec/models/incoming_number_list_spec.rb +54 -12
  249. data/spec/models/incoming_number_request_spec.rb +19 -12
  250. data/spec/models/incoming_number_result_spec.rb +90 -12
  251. data/spec/models/log_list_spec.rb +54 -11
  252. data/spec/models/log_result_spec.rb +52 -11
  253. data/spec/models/make_call_request_spec.rb +66 -11
  254. data/spec/models/message_request_spec.rb +60 -12
  255. data/spec/models/message_result_spec.rb +82 -11
  256. data/spec/models/messages_list_spec.rb +54 -11
  257. data/spec/models/mutable_resource_model_spec.rb +30 -12
  258. data/spec/models/out_dial_spec.rb +12 -13
  259. data/spec/models/pagination_model_spec.rb +48 -11
  260. data/spec/models/pause_spec.rb +6 -13
  261. data/spec/models/percl_command_spec.rb +6 -13
  262. data/spec/models/percl_script_spec.rb +6 -13
  263. data/spec/models/play_early_media_spec.rb +6 -13
  264. data/spec/models/play_spec.rb +12 -13
  265. data/spec/models/queue_list_spec.rb +53 -11
  266. data/spec/models/queue_member_list_spec.rb +54 -11
  267. data/spec/models/queue_member_spec.rb +36 -12
  268. data/spec/models/queue_request_spec.rb +19 -13
  269. data/spec/models/queue_result_spec.rb +72 -11
  270. data/spec/models/record_utterance_spec.rb +12 -13
  271. data/spec/models/recording_list_spec.rb +54 -11
  272. data/spec/models/recording_result_spec.rb +60 -11
  273. data/spec/models/redirect_spec.rb +6 -13
  274. data/spec/models/reject_spec.rb +4 -11
  275. data/spec/models/remove_from_conference_spec.rb +6 -13
  276. data/spec/models/say_spec.rb +7 -14
  277. data/spec/models/send_digits_spec.rb +12 -13
  278. data/spec/models/set_listen_spec.rb +6 -13
  279. data/spec/models/set_talk_spec.rb +6 -13
  280. data/spec/models/sms_spec.rb +6 -13
  281. data/spec/models/start_record_call_spec.rb +6 -13
  282. data/spec/models/terminate_conference_spec.rb +6 -13
  283. data/spec/models/update_call_request_spec.rb +18 -13
  284. data/spec/models/update_conference_participant_request_spec.rb +19 -12
  285. data/spec/models/update_conference_request_spec.rb +28 -11
  286. data/spec/quickstart_spec.rb +10 -0
  287. data/spec/spec_helper.rb +57 -6
  288. metadata +20 -38
  289. data/freeclimb-2.0.3.gem +0 -0
  290. data/freeclimb-2.1.0.gem +0 -0
  291. data/freeclimb-2.1.1.gem +0 -0
  292. data/freeclimb-2.1.2.gem +0 -0
  293. data/spec/api/web_mocks.rb +0 -473
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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
 
@@ -14,6 +14,7 @@ require 'date'
14
14
  require 'json'
15
15
  require 'logger'
16
16
  require 'tempfile'
17
+ require 'time'
17
18
  require 'typhoeus'
18
19
 
19
20
  module Freeclimb
@@ -30,7 +31,7 @@ module Freeclimb
30
31
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
31
32
  def initialize(config = Configuration.default)
32
33
  @config = config
33
- @user_agent = "FreeClimbSDK/2.2.0/ruby"
34
+ @user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
34
35
  @default_headers = {
35
36
  'Content-Type' => 'application/json',
36
37
  'User-Agent' => @user_agent
@@ -86,7 +87,7 @@ module Freeclimb
86
87
  # @option opts [Object] :body HTTP body (JSON/XML)
87
88
  # @return [Typhoeus::Request] A Typhoeus Request
88
89
  def build_request(http_method, path, opts = {})
89
- url = build_request_url(path)
90
+ url = build_request_url(path, opts)
90
91
  http_method = http_method.to_sym.downcase
91
92
 
92
93
  header_params = @default_headers.merge(opts[:header_params] || {})
@@ -155,6 +156,44 @@ module Freeclimb
155
156
  data
156
157
  end
157
158
 
159
+ # Save response body into a file in (the defined) temporary folder, using the filename
160
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
161
+ # The response body is written to the file in chunks in order to handle files which
162
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
163
+ # process can use.
164
+ #
165
+ # @see Configuration#temp_folder_path
166
+ def download_file(request)
167
+ tempfile = nil
168
+ encoding = nil
169
+ request.on_headers do |response|
170
+ content_disposition = response.headers['Content-Disposition']
171
+ if content_disposition && content_disposition =~ /filename=/i
172
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
173
+ prefix = sanitize_filename(filename)
174
+ else
175
+ prefix = 'download-'
176
+ end
177
+ prefix = prefix + '-' unless prefix.end_with?('-')
178
+ encoding = response.body.encoding
179
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
180
+ @tempfile = tempfile
181
+ end
182
+ request.on_body do |chunk|
183
+ chunk.force_encoding(encoding)
184
+ tempfile.write(chunk)
185
+ end
186
+ request.on_complete do |response|
187
+ if tempfile
188
+ tempfile.close
189
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
190
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
191
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
192
+ "explicitly with `tempfile.delete`"
193
+ end
194
+ end
195
+ end
196
+
158
197
  # Check if the given MIME is a JSON MIME.
159
198
  # JSON MIME examples:
160
199
  # application/json
@@ -191,7 +230,7 @@ module Freeclimb
191
230
  begin
192
231
  data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
193
232
  rescue JSON::ParserError => e
194
- if %w(String Date DateTime).include?(return_type)
233
+ if %w(String Date Time).include?(return_type)
195
234
  data = body
196
235
  else
197
236
  raise e
@@ -216,9 +255,9 @@ module Freeclimb
216
255
  data.to_f
217
256
  when 'Boolean'
218
257
  data == true
219
- when 'DateTime'
258
+ when 'Time'
220
259
  # parse date time (expecting ISO 8601 format)
221
- DateTime.parse data
260
+ Time.parse data
222
261
  when 'Date'
223
262
  # parse date time (expecting ISO 8601 format)
224
263
  Date.parse data
@@ -236,44 +275,9 @@ module Freeclimb
236
275
  data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
237
276
  end
238
277
  else
239
- # models, e.g. Pet
240
- Freeclimb.const_get(return_type).build_from_hash(data)
241
- end
242
- end
243
-
244
- # Save response body into a file in (the defined) temporary folder, using the filename
245
- # from the "Content-Disposition" header if provided, otherwise a random filename.
246
- # The response body is written to the file in chunks in order to handle files which
247
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
248
- # process can use.
249
- #
250
- # @see Configuration#temp_folder_path
251
- def download_file(request)
252
- tempfile = nil
253
- encoding = nil
254
- request.on_headers do |response|
255
- content_disposition = response.headers['Content-Disposition']
256
- if content_disposition && content_disposition =~ /filename=/i
257
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
258
- prefix = sanitize_filename(filename)
259
- else
260
- prefix = 'download-'
261
- end
262
- prefix = prefix + '-' unless prefix.end_with?('-')
263
- encoding = response.body.encoding
264
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
265
- @tempfile = tempfile
266
- end
267
- request.on_body do |chunk|
268
- chunk.force_encoding(encoding)
269
- tempfile.write(chunk)
270
- end
271
- request.on_complete do |response|
272
- tempfile.close if tempfile
273
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
274
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
275
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
276
- "explicitly with `tempfile.delete`"
278
+ # models (e.g. Pet) or oneOf
279
+ klass = Freeclimb.const_get(return_type)
280
+ klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
277
281
  end
278
282
  end
279
283
 
@@ -286,13 +290,13 @@ module Freeclimb
286
290
  filename.gsub(/.*[\/\\]/, '')
287
291
  end
288
292
 
289
- def build_request_url(path)
293
+ def build_request_url(path, opts = {})
290
294
  # Add leading and trailing slashes to path
291
295
  path = "/#{path}".gsub(/\/+/, '/')
292
- @config.base_url + path
296
+ @config.base_url(opts[:operation]) + path
293
297
  end
294
298
 
295
- # Update hearder and query params based on authentication settings.
299
+ # Update header and query params based on authentication settings.
296
300
  #
297
301
  # @param [Hash] header_params Header parameters
298
302
  # @param [Hash] query_params Query parameters
@@ -304,7 +308,7 @@ module Freeclimb
304
308
  case auth_setting[:in]
305
309
  when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
306
310
  when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
307
- else fail ArgumentError, 'Authentication token must be in `query` of `header`'
311
+ else fail ArgumentError, 'Authentication token must be in `query` or `header`'
308
312
  end
309
313
  end
310
314
  end
@@ -331,8 +335,8 @@ module Freeclimb
331
335
  # @param [Array] content_types array for Content-Type
332
336
  # @return [String] the Content-Type header (e.g. application/json)
333
337
  def select_header_content_type(content_types)
334
- # use application/json by default
335
- return 'application/json' if content_types.nil? || content_types.empty?
338
+ # return nil by default
339
+ return if content_types.nil? || content_types.empty?
336
340
  # use JSON when present, otherwise use the first one
337
341
  json_content_type = content_types.find { |s| json_mime?(s) }
338
342
  json_content_type || content_types.first
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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
 
@@ -21,6 +21,18 @@ module Freeclimb
21
21
  # Defines url base path
22
22
  attr_accessor :base_path
23
23
 
24
+ # Define server configuration index
25
+ attr_accessor :server_index
26
+
27
+ # Define server operation configuration index
28
+ attr_accessor :server_operation_index
29
+
30
+ # Default server variables
31
+ attr_accessor :server_variables
32
+
33
+ # Default server operation variables
34
+ attr_accessor :server_operation_variables
35
+
24
36
  # Defines API keys used with API Key authentications.
25
37
  #
26
38
  # @return [Hash] key: parameter name, value: parameter value (API key)
@@ -129,15 +141,19 @@ module Freeclimb
129
141
  @scheme = 'https'
130
142
  @host = 'www.freeclimb.com'
131
143
  @base_path = '/apiserver'
144
+ @server_index = 0
145
+ @server_operation_index = {}
146
+ @server_variables = {}
147
+ @server_operation_variables = {}
132
148
  @api_key = {}
133
149
  @api_key_prefix = {}
134
- @timeout = 0
135
150
  @client_side_validation = true
136
151
  @verify_ssl = true
137
152
  @verify_ssl_host = true
138
153
  @params_encoding = nil
139
154
  @cert_file = nil
140
155
  @key_file = nil
156
+ @timeout = 0
141
157
  @debugging = false
142
158
  @inject_format = false
143
159
  @force_ending_format = false
@@ -171,17 +187,23 @@ module Freeclimb
171
187
  @base_path = '' if @base_path == '/'
172
188
  end
173
189
 
174
- def base_url
175
- "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
190
+ # Returns base URL for specified operation based on server settings
191
+ def base_url(operation = nil)
192
+ index = server_operation_index.fetch(operation, server_index)
193
+ return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
194
+
195
+ server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
176
196
  end
177
197
 
178
198
  # Gets API key (with prefix if set).
179
199
  # @param [String] param_name the parameter name of API key auth
180
- def api_key_with_prefix(param_name)
200
+ def api_key_with_prefix(param_name, param_alias = nil)
201
+ key = @api_key[param_name]
202
+ key = @api_key.fetch(param_alias, key) unless param_alias.nil?
181
203
  if @api_key_prefix[param_name]
182
- "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
204
+ "#{@api_key_prefix[param_name]} #{key}"
183
205
  else
184
- @api_key[param_name]
206
+ key
185
207
  end
186
208
  end
187
209
 
@@ -213,12 +235,17 @@ module Freeclimb
213
235
  ]
214
236
  end
215
237
 
238
+ def operation_server_settings
239
+ {
240
+ }
241
+ end
242
+
216
243
  # Returns URL based on server settings
217
244
  #
218
245
  # @param index array index of the server settings
219
246
  # @param variables hash of variable and the corresponding value
220
- def server_url(index, variables = {})
221
- servers = server_settings
247
+ def server_url(index, variables = {}, servers = nil)
248
+ servers = server_settings if servers == nil
222
249
 
223
250
  # check array index out of bound
224
251
  if (index < 0 || index >= servers.size)
@@ -228,10 +255,12 @@ module Freeclimb
228
255
  server = servers[index]
229
256
  url = server[:url]
230
257
 
258
+ return url unless server.key? :variables
259
+
231
260
  # go through variable and assign a value
232
261
  server[:variables].each do |name, variable|
233
262
  if variables.key?(name)
234
- if (server[:variables][name][:enum_values].include? variables[name])
263
+ if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
235
264
  url.gsub! "{" + name.to_s + "}", variables[name]
236
265
  else
237
266
  fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
@@ -244,5 +273,6 @@ module Freeclimb
244
273
 
245
274
  url
246
275
  end
276
+
247
277
  end
248
278
  end
@@ -6,11 +6,12 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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 AccountRequest
@@ -28,6 +29,11 @@ module Freeclimb
28
29
  }
29
30
  end
30
31
 
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ attribute_map.values
35
+ end
36
+
31
37
  # Attribute type mapping.
32
38
  def self.openapi_types
33
39
  {
@@ -113,7 +119,9 @@ module Freeclimb
113
119
  def build_from_hash(attributes)
114
120
  return nil unless attributes.is_a?(Hash)
115
121
  self.class.openapi_types.each_pair do |key, type|
116
- if type =~ /\AArray<(.*)>/i
122
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
123
+ self.send("#{key}=", nil)
124
+ elsif type =~ /\AArray<(.*)>/i
117
125
  # check to ensure the input is an array given that the attribute
118
126
  # is documented as an array but the input is not
119
127
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -121,7 +129,7 @@ module Freeclimb
121
129
  end
122
130
  elsif !attributes[self.class.attribute_map[key]].nil?
123
131
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
124
- end # or else data not found in attributes(hash), not an issue as the data can be optional
132
+ end
125
133
  end
126
134
 
127
135
  self
@@ -133,8 +141,8 @@ module Freeclimb
133
141
  # @return [Object] Deserialized data
134
142
  def _deserialize(type, value)
135
143
  case type.to_sym
136
- when :DateTime
137
- DateTime.parse(value)
144
+ when :Time
145
+ Time.parse(value)
138
146
  when :Date
139
147
  Date.parse(value)
140
148
  when :String
@@ -164,7 +172,9 @@ module Freeclimb
164
172
  end
165
173
  end
166
174
  else # model
167
- Freeclimb.const_get(type).build_from_hash(value)
175
+ # models (e.g. Pet) or oneOf
176
+ klass = Freeclimb.const_get(type)
177
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
168
178
  end
169
179
  end
170
180
 
@@ -190,7 +200,7 @@ module Freeclimb
190
200
  is_nullable = self.class.openapi_nullable.include?(attr)
191
201
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
192
202
  end
193
-
203
+
194
204
  hash[param] = _to_hash(value)
195
205
  end
196
206
  hash
@@ -213,5 +223,7 @@ module Freeclimb
213
223
  value
214
224
  end
215
225
  end
226
+
216
227
  end
228
+
217
229
  end
@@ -6,11 +6,12 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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 AccountResult
@@ -29,7 +30,7 @@ module Freeclimb
29
30
  # String that uniquely identifies this account resource.
30
31
  attr_accessor :account_id
31
32
 
32
- # The API key assigned to this account. This token must be kept a secret by the customer.
33
+ # The API key assigned to this account. This key must be kept a secret by the customer.
33
34
  attr_accessor :api_key
34
35
 
35
36
  # A description for this account.
@@ -86,6 +87,11 @@ module Freeclimb
86
87
  }
87
88
  end
88
89
 
90
+ # Returns all the JSON keys this model knows about
91
+ def self.acceptable_attributes
92
+ attribute_map.values
93
+ end
94
+
89
95
  # Attribute type mapping.
90
96
  def self.openapi_types
91
97
  {
@@ -245,7 +251,9 @@ module Freeclimb
245
251
  def build_from_hash(attributes)
246
252
  return nil unless attributes.is_a?(Hash)
247
253
  self.class.openapi_types.each_pair do |key, type|
248
- if type =~ /\AArray<(.*)>/i
254
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
255
+ self.send("#{key}=", nil)
256
+ elsif type =~ /\AArray<(.*)>/i
249
257
  # check to ensure the input is an array given that the attribute
250
258
  # is documented as an array but the input is not
251
259
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -253,7 +261,7 @@ module Freeclimb
253
261
  end
254
262
  elsif !attributes[self.class.attribute_map[key]].nil?
255
263
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
256
- end # or else data not found in attributes(hash), not an issue as the data can be optional
264
+ end
257
265
  end
258
266
 
259
267
  self
@@ -265,8 +273,8 @@ module Freeclimb
265
273
  # @return [Object] Deserialized data
266
274
  def _deserialize(type, value)
267
275
  case type.to_sym
268
- when :DateTime
269
- DateTime.parse(value)
276
+ when :Time
277
+ Time.parse(value)
270
278
  when :Date
271
279
  Date.parse(value)
272
280
  when :String
@@ -296,7 +304,9 @@ module Freeclimb
296
304
  end
297
305
  end
298
306
  else # model
299
- Freeclimb.const_get(type).build_from_hash(value)
307
+ # models (e.g. Pet) or oneOf
308
+ klass = Freeclimb.const_get(type)
309
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
300
310
  end
301
311
  end
302
312
 
@@ -322,7 +332,7 @@ module Freeclimb
322
332
  is_nullable = self.class.openapi_nullable.include?(attr)
323
333
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
324
334
  end
325
-
335
+
326
336
  hash[param] = _to_hash(value)
327
337
  end
328
338
  hash
@@ -345,5 +355,7 @@ module Freeclimb
345
355
  value
346
356
  end
347
357
  end
358
+
348
359
  end
360
+
349
361
  end
@@ -6,18 +6,19 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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 AccountResultAllOf
17
18
  # String that uniquely identifies this account resource.
18
19
  attr_accessor :account_id
19
20
 
20
- # The API key assigned to this account. This token must be kept a secret by the customer.
21
+ # The API key assigned to this account. This key must be kept a secret by the customer.
21
22
  attr_accessor :api_key
22
23
 
23
24
  # A description for this account.
@@ -70,6 +71,11 @@ module Freeclimb
70
71
  }
71
72
  end
72
73
 
74
+ # Returns all the JSON keys this model knows about
75
+ def self.acceptable_attributes
76
+ attribute_map.values
77
+ end
78
+
73
79
  # Attribute type mapping.
74
80
  def self.openapi_types
75
81
  {
@@ -197,7 +203,9 @@ module Freeclimb
197
203
  def build_from_hash(attributes)
198
204
  return nil unless attributes.is_a?(Hash)
199
205
  self.class.openapi_types.each_pair do |key, type|
200
- if type =~ /\AArray<(.*)>/i
206
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
207
+ self.send("#{key}=", nil)
208
+ elsif type =~ /\AArray<(.*)>/i
201
209
  # check to ensure the input is an array given that the attribute
202
210
  # is documented as an array but the input is not
203
211
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -205,7 +213,7 @@ module Freeclimb
205
213
  end
206
214
  elsif !attributes[self.class.attribute_map[key]].nil?
207
215
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
208
- end # or else data not found in attributes(hash), not an issue as the data can be optional
216
+ end
209
217
  end
210
218
 
211
219
  self
@@ -217,8 +225,8 @@ module Freeclimb
217
225
  # @return [Object] Deserialized data
218
226
  def _deserialize(type, value)
219
227
  case type.to_sym
220
- when :DateTime
221
- DateTime.parse(value)
228
+ when :Time
229
+ Time.parse(value)
222
230
  when :Date
223
231
  Date.parse(value)
224
232
  when :String
@@ -248,7 +256,9 @@ module Freeclimb
248
256
  end
249
257
  end
250
258
  else # model
251
- Freeclimb.const_get(type).build_from_hash(value)
259
+ # models (e.g. Pet) or oneOf
260
+ klass = Freeclimb.const_get(type)
261
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
252
262
  end
253
263
  end
254
264
 
@@ -274,7 +284,7 @@ module Freeclimb
274
284
  is_nullable = self.class.openapi_nullable.include?(attr)
275
285
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
276
286
  end
277
-
287
+
278
288
  hash[param] = _to_hash(value)
279
289
  end
280
290
  hash
@@ -297,5 +307,7 @@ module Freeclimb
297
307
  value
298
308
  end
299
309
  end
310
+
300
311
  end
312
+
301
313
  end
@@ -6,11 +6,12 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
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 `AddToConference` command adds a Participant to a Conference. If this Participant currently is in another Conference, the Participant is first removed from that Conference. Two Call legs can be bridged together by creating a Conference and adding both Call legs to it via `AddToConference`.
@@ -61,6 +62,11 @@ module Freeclimb
61
62
  }
62
63
  end
63
64
 
65
+ # Returns all the JSON keys this model knows about, including the ones defined in its parent(s)
66
+ def self.acceptable_attributes
67
+ attribute_map.values.concat(superclass.acceptable_attributes)
68
+ end
69
+
64
70
  # Attribute type mapping.
65
71
  def self.openapi_types
66
72
  {
@@ -158,10 +164,6 @@ module Freeclimb
158
164
  invalid_properties.push('invalid value for "conference_id", conference_id cannot be nil.')
159
165
  end
160
166
 
161
- if @call_id.nil?
162
- invalid_properties.push('invalid value for "call_id", call_id cannot be nil.')
163
- end
164
-
165
167
  invalid_properties
166
168
  end
167
169
 
@@ -169,7 +171,6 @@ module Freeclimb
169
171
  # @return true if the model is valid
170
172
  def valid?
171
173
  return false if @conference_id.nil?
172
- return false if @call_id.nil?
173
174
  true && super
174
175
  end
175
176
 
@@ -216,7 +217,9 @@ module Freeclimb
216
217
  return nil unless attributes.is_a?(Hash)
217
218
  super(attributes)
218
219
  self.class.openapi_types.each_pair do |key, type|
219
- if type =~ /\AArray<(.*)>/i
220
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
221
+ self.send("#{key}=", nil)
222
+ elsif type =~ /\AArray<(.*)>/i
220
223
  # check to ensure the input is an array given that the attribute
221
224
  # is documented as an array but the input is not
222
225
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -224,7 +227,7 @@ module Freeclimb
224
227
  end
225
228
  elsif !attributes[self.class.attribute_map[key]].nil?
226
229
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
227
- end # or else data not found in attributes(hash), not an issue as the data can be optional
230
+ end
228
231
  end
229
232
 
230
233
  self
@@ -236,8 +239,8 @@ module Freeclimb
236
239
  # @return [Object] Deserialized data
237
240
  def _deserialize(type, value)
238
241
  case type.to_sym
239
- when :DateTime
240
- DateTime.parse(value)
242
+ when :Time
243
+ Time.parse(value)
241
244
  when :Date
242
245
  Date.parse(value)
243
246
  when :String
@@ -267,7 +270,9 @@ module Freeclimb
267
270
  end
268
271
  end
269
272
  else # model
270
- Freeclimb.const_get(type).build_from_hash(value)
273
+ # models (e.g. Pet) or oneOf
274
+ klass = Freeclimb.const_get(type)
275
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
271
276
  end
272
277
  end
273
278
 
@@ -293,7 +298,7 @@ module Freeclimb
293
298
  is_nullable = self.class.openapi_nullable.include?(attr)
294
299
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
295
300
  end
296
-
301
+
297
302
  hash[param] = _to_hash(value)
298
303
  end
299
304
  hash
@@ -316,5 +321,7 @@ module Freeclimb
316
321
  value
317
322
  end
318
323
  end
324
+
319
325
  end
326
+
320
327
  end