mux_ruby 1.9.0 → 2.0.0.pre.rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/Gemfile.lock +26 -37
  4. data/README.md +36 -13
  5. data/docs/AbridgedVideoView.md +33 -13
  6. data/docs/Asset.md +57 -26
  7. data/docs/AssetErrors.md +15 -4
  8. data/docs/AssetMaster.md +15 -4
  9. data/docs/AssetNonStandardInputReasons.md +29 -11
  10. data/docs/AssetRecordingTimes.md +15 -4
  11. data/docs/AssetResponse.md +13 -3
  12. data/docs/AssetStaticRenditions.md +15 -4
  13. data/docs/AssetStaticRenditionsFiles.md +23 -8
  14. data/docs/AssetsApi.md +387 -160
  15. data/docs/BreakdownValue.md +21 -7
  16. data/docs/CreateAssetRequest.md +27 -10
  17. data/docs/CreateLiveStreamRequest.md +25 -9
  18. data/docs/CreatePlaybackIDRequest.md +13 -3
  19. data/docs/CreatePlaybackIDResponse.md +13 -3
  20. data/docs/CreateSimulcastTargetRequest.md +17 -5
  21. data/docs/CreateTrackRequest.md +25 -9
  22. data/docs/CreateTrackResponse.md +13 -3
  23. data/docs/CreateUploadRequest.md +19 -6
  24. data/docs/DeliveryReport.md +27 -9
  25. data/docs/DeliveryUsageApi.md +40 -22
  26. data/docs/DimensionValue.md +15 -4
  27. data/docs/DimensionsApi.md +72 -34
  28. data/docs/DirectUploadsApi.md +131 -56
  29. data/docs/DisableLiveStreamResponse.md +13 -3
  30. data/docs/EnableLiveStreamResponse.md +13 -3
  31. data/docs/Error.md +27 -10
  32. data/docs/ErrorsApi.md +37 -19
  33. data/docs/ExportsApi.md +32 -13
  34. data/docs/FilterValue.md +15 -4
  35. data/docs/FiltersApi.md +71 -33
  36. data/docs/GetAssetInputInfoResponse.md +13 -3
  37. data/docs/GetAssetOrLiveStreamIdResponse.md +13 -3
  38. data/docs/GetAssetOrLiveStreamIdResponseData.md +17 -5
  39. data/docs/GetAssetOrLiveStreamIdResponseDataObject.md +15 -4
  40. data/docs/GetAssetPlaybackIDResponse.md +13 -3
  41. data/docs/GetMetricTimeseriesDataResponse.md +17 -5
  42. data/docs/GetOverallValuesResponse.md +17 -5
  43. data/docs/GetRealTimeBreakdownResponse.md +17 -5
  44. data/docs/GetRealTimeHistogramTimeseriesResponse.md +19 -6
  45. data/docs/GetRealTimeHistogramTimeseriesResponseMeta.md +13 -3
  46. data/docs/GetRealTimeTimeseriesResponse.md +17 -5
  47. data/docs/Incident.md +53 -23
  48. data/docs/IncidentBreakdown.md +17 -5
  49. data/docs/IncidentNotification.md +17 -5
  50. data/docs/IncidentNotificationRule.md +21 -7
  51. data/docs/IncidentResponse.md +15 -4
  52. data/docs/IncidentsApi.md +115 -59
  53. data/docs/InputFile.md +15 -4
  54. data/docs/InputInfo.md +15 -4
  55. data/docs/InputSettings.md +31 -12
  56. data/docs/InputSettingsOverlaySettings.md +25 -9
  57. data/docs/InputTrack.md +29 -11
  58. data/docs/Insight.md +23 -8
  59. data/docs/ListAllMetricValuesResponse.md +17 -5
  60. data/docs/ListAssetsResponse.md +13 -3
  61. data/docs/ListBreakdownValuesResponse.md +17 -5
  62. data/docs/ListDeliveryUsageResponse.md +19 -6
  63. data/docs/ListDimensionValuesResponse.md +17 -5
  64. data/docs/ListDimensionsResponse.md +17 -5
  65. data/docs/ListErrorsResponse.md +17 -5
  66. data/docs/ListExportsResponse.md +17 -5
  67. data/docs/ListFilterValuesResponse.md +17 -5
  68. data/docs/ListFiltersResponse.md +17 -5
  69. data/docs/ListFiltersResponseData.md +15 -4
  70. data/docs/ListIncidentsResponse.md +17 -5
  71. data/docs/ListInsightsResponse.md +17 -5
  72. data/docs/ListLiveStreamsResponse.md +13 -3
  73. data/docs/ListRealTimeDimensionsResponse.md +17 -5
  74. data/docs/ListRealTimeDimensionsResponseData.md +15 -4
  75. data/docs/ListRealTimeMetricsResponse.md +17 -5
  76. data/docs/ListRelatedIncidentsResponse.md +17 -5
  77. data/docs/ListSigningKeysResponse.md +13 -3
  78. data/docs/ListUploadsResponse.md +13 -3
  79. data/docs/ListVideoViewsResponse.md +17 -5
  80. data/docs/LiveStream.md +37 -15
  81. data/docs/LiveStreamResponse.md +13 -3
  82. data/docs/LiveStreamsApi.md +418 -170
  83. data/docs/Metric.md +21 -7
  84. data/docs/MetricsApi.md +206 -112
  85. data/docs/NotificationRule.md +17 -5
  86. data/docs/OverallValues.md +19 -6
  87. data/docs/PlaybackID.md +15 -4
  88. data/docs/PlaybackIDApi.md +34 -16
  89. data/docs/PlaybackPolicy.md +10 -2
  90. data/docs/RealTimeApi.md +172 -76
  91. data/docs/RealTimeBreakdownValue.md +21 -7
  92. data/docs/RealTimeHistogramTimeseriesBucket.md +15 -4
  93. data/docs/RealTimeHistogramTimeseriesBucketValues.md +15 -4
  94. data/docs/RealTimeHistogramTimeseriesDatapoint.md +25 -9
  95. data/docs/RealTimeTimeseriesDatapoint.md +17 -5
  96. data/docs/Score.md +23 -8
  97. data/docs/SignalLiveStreamCompleteResponse.md +13 -3
  98. data/docs/SigningKey.md +17 -5
  99. data/docs/SigningKeyResponse.md +13 -3
  100. data/docs/SimulcastTarget.md +21 -7
  101. data/docs/SimulcastTargetResponse.md +13 -3
  102. data/docs/Track.md +37 -15
  103. data/docs/URLSigningKeysApi.md +127 -51
  104. data/docs/UpdateAssetMP4SupportRequest.md +13 -3
  105. data/docs/UpdateAssetMasterAccessRequest.md +13 -3
  106. data/docs/Upload.md +29 -11
  107. data/docs/UploadError.md +15 -4
  108. data/docs/UploadResponse.md +13 -3
  109. data/docs/VideoView.md +235 -114
  110. data/docs/VideoViewEvent.md +19 -6
  111. data/docs/VideoViewResponse.md +15 -4
  112. data/docs/VideoViewsApi.md +76 -39
  113. data/gen/.gitignore +7 -0
  114. data/gen/Makefile +31 -0
  115. data/gen/generator-config.json +11 -0
  116. data/gen/openapitools.json +7 -0
  117. data/gen/package.json +17 -0
  118. data/gen/templates/Gemfile.mustache +11 -0
  119. data/gen/templates/README.mustache +158 -0
  120. data/gen/templates/Rakefile.mustache +10 -0
  121. data/gen/templates/api.mustache +206 -0
  122. data/gen/templates/api_client.mustache +264 -0
  123. data/gen/templates/api_client_faraday_partial.mustache +138 -0
  124. data/gen/templates/api_client_spec.mustache +220 -0
  125. data/gen/templates/api_client_typhoeus_partial.mustache +183 -0
  126. data/gen/templates/api_doc.mustache +118 -0
  127. data/gen/templates/api_error.mustache +67 -0
  128. data/gen/templates/api_info.mustache +12 -0
  129. data/gen/templates/api_test.mustache +47 -0
  130. data/gen/templates/base_object.mustache +120 -0
  131. data/gen/templates/configuration.mustache +349 -0
  132. data/gen/templates/configuration_spec.mustache +34 -0
  133. data/gen/templates/configuration_tls_faraday_partial.mustache +29 -0
  134. data/gen/templates/configuration_tls_typhoeus_partial.mustache +34 -0
  135. data/gen/templates/gem.mustache +40 -0
  136. data/gen/templates/gemspec.mustache +35 -0
  137. data/gen/templates/gitignore.mustache +39 -0
  138. data/gen/templates/model.mustache +26 -0
  139. data/gen/templates/model_doc.mustache +12 -0
  140. data/gen/templates/model_test.mustache +77 -0
  141. data/gen/templates/partial_model_enum_class.mustache +20 -0
  142. data/gen/templates/partial_model_generic.mustache +371 -0
  143. data/gen/templates/partial_model_generic_doc.mustache +28 -0
  144. data/gen/templates/partial_oneof_module.mustache +137 -0
  145. data/gen/templates/partial_oneof_module_doc.mustache +92 -0
  146. data/gen/templates/rspec.mustache +2 -0
  147. data/gen/templates/rubocop.mustache +148 -0
  148. data/gen/templates/spec_helper.mustache +103 -0
  149. data/gen/templates/version.mustache +7 -0
  150. data/gen/yarn.lock +1878 -0
  151. data/lib/mux_ruby.rb +9 -2
  152. data/lib/mux_ruby/api/assets_api.rb +279 -150
  153. data/lib/mux_ruby/api/delivery_usage_api.rb +28 -12
  154. data/lib/mux_ruby/api/dimensions_api.rb +55 -29
  155. data/lib/mux_ruby/api/direct_uploads_api.rb +90 -44
  156. data/lib/mux_ruby/api/errors_api.rb +32 -16
  157. data/lib/mux_ruby/api/exports_api.rb +28 -12
  158. data/lib/mux_ruby/api/filters_api.rb +53 -27
  159. data/lib/mux_ruby/api/incidents_api.rb +88 -46
  160. data/lib/mux_ruby/api/live_streams_api.rb +299 -157
  161. data/lib/mux_ruby/api/metrics_api.rb +175 -104
  162. data/lib/mux_ruby/api/playback_id_api.rb +31 -15
  163. data/lib/mux_ruby/api/real_time_api.rb +139 -77
  164. data/lib/mux_ruby/api/url_signing_keys_api.rb +89 -42
  165. data/lib/mux_ruby/api/video_views_api.rb +56 -29
  166. data/lib/mux_ruby/api_client.rb +94 -79
  167. data/lib/mux_ruby/api_error.rb +35 -7
  168. data/lib/mux_ruby/configuration.rb +50 -14
  169. data/lib/mux_ruby/models/abridged_video_view.rb +58 -24
  170. data/lib/mux_ruby/models/asset.rb +88 -61
  171. data/lib/mux_ruby/models/asset_errors.rb +50 -15
  172. data/lib/mux_ruby/models/asset_master.rb +52 -17
  173. data/lib/mux_ruby/models/asset_non_standard_input_reasons.rb +70 -35
  174. data/lib/mux_ruby/models/asset_recording_times.rb +50 -16
  175. data/lib/mux_ruby/models/asset_response.rb +48 -14
  176. data/lib/mux_ruby/models/asset_static_renditions.rb +53 -17
  177. data/lib/mux_ruby/models/asset_static_renditions_files.rb +58 -23
  178. data/lib/mux_ruby/models/breakdown_value.rb +52 -18
  179. data/lib/mux_ruby/models/create_asset_request.rb +64 -30
  180. data/lib/mux_ruby/models/create_live_stream_request.rb +57 -22
  181. data/lib/mux_ruby/models/create_playback_id_request.rb +48 -14
  182. data/lib/mux_ruby/models/create_playback_id_response.rb +48 -14
  183. data/lib/mux_ruby/models/create_simulcast_target_request.rb +50 -16
  184. data/lib/mux_ruby/models/create_track_request.rb +59 -25
  185. data/lib/mux_ruby/models/create_track_response.rb +48 -14
  186. data/lib/mux_ruby/models/create_upload_request.rb +52 -18
  187. data/lib/mux_ruby/models/delivery_report.rb +106 -21
  188. data/lib/mux_ruby/models/dimension_value.rb +49 -15
  189. data/lib/mux_ruby/models/disable_live_stream_response.rb +48 -14
  190. data/lib/mux_ruby/models/enable_live_stream_response.rb +48 -14
  191. data/lib/mux_ruby/models/error.rb +63 -21
  192. data/lib/mux_ruby/models/filter_value.rb +49 -15
  193. data/lib/mux_ruby/models/get_asset_input_info_response.rb +48 -14
  194. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response.rb +48 -14
  195. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data.rb +50 -16
  196. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data_object.rb +51 -17
  197. data/lib/mux_ruby/models/get_asset_playback_id_response.rb +48 -14
  198. data/lib/mux_ruby/models/get_metric_timeseries_data_response.rb +50 -16
  199. data/lib/mux_ruby/models/get_overall_values_response.rb +50 -16
  200. data/lib/mux_ruby/models/get_real_time_breakdown_response.rb +50 -16
  201. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response.rb +51 -17
  202. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response_meta.rb +48 -14
  203. data/lib/mux_ruby/models/get_real_time_timeseries_response.rb +50 -16
  204. data/lib/mux_ruby/models/incident.rb +68 -34
  205. data/lib/mux_ruby/models/incident_breakdown.rb +50 -16
  206. data/lib/mux_ruby/models/incident_notification.rb +50 -16
  207. data/lib/mux_ruby/models/incident_notification_rule.rb +52 -18
  208. data/lib/mux_ruby/models/incident_response.rb +49 -15
  209. data/lib/mux_ruby/models/input_file.rb +49 -15
  210. data/lib/mux_ruby/models/input_info.rb +49 -15
  211. data/lib/mux_ruby/models/input_settings.rb +64 -30
  212. data/lib/mux_ruby/models/input_settings_overlay_settings.rb +58 -24
  213. data/lib/mux_ruby/models/input_track.rb +56 -22
  214. data/lib/mux_ruby/models/insight.rb +53 -19
  215. data/lib/mux_ruby/models/list_all_metric_values_response.rb +50 -16
  216. data/lib/mux_ruby/models/list_assets_response.rb +48 -14
  217. data/lib/mux_ruby/models/list_breakdown_values_response.rb +50 -16
  218. data/lib/mux_ruby/models/list_delivery_usage_response.rb +51 -17
  219. data/lib/mux_ruby/models/list_dimension_values_response.rb +50 -16
  220. data/lib/mux_ruby/models/list_dimensions_response.rb +50 -16
  221. data/lib/mux_ruby/models/list_errors_response.rb +50 -16
  222. data/lib/mux_ruby/models/list_exports_response.rb +50 -16
  223. data/lib/mux_ruby/models/list_filter_values_response.rb +50 -16
  224. data/lib/mux_ruby/models/list_filters_response.rb +50 -16
  225. data/lib/mux_ruby/models/list_filters_response_data.rb +49 -15
  226. data/lib/mux_ruby/models/list_incidents_response.rb +50 -16
  227. data/lib/mux_ruby/models/list_insights_response.rb +50 -16
  228. data/lib/mux_ruby/models/list_live_streams_response.rb +48 -14
  229. data/lib/mux_ruby/models/list_real_time_dimensions_response.rb +50 -16
  230. data/lib/mux_ruby/models/list_real_time_dimensions_response_data.rb +49 -15
  231. data/lib/mux_ruby/models/list_real_time_metrics_response.rb +50 -16
  232. data/lib/mux_ruby/models/list_related_incidents_response.rb +50 -16
  233. data/lib/mux_ruby/models/list_signing_keys_response.rb +48 -14
  234. data/lib/mux_ruby/models/list_uploads_response.rb +48 -14
  235. data/lib/mux_ruby/models/list_video_views_response.rb +50 -16
  236. data/lib/mux_ruby/models/live_stream.rb +110 -28
  237. data/lib/mux_ruby/models/live_stream_response.rb +48 -14
  238. data/lib/mux_ruby/models/metric.rb +52 -18
  239. data/lib/mux_ruby/models/notification_rule.rb +50 -16
  240. data/lib/mux_ruby/models/overall_values.rb +51 -17
  241. data/lib/mux_ruby/models/playback_id.rb +49 -15
  242. data/lib/mux_ruby/models/playback_policy.rb +12 -6
  243. data/lib/mux_ruby/models/real_time_breakdown_value.rb +52 -18
  244. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket.rb +50 -16
  245. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket_values.rb +49 -15
  246. data/lib/mux_ruby/models/real_time_histogram_timeseries_datapoint.rb +54 -20
  247. data/lib/mux_ruby/models/real_time_timeseries_datapoint.rb +50 -16
  248. data/lib/mux_ruby/models/score.rb +53 -19
  249. data/lib/mux_ruby/models/signal_live_stream_complete_response.rb +48 -14
  250. data/lib/mux_ruby/models/signing_key.rb +53 -16
  251. data/lib/mux_ruby/models/signing_key_response.rb +48 -14
  252. data/lib/mux_ruby/models/simulcast_target.rb +54 -20
  253. data/lib/mux_ruby/models/simulcast_target_response.rb +48 -14
  254. data/lib/mux_ruby/models/track.rb +67 -33
  255. data/lib/mux_ruby/models/update_asset_master_access_request.rb +50 -16
  256. data/lib/mux_ruby/models/update_asset_mp4_support_request.rb +50 -16
  257. data/lib/mux_ruby/models/upload.rb +61 -25
  258. data/lib/mux_ruby/models/upload_error.rb +51 -15
  259. data/lib/mux_ruby/models/upload_response.rb +48 -14
  260. data/lib/mux_ruby/models/video_view.rb +166 -132
  261. data/lib/mux_ruby/models/video_view_event.rb +51 -17
  262. data/lib/mux_ruby/models/video_view_response.rb +49 -15
  263. data/lib/mux_ruby/version.rb +10 -3
  264. data/mux_ruby.gemspec +15 -17
  265. data/spec/api_client_spec.rb +10 -3
  266. data/spec/configuration_spec.rb +9 -2
  267. data/spec/spec_helper.rb +9 -2
  268. metadata +139 -242
@@ -1,9 +1,16 @@
1
1
  =begin
2
- # Mux Ruby - Copyright 2019 Mux Inc.
3
- # NOTE: This file is auto generated. Do not edit this file manually.
2
+ #Mux API
3
+
4
+ #Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
5
+
6
+ The version of the OpenAPI document: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.1
10
+
4
11
  =end
5
12
 
6
- require 'uri'
13
+ require 'cgi'
7
14
 
8
15
  module MuxRuby
9
16
  class URLSigningKeysApi
@@ -24,7 +31,7 @@ module MuxRuby
24
31
  # Create a URL signing key
25
32
  # Creates a new signing key pair. When creating a new signing key, the API will generate a 2048-bit RSA key-pair and return the private key and a generated key-id; the public key will be stored at Mux to validate signed tokens.
26
33
  # @param [Hash] opts the optional parameters
27
- # @return [Array<(SigningKeyResponse, Fixnum, Hash)>] SigningKeyResponse data, response status code and response headers
34
+ # @return [Array<(SigningKeyResponse, Integer, Hash)>] SigningKeyResponse data, response status code and response headers
28
35
  def create_url_signing_key_with_http_info(opts = {})
29
36
  if @api_client.config.debugging
30
37
  @api_client.config.logger.debug 'Calling API: URLSigningKeysApi.create_url_signing_key ...'
@@ -33,26 +40,36 @@ module MuxRuby
33
40
  local_var_path = '/video/v1/signing-keys'
34
41
 
35
42
  # query parameters
36
- query_params = {}
43
+ query_params = opts[:query_params] || {}
37
44
 
38
45
  # header parameters
39
- header_params = {}
46
+ header_params = opts[:header_params] || {}
40
47
  # HTTP header 'Accept' (if needed)
41
48
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
42
49
 
43
50
  # form parameters
44
- form_params = {}
51
+ form_params = opts[:form_params] || {}
45
52
 
46
53
  # http body (model)
47
- post_body = nil
48
- auth_names = ['accessToken']
49
- data, status_code, headers = @api_client.call_api(:POST, local_var_path,
54
+ post_body = opts[:debug_body]
55
+
56
+ # return_type
57
+ return_type = opts[:debug_return_type] || 'SigningKeyResponse'
58
+
59
+ # auth_names
60
+ auth_names = opts[:debug_auth_names] || ['accessToken']
61
+
62
+ new_options = opts.merge(
63
+ :operation => :"URLSigningKeysApi.create_url_signing_key",
50
64
  :header_params => header_params,
51
65
  :query_params => query_params,
52
66
  :form_params => form_params,
53
67
  :body => post_body,
54
68
  :auth_names => auth_names,
55
- :return_type => 'SigningKeyResponse')
69
+ :return_type => return_type
70
+ )
71
+
72
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
56
73
  if @api_client.config.debugging
57
74
  @api_client.config.logger.debug "API called: URLSigningKeysApi#create_url_signing_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
58
75
  end
@@ -61,7 +78,7 @@ module MuxRuby
61
78
 
62
79
  # Delete a URL signing key
63
80
  # Deletes an existing signing key. Use with caution, as this will invalidate any existing signatures and no URLs can be signed using the key again.
64
- # @param signing_key_id The ID of the signing key.
81
+ # @param signing_key_id [String] The ID of the signing key.
65
82
  # @param [Hash] opts the optional parameters
66
83
  # @return [nil]
67
84
  def delete_url_signing_key(signing_key_id, opts = {})
@@ -71,9 +88,9 @@ module MuxRuby
71
88
 
72
89
  # Delete a URL signing key
73
90
  # Deletes an existing signing key. Use with caution, as this will invalidate any existing signatures and no URLs can be signed using the key again.
74
- # @param signing_key_id The ID of the signing key.
91
+ # @param signing_key_id [String] The ID of the signing key.
75
92
  # @param [Hash] opts the optional parameters
76
- # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
93
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
77
94
  def delete_url_signing_key_with_http_info(signing_key_id, opts = {})
78
95
  if @api_client.config.debugging
79
96
  @api_client.config.logger.debug 'Calling API: URLSigningKeysApi.delete_url_signing_key ...'
@@ -83,26 +100,37 @@ module MuxRuby
83
100
  fail ArgumentError, "Missing the required parameter 'signing_key_id' when calling URLSigningKeysApi.delete_url_signing_key"
84
101
  end
85
102
  # resource path
86
- local_var_path = '/video/v1/signing-keys/{SIGNING_KEY_ID}'.sub('{' + 'SIGNING_KEY_ID' + '}', signing_key_id.to_s)
103
+ local_var_path = '/video/v1/signing-keys/{SIGNING_KEY_ID}'.sub('{' + 'SIGNING_KEY_ID' + '}', CGI.escape(signing_key_id.to_s))
87
104
 
88
105
  # query parameters
89
- query_params = {}
106
+ query_params = opts[:query_params] || {}
90
107
 
91
108
  # header parameters
92
- header_params = {}
109
+ header_params = opts[:header_params] || {}
93
110
 
94
111
  # form parameters
95
- form_params = {}
112
+ form_params = opts[:form_params] || {}
96
113
 
97
114
  # http body (model)
98
- post_body = nil
99
- auth_names = ['accessToken']
100
- data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
115
+ post_body = opts[:debug_body]
116
+
117
+ # return_type
118
+ return_type = opts[:debug_return_type]
119
+
120
+ # auth_names
121
+ auth_names = opts[:debug_auth_names] || ['accessToken']
122
+
123
+ new_options = opts.merge(
124
+ :operation => :"URLSigningKeysApi.delete_url_signing_key",
101
125
  :header_params => header_params,
102
126
  :query_params => query_params,
103
127
  :form_params => form_params,
104
128
  :body => post_body,
105
- :auth_names => auth_names)
129
+ :auth_names => auth_names,
130
+ :return_type => return_type
131
+ )
132
+
133
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
106
134
  if @api_client.config.debugging
107
135
  @api_client.config.logger.debug "API called: URLSigningKeysApi#delete_url_signing_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
108
136
  end
@@ -111,7 +139,7 @@ module MuxRuby
111
139
 
112
140
  # Retrieve a URL signing key
113
141
  # Retrieves the details of a URL signing key that has previously been created. Supply the unique signing key ID that was returned from your previous request, and Mux will return the corresponding signing key information. **The private key is not returned in this response.**
114
- # @param signing_key_id The ID of the signing key.
142
+ # @param signing_key_id [String] The ID of the signing key.
115
143
  # @param [Hash] opts the optional parameters
116
144
  # @return [SigningKeyResponse]
117
145
  def get_url_signing_key(signing_key_id, opts = {})
@@ -121,9 +149,9 @@ module MuxRuby
121
149
 
122
150
  # Retrieve a URL signing key
123
151
  # Retrieves the details of a URL signing key that has previously been created. Supply the unique signing key ID that was returned from your previous request, and Mux will return the corresponding signing key information. **The private key is not returned in this response.**
124
- # @param signing_key_id The ID of the signing key.
152
+ # @param signing_key_id [String] The ID of the signing key.
125
153
  # @param [Hash] opts the optional parameters
126
- # @return [Array<(SigningKeyResponse, Fixnum, Hash)>] SigningKeyResponse data, response status code and response headers
154
+ # @return [Array<(SigningKeyResponse, Integer, Hash)>] SigningKeyResponse data, response status code and response headers
127
155
  def get_url_signing_key_with_http_info(signing_key_id, opts = {})
128
156
  if @api_client.config.debugging
129
157
  @api_client.config.logger.debug 'Calling API: URLSigningKeysApi.get_url_signing_key ...'
@@ -133,29 +161,39 @@ module MuxRuby
133
161
  fail ArgumentError, "Missing the required parameter 'signing_key_id' when calling URLSigningKeysApi.get_url_signing_key"
134
162
  end
135
163
  # resource path
136
- local_var_path = '/video/v1/signing-keys/{SIGNING_KEY_ID}'.sub('{' + 'SIGNING_KEY_ID' + '}', signing_key_id.to_s)
164
+ local_var_path = '/video/v1/signing-keys/{SIGNING_KEY_ID}'.sub('{' + 'SIGNING_KEY_ID' + '}', CGI.escape(signing_key_id.to_s))
137
165
 
138
166
  # query parameters
139
- query_params = {}
167
+ query_params = opts[:query_params] || {}
140
168
 
141
169
  # header parameters
142
- header_params = {}
170
+ header_params = opts[:header_params] || {}
143
171
  # HTTP header 'Accept' (if needed)
144
172
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
145
173
 
146
174
  # form parameters
147
- form_params = {}
175
+ form_params = opts[:form_params] || {}
148
176
 
149
177
  # http body (model)
150
- post_body = nil
151
- auth_names = ['accessToken']
152
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
178
+ post_body = opts[:debug_body]
179
+
180
+ # return_type
181
+ return_type = opts[:debug_return_type] || 'SigningKeyResponse'
182
+
183
+ # auth_names
184
+ auth_names = opts[:debug_auth_names] || ['accessToken']
185
+
186
+ new_options = opts.merge(
187
+ :operation => :"URLSigningKeysApi.get_url_signing_key",
153
188
  :header_params => header_params,
154
189
  :query_params => query_params,
155
190
  :form_params => form_params,
156
191
  :body => post_body,
157
192
  :auth_names => auth_names,
158
- :return_type => 'SigningKeyResponse')
193
+ :return_type => return_type
194
+ )
195
+
196
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
159
197
  if @api_client.config.debugging
160
198
  @api_client.config.logger.debug "API called: URLSigningKeysApi#get_url_signing_key\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
161
199
  end
@@ -178,7 +216,7 @@ module MuxRuby
178
216
  # @param [Hash] opts the optional parameters
179
217
  # @option opts [Integer] :limit Number of items to include in the response
180
218
  # @option opts [Integer] :page Offset by this many pages, of the size of &#x60;limit&#x60;
181
- # @return [Array<(ListSigningKeysResponse, Fixnum, Hash)>] ListSigningKeysResponse data, response status code and response headers
219
+ # @return [Array<(ListSigningKeysResponse, Integer, Hash)>] ListSigningKeysResponse data, response status code and response headers
182
220
  def list_url_signing_keys_with_http_info(opts = {})
183
221
  if @api_client.config.debugging
184
222
  @api_client.config.logger.debug 'Calling API: URLSigningKeysApi.list_url_signing_keys ...'
@@ -187,33 +225,42 @@ module MuxRuby
187
225
  local_var_path = '/video/v1/signing-keys'
188
226
 
189
227
  # query parameters
190
- query_params = {}
228
+ query_params = opts[:query_params] || {}
191
229
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
192
230
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
193
231
 
194
232
  # header parameters
195
- header_params = {}
233
+ header_params = opts[:header_params] || {}
196
234
  # HTTP header 'Accept' (if needed)
197
235
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
198
236
 
199
237
  # form parameters
200
- form_params = {}
238
+ form_params = opts[:form_params] || {}
201
239
 
202
240
  # http body (model)
203
- post_body = nil
204
- auth_names = ['accessToken']
205
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
241
+ post_body = opts[:debug_body]
242
+
243
+ # return_type
244
+ return_type = opts[:debug_return_type] || 'ListSigningKeysResponse'
245
+
246
+ # auth_names
247
+ auth_names = opts[:debug_auth_names] || ['accessToken']
248
+
249
+ new_options = opts.merge(
250
+ :operation => :"URLSigningKeysApi.list_url_signing_keys",
206
251
  :header_params => header_params,
207
252
  :query_params => query_params,
208
253
  :form_params => form_params,
209
254
  :body => post_body,
210
255
  :auth_names => auth_names,
211
- :return_type => 'ListSigningKeysResponse')
256
+ :return_type => return_type
257
+ )
258
+
259
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
212
260
  if @api_client.config.debugging
213
261
  @api_client.config.logger.debug "API called: URLSigningKeysApi#list_url_signing_keys\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
214
262
  end
215
263
  return data, status_code, headers
216
264
  end
217
-
218
265
  end
219
266
  end
@@ -1,9 +1,16 @@
1
1
  =begin
2
- # Mux Ruby - Copyright 2019 Mux Inc.
3
- # NOTE: This file is auto generated. Do not edit this file manually.
2
+ #Mux API
3
+
4
+ #Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
5
+
6
+ The version of the OpenAPI document: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.1
10
+
4
11
  =end
5
12
 
6
- require 'uri'
13
+ require 'cgi'
7
14
 
8
15
  module MuxRuby
9
16
  class VideoViewsApi
@@ -14,7 +21,7 @@ module MuxRuby
14
21
  end
15
22
  # Get a Video View
16
23
  # Returns the details of a video view
17
- # @param video_view_id ID of the Video View
24
+ # @param video_view_id [String] ID of the Video View
18
25
  # @param [Hash] opts the optional parameters
19
26
  # @return [VideoViewResponse]
20
27
  def get_video_view(video_view_id, opts = {})
@@ -24,9 +31,9 @@ module MuxRuby
24
31
 
25
32
  # Get a Video View
26
33
  # Returns the details of a video view
27
- # @param video_view_id ID of the Video View
34
+ # @param video_view_id [String] ID of the Video View
28
35
  # @param [Hash] opts the optional parameters
29
- # @return [Array<(VideoViewResponse, Fixnum, Hash)>] VideoViewResponse data, response status code and response headers
36
+ # @return [Array<(VideoViewResponse, Integer, Hash)>] VideoViewResponse data, response status code and response headers
30
37
  def get_video_view_with_http_info(video_view_id, opts = {})
31
38
  if @api_client.config.debugging
32
39
  @api_client.config.logger.debug 'Calling API: VideoViewsApi.get_video_view ...'
@@ -36,29 +43,39 @@ module MuxRuby
36
43
  fail ArgumentError, "Missing the required parameter 'video_view_id' when calling VideoViewsApi.get_video_view"
37
44
  end
38
45
  # resource path
39
- local_var_path = '/data/v1/video-views/{VIDEO_VIEW_ID}'.sub('{' + 'VIDEO_VIEW_ID' + '}', video_view_id.to_s)
46
+ local_var_path = '/data/v1/video-views/{VIDEO_VIEW_ID}'.sub('{' + 'VIDEO_VIEW_ID' + '}', CGI.escape(video_view_id.to_s))
40
47
 
41
48
  # query parameters
42
- query_params = {}
49
+ query_params = opts[:query_params] || {}
43
50
 
44
51
  # header parameters
45
- header_params = {}
52
+ header_params = opts[:header_params] || {}
46
53
  # HTTP header 'Accept' (if needed)
47
54
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
48
55
 
49
56
  # form parameters
50
- form_params = {}
57
+ form_params = opts[:form_params] || {}
51
58
 
52
59
  # http body (model)
53
- post_body = nil
54
- auth_names = ['accessToken']
55
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
60
+ post_body = opts[:debug_body]
61
+
62
+ # return_type
63
+ return_type = opts[:debug_return_type] || 'VideoViewResponse'
64
+
65
+ # auth_names
66
+ auth_names = opts[:debug_auth_names] || ['accessToken']
67
+
68
+ new_options = opts.merge(
69
+ :operation => :"VideoViewsApi.get_video_view",
56
70
  :header_params => header_params,
57
71
  :query_params => query_params,
58
72
  :form_params => form_params,
59
73
  :body => post_body,
60
74
  :auth_names => auth_names,
61
- :return_type => 'VideoViewResponse')
75
+ :return_type => return_type
76
+ )
77
+
78
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
62
79
  if @api_client.config.debugging
63
80
  @api_client.config.logger.debug "API called: VideoViewsApi#get_video_view\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
64
81
  end
@@ -73,8 +90,8 @@ module MuxRuby
73
90
  # @option opts [String] :viewer_id Viewer ID to filter results by. This value may be provided by the integration, or may be created by Mux.
74
91
  # @option opts [Integer] :error_id Filter video views by the provided error ID (as returned in the error_type_id field in the list video views endpoint). If you provide any as the error ID, this will filter the results to those with any error.
75
92
  # @option opts [String] :order_direction Sort order.
76
- # @option opts [Array<String>] :filters Filter key:value pairs. Must be provided as an array query string parameter (e.g. filters[]&#x3D;operating_system:windows&amp;filters[]&#x3D;country:US). Possible filter names are the same as returned by the List Filters endpoint.
77
- # @option opts [Array<String>] :timeframe Timeframe window to limit results by. Must be provided as an array query string parameter (e.g. timeframe[]&#x3D;). Accepted formats are... * array of epoch timestamps e.g. timeframe[]&#x3D;1498867200&amp;timeframe[]&#x3D;1498953600 * duration string e.g. timeframe[]&#x3D;24:hours or timeframe[]&#x3D;7:days.
93
+ # @option opts [Array<String>] :filters Filter key:value pairs. Must be provided as an array query string parameter (e.g. filters[]&#x3D;operating_system:windows&amp;filters[]&#x3D;country:US). Possible filter names are the same as returned by the List Filters endpoint.
94
+ # @option opts [Array<String>] :timeframe Timeframe window to limit results by. Must be provided as an array query string parameter (e.g. timeframe[]&#x3D;). Accepted formats are... * array of epoch timestamps e.g. timeframe[]&#x3D;1498867200&amp;timeframe[]&#x3D;1498953600 * duration string e.g. timeframe[]&#x3D;24:hours or timeframe[]&#x3D;7:days.
78
95
  # @return [ListVideoViewsResponse]
79
96
  def list_video_views(opts = {})
80
97
  data, _status_code, _headers = list_video_views_with_http_info(opts)
@@ -89,21 +106,22 @@ module MuxRuby
89
106
  # @option opts [String] :viewer_id Viewer ID to filter results by. This value may be provided by the integration, or may be created by Mux.
90
107
  # @option opts [Integer] :error_id Filter video views by the provided error ID (as returned in the error_type_id field in the list video views endpoint). If you provide any as the error ID, this will filter the results to those with any error.
91
108
  # @option opts [String] :order_direction Sort order.
92
- # @option opts [Array<String>] :filters Filter key:value pairs. Must be provided as an array query string parameter (e.g. filters[]&#x3D;operating_system:windows&amp;filters[]&#x3D;country:US). Possible filter names are the same as returned by the List Filters endpoint.
93
- # @option opts [Array<String>] :timeframe Timeframe window to limit results by. Must be provided as an array query string parameter (e.g. timeframe[]&#x3D;). Accepted formats are... * array of epoch timestamps e.g. timeframe[]&#x3D;1498867200&amp;timeframe[]&#x3D;1498953600 * duration string e.g. timeframe[]&#x3D;24:hours or timeframe[]&#x3D;7:days.
94
- # @return [Array<(ListVideoViewsResponse, Fixnum, Hash)>] ListVideoViewsResponse data, response status code and response headers
109
+ # @option opts [Array<String>] :filters Filter key:value pairs. Must be provided as an array query string parameter (e.g. filters[]&#x3D;operating_system:windows&amp;filters[]&#x3D;country:US). Possible filter names are the same as returned by the List Filters endpoint.
110
+ # @option opts [Array<String>] :timeframe Timeframe window to limit results by. Must be provided as an array query string parameter (e.g. timeframe[]&#x3D;). Accepted formats are... * array of epoch timestamps e.g. timeframe[]&#x3D;1498867200&amp;timeframe[]&#x3D;1498953600 * duration string e.g. timeframe[]&#x3D;24:hours or timeframe[]&#x3D;7:days.
111
+ # @return [Array<(ListVideoViewsResponse, Integer, Hash)>] ListVideoViewsResponse data, response status code and response headers
95
112
  def list_video_views_with_http_info(opts = {})
96
113
  if @api_client.config.debugging
97
114
  @api_client.config.logger.debug 'Calling API: VideoViewsApi.list_video_views ...'
98
115
  end
99
- if @api_client.config.client_side_validation && opts[:'order_direction'] && !['asc', 'desc'].include?(opts[:'order_direction'])
100
- fail ArgumentError, 'invalid value for "order_direction", must be one of asc, desc'
116
+ allowable_values = ["asc", "desc"]
117
+ if @api_client.config.client_side_validation && opts[:'order_direction'] && !allowable_values.include?(opts[:'order_direction'])
118
+ fail ArgumentError, "invalid value for \"order_direction\", must be one of #{allowable_values}"
101
119
  end
102
120
  # resource path
103
121
  local_var_path = '/data/v1/video-views'
104
122
 
105
123
  # query parameters
106
- query_params = {}
124
+ query_params = opts[:query_params] || {}
107
125
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
108
126
  query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
109
127
  query_params[:'viewer_id'] = opts[:'viewer_id'] if !opts[:'viewer_id'].nil?
@@ -113,28 +131,37 @@ module MuxRuby
113
131
  query_params[:'timeframe[]'] = @api_client.build_collection_param(opts[:'timeframe'], :multi) if !opts[:'timeframe'].nil?
114
132
 
115
133
  # header parameters
116
- header_params = {}
134
+ header_params = opts[:header_params] || {}
117
135
  # HTTP header 'Accept' (if needed)
118
136
  header_params['Accept'] = @api_client.select_header_accept(['application/json'])
119
137
 
120
138
  # form parameters
121
- form_params = {}
139
+ form_params = opts[:form_params] || {}
122
140
 
123
141
  # http body (model)
124
- post_body = nil
125
- auth_names = ['accessToken']
126
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
142
+ post_body = opts[:debug_body]
143
+
144
+ # return_type
145
+ return_type = opts[:debug_return_type] || 'ListVideoViewsResponse'
146
+
147
+ # auth_names
148
+ auth_names = opts[:debug_auth_names] || ['accessToken']
149
+
150
+ new_options = opts.merge(
151
+ :operation => :"VideoViewsApi.list_video_views",
127
152
  :header_params => header_params,
128
153
  :query_params => query_params,
129
154
  :form_params => form_params,
130
155
  :body => post_body,
131
156
  :auth_names => auth_names,
132
- :return_type => 'ListVideoViewsResponse')
157
+ :return_type => return_type
158
+ )
159
+
160
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
133
161
  if @api_client.config.debugging
134
162
  @api_client.config.logger.debug "API called: VideoViewsApi#list_video_views\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
135
163
  end
136
164
  return data, status_code, headers
137
165
  end
138
-
139
166
  end
140
167
  end
@@ -1,14 +1,21 @@
1
1
  =begin
2
- # Mux Ruby - Copyright 2019 Mux Inc.
3
- # NOTE: This file is auto generated. Do not edit this file manually.
2
+ #Mux API
3
+
4
+ #Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
5
+
6
+ The version of the OpenAPI document: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.1
10
+
4
11
  =end
5
12
 
6
13
  require 'date'
7
14
  require 'json'
8
15
  require 'logger'
9
16
  require 'tempfile'
17
+ require 'time'
10
18
  require 'typhoeus'
11
- require 'uri'
12
19
 
13
20
  module MuxRuby
14
21
  class ApiClient
@@ -37,7 +44,7 @@ module MuxRuby
37
44
 
38
45
  # Call an API with given options.
39
46
  #
40
- # @return [Array<(Object, Fixnum, Hash)>] an array of 3 elements:
47
+ # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
41
48
  # the data deserialized from response body (could be nil), response status code and response headers.
42
49
  def call_api(http_method, path, opts = {})
43
50
  request = build_request(http_method, path, opts)
@@ -74,6 +81,11 @@ module MuxRuby
74
81
  :response_headers => response.headers,
75
82
  :response_body => response.body,
76
83
  :message => response.status_message)
84
+ elsif response.code.between?(400, 499)
85
+ fail ClientError.new(:code => response.code,
86
+ :response_headers => response.headers,
87
+ :response_body => response.body,
88
+ :message => response.status_message)
77
89
  elsif response.code.between?(500, 599)
78
90
  fail ServiceError.new(:code => response.code,
79
91
  :response_headers => response.headers,
@@ -105,7 +117,7 @@ module MuxRuby
105
117
  # @option opts [Object] :body HTTP body (JSON/XML)
106
118
  # @return [Typhoeus::Request] A Typhoeus Request
107
119
  def build_request(http_method, path, opts = {})
108
- url = build_request_url(path)
120
+ url = build_request_url(path, opts)
109
121
  http_method = http_method.to_sym.downcase
110
122
 
111
123
  header_params = @default_headers.merge(opts[:header_params] || {})
@@ -121,7 +133,7 @@ module MuxRuby
121
133
  :method => http_method,
122
134
  :headers => header_params,
123
135
  :params => query_params,
124
- :params_encoding => :multi,
136
+ :params_encoding => @config.params_encoding,
125
137
  :timeout => @config.timeout,
126
138
  :ssl_verifypeer => @config.verify_ssl,
127
139
  :ssl_verifyhost => _verify_ssl_host,
@@ -146,6 +158,72 @@ module MuxRuby
146
158
  request
147
159
  end
148
160
 
161
+ # Builds the HTTP request body
162
+ #
163
+ # @param [Hash] header_params Header parameters
164
+ # @param [Hash] form_params Query parameters
165
+ # @param [Object] body HTTP body (JSON/XML)
166
+ # @return [String] HTTP body data in the form of string
167
+ def build_request_body(header_params, form_params, body)
168
+ # http form
169
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
170
+ header_params['Content-Type'] == 'multipart/form-data'
171
+ data = {}
172
+ form_params.each do |key, value|
173
+ case value
174
+ when ::File, ::Array, nil
175
+ # let typhoeus handle File, Array and nil parameters
176
+ data[key] = value
177
+ else
178
+ data[key] = value.to_s
179
+ end
180
+ end
181
+ elsif body
182
+ data = body.is_a?(String) ? body : body.to_json
183
+ else
184
+ data = nil
185
+ end
186
+ data
187
+ end
188
+
189
+ # Save response body into a file in (the defined) temporary folder, using the filename
190
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
191
+ # The response body is written to the file in chunks in order to handle files which
192
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
193
+ # process can use.
194
+ #
195
+ # @see Configuration#temp_folder_path
196
+ def download_file(request)
197
+ tempfile = nil
198
+ encoding = nil
199
+ request.on_headers do |response|
200
+ content_disposition = response.headers['Content-Disposition']
201
+ if content_disposition && content_disposition =~ /filename=/i
202
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
203
+ prefix = sanitize_filename(filename)
204
+ else
205
+ prefix = 'download-'
206
+ end
207
+ prefix = prefix + '-' unless prefix.end_with?('-')
208
+ encoding = response.body.encoding
209
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
210
+ @tempfile = tempfile
211
+ end
212
+ request.on_body do |chunk|
213
+ chunk.force_encoding(encoding)
214
+ tempfile.write(chunk)
215
+ end
216
+ request.on_complete do |response|
217
+ if tempfile
218
+ tempfile.close
219
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
220
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
221
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
222
+ "explicitly with `tempfile.delete`"
223
+ end
224
+ end
225
+ end
226
+
149
227
  # Check if the given MIME is a JSON MIME.
150
228
  # JSON MIME examples:
151
229
  # application/json
@@ -182,7 +260,7 @@ module MuxRuby
182
260
  begin
183
261
  data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
184
262
  rescue JSON::ParserError => e
185
- if %w(String Date DateTime).include?(return_type)
263
+ if %w(String Date Time).include?(return_type)
186
264
  data = body
187
265
  else
188
266
  raise e
@@ -205,11 +283,11 @@ module MuxRuby
205
283
  data.to_i
206
284
  when 'Float'
207
285
  data.to_f
208
- when 'BOOLEAN'
286
+ when 'Boolean'
209
287
  data == true
210
- when 'DateTime'
288
+ when 'Time'
211
289
  # parse date time (expecting ISO 8601 format)
212
- DateTime.parse data
290
+ Time.parse data
213
291
  when 'Date'
214
292
  # parse date time (expecting ISO 8601 format)
215
293
  Date.parse data
@@ -227,44 +305,9 @@ module MuxRuby
227
305
  data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
228
306
  end
229
307
  else
230
- # models, e.g. Pet
231
- MuxRuby.const_get(return_type).build_from_hash(data)
232
- end
233
- end
234
-
235
- # Save response body into a file in (the defined) temporary folder, using the filename
236
- # from the "Content-Disposition" header if provided, otherwise a random filename.
237
- # The response body is written to the file in chunks in order to handle files which
238
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
239
- # process can use.
240
- #
241
- # @see Configuration#temp_folder_path
242
- def download_file(request)
243
- tempfile = nil
244
- encoding = nil
245
- request.on_headers do |response|
246
- content_disposition = response.headers['Content-Disposition']
247
- if content_disposition && content_disposition =~ /filename=/i
248
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
249
- prefix = sanitize_filename(filename)
250
- else
251
- prefix = 'download-'
252
- end
253
- prefix = prefix + '-' unless prefix.end_with?('-')
254
- encoding = response.body.encoding
255
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
256
- @tempfile = tempfile
257
- end
258
- request.on_body do |chunk|
259
- chunk.force_encoding(encoding)
260
- tempfile.write(chunk)
261
- end
262
- request.on_complete do |response|
263
- tempfile.close if tempfile
264
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
265
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
266
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
267
- "explicitly with `tempfile.delete`"
308
+ # models (e.g. Pet) or oneOf
309
+ klass = MuxRuby.const_get(return_type)
310
+ klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
268
311
  end
269
312
  end
270
313
 
@@ -277,38 +320,10 @@ module MuxRuby
277
320
  filename.gsub(/.*[\/\\]/, '')
278
321
  end
279
322
 
280
- def build_request_url(path)
323
+ def build_request_url(path, opts = {})
281
324
  # Add leading and trailing slashes to path
282
325
  path = "/#{path}".gsub(/\/+/, '/')
283
- "#{@config.base_url}#{path}"
284
- end
285
-
286
- # Builds the HTTP request body
287
- #
288
- # @param [Hash] header_params Header parameters
289
- # @param [Hash] form_params Query parameters
290
- # @param [Object] body HTTP body (JSON/XML)
291
- # @return [String] HTTP body data in the form of string
292
- def build_request_body(header_params, form_params, body)
293
- # http form
294
- if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
295
- header_params['Content-Type'] == 'multipart/form-data'
296
- data = {}
297
- form_params.each do |key, value|
298
- case value
299
- when ::File, ::Array, nil
300
- # let typhoeus handle File, Array and nil parameters
301
- data[key] = value
302
- else
303
- data[key] = value.to_s
304
- end
305
- end
306
- elsif body
307
- data = body.is_a?(String) ? body : body.to_json
308
- else
309
- data = nil
310
- end
311
- data
326
+ @config.base_url(opts[:operation]) + path
312
327
  end
313
328
 
314
329
  # Update hearder and query params based on authentication settings.
@@ -323,7 +338,7 @@ module MuxRuby
323
338
  case auth_setting[:in]
324
339
  when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
325
340
  when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
326
- else fail ArgumentError, 'Authentication token must be in `query` of `header`'
341
+ else fail ArgumentError, 'Authentication token must be in `query` or `header`'
327
342
  end
328
343
  end
329
344
  end