mux_ruby 1.5.1 → 2.0.0.pre.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/Gemfile.lock +26 -37
  4. data/README.md +38 -12
  5. data/docs/AbridgedVideoView.md +33 -13
  6. data/docs/Asset.md +57 -23
  7. data/docs/AssetErrors.md +15 -4
  8. data/docs/AssetMaster.md +15 -4
  9. data/docs/AssetNonStandardInputReasons.md +34 -0
  10. data/docs/AssetRecordingTimes.md +20 -0
  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 +391 -160
  15. data/docs/BreakdownValue.md +21 -7
  16. data/docs/CreateAssetRequest.md +27 -10
  17. data/docs/CreateLiveStreamRequest.md +25 -8
  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 +20 -0
  27. data/docs/DimensionsApi.md +156 -0
  28. data/docs/DirectUploadsApi.md +131 -56
  29. data/docs/DisableLiveStreamResponse.md +18 -0
  30. data/docs/EnableLiveStreamResponse.md +18 -0
  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 +73 -35
  36. data/docs/GetAssetInputInfoResponse.md +13 -3
  37. data/docs/GetAssetOrLiveStreamIdResponse.md +18 -0
  38. data/docs/GetAssetOrLiveStreamIdResponseData.md +22 -0
  39. data/docs/GetAssetOrLiveStreamIdResponseDataObject.md +20 -0
  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 +22 -0
  44. data/docs/GetRealTimeHistogramTimeseriesResponse.md +24 -0
  45. data/docs/GetRealTimeHistogramTimeseriesResponseMeta.md +18 -0
  46. data/docs/GetRealTimeTimeseriesResponse.md +22 -0
  47. data/docs/Incident.md +58 -0
  48. data/docs/IncidentBreakdown.md +22 -0
  49. data/docs/IncidentNotification.md +22 -0
  50. data/docs/IncidentNotificationRule.md +26 -0
  51. data/docs/IncidentResponse.md +20 -0
  52. data/docs/IncidentsApi.md +242 -0
  53. data/docs/InputFile.md +15 -4
  54. data/docs/InputInfo.md +15 -4
  55. data/docs/InputSettings.md +31 -10
  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 +22 -0
  64. data/docs/ListDimensionsResponse.md +22 -0
  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 +22 -0
  71. data/docs/ListInsightsResponse.md +17 -5
  72. data/docs/ListLiveStreamsResponse.md +13 -3
  73. data/docs/ListRealTimeDimensionsResponse.md +22 -0
  74. data/docs/ListRealTimeDimensionsResponseData.md +20 -0
  75. data/docs/ListRealTimeMetricsResponse.md +22 -0
  76. data/docs/ListRelatedIncidentsResponse.md +22 -0
  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 +497 -145
  83. data/docs/Metric.md +21 -7
  84. data/docs/MetricsApi.md +206 -112
  85. data/docs/NotificationRule.md +22 -0
  86. data/docs/OverallValues.md +19 -6
  87. data/docs/PlaybackID.md +15 -4
  88. data/docs/PlaybackIDApi.md +78 -0
  89. data/docs/PlaybackPolicy.md +10 -2
  90. data/docs/RealTimeApi.md +376 -0
  91. data/docs/RealTimeBreakdownValue.md +26 -0
  92. data/docs/RealTimeHistogramTimeseriesBucket.md +20 -0
  93. data/docs/RealTimeHistogramTimeseriesBucketValues.md +20 -0
  94. data/docs/RealTimeHistogramTimeseriesDatapoint.md +30 -0
  95. data/docs/RealTimeTimeseriesDatapoint.md +22 -0
  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 -112
  110. data/docs/VideoViewEvent.md +19 -6
  111. data/docs/VideoViewResponse.md +15 -4
  112. data/docs/VideoViewsApi.md +76 -39
  113. data/examples/data/exercise-dimensions.rb +29 -0
  114. data/examples/data/exercise-incidents.rb +29 -0
  115. data/examples/data/exercise-realtime.rb +60 -0
  116. data/examples/video/exercise-assets.rb +21 -0
  117. data/examples/video/exercise-live-streams.rb +30 -0
  118. data/gen/.gitignore +7 -0
  119. data/gen/Makefile +31 -0
  120. data/gen/generator-config.json +11 -0
  121. data/gen/openapitools.json +7 -0
  122. data/gen/package.json +17 -0
  123. data/gen/templates/Gemfile.mustache +11 -0
  124. data/gen/templates/README.mustache +158 -0
  125. data/gen/templates/Rakefile.mustache +10 -0
  126. data/gen/templates/api.mustache +206 -0
  127. data/gen/templates/api_client.mustache +264 -0
  128. data/gen/templates/api_client_faraday_partial.mustache +138 -0
  129. data/gen/templates/api_client_spec.mustache +220 -0
  130. data/gen/templates/api_client_typhoeus_partial.mustache +183 -0
  131. data/gen/templates/api_doc.mustache +118 -0
  132. data/gen/templates/api_error.mustache +67 -0
  133. data/gen/templates/api_info.mustache +12 -0
  134. data/gen/templates/api_test.mustache +47 -0
  135. data/gen/templates/base_object.mustache +120 -0
  136. data/gen/templates/configuration.mustache +349 -0
  137. data/gen/templates/configuration_spec.mustache +34 -0
  138. data/gen/templates/configuration_tls_faraday_partial.mustache +29 -0
  139. data/gen/templates/configuration_tls_typhoeus_partial.mustache +34 -0
  140. data/gen/templates/gem.mustache +40 -0
  141. data/gen/templates/gemspec.mustache +35 -0
  142. data/gen/templates/gitignore.mustache +39 -0
  143. data/gen/templates/model.mustache +26 -0
  144. data/gen/templates/model_doc.mustache +12 -0
  145. data/gen/templates/model_test.mustache +77 -0
  146. data/gen/templates/partial_model_enum_class.mustache +20 -0
  147. data/gen/templates/partial_model_generic.mustache +371 -0
  148. data/gen/templates/partial_model_generic_doc.mustache +28 -0
  149. data/gen/templates/partial_oneof_module.mustache +137 -0
  150. data/gen/templates/partial_oneof_module_doc.mustache +92 -0
  151. data/gen/templates/rspec.mustache +2 -0
  152. data/gen/templates/rubocop.mustache +148 -0
  153. data/gen/templates/spec_helper.mustache +103 -0
  154. data/gen/templates/version.mustache +7 -0
  155. data/gen/yarn.lock +1878 -0
  156. data/lib/mux_ruby.rb +43 -2
  157. data/lib/mux_ruby/api/assets_api.rb +283 -150
  158. data/lib/mux_ruby/api/delivery_usage_api.rb +28 -12
  159. data/lib/mux_ruby/api/dimensions_api.rb +154 -0
  160. data/lib/mux_ruby/api/direct_uploads_api.rb +90 -44
  161. data/lib/mux_ruby/api/errors_api.rb +32 -16
  162. data/lib/mux_ruby/api/exports_api.rb +28 -12
  163. data/lib/mux_ruby/api/filters_api.rb +57 -31
  164. data/lib/mux_ruby/api/incidents_api.rb +259 -0
  165. data/lib/mux_ruby/api/live_streams_api.rb +381 -133
  166. data/lib/mux_ruby/api/metrics_api.rb +175 -104
  167. data/lib/mux_ruby/api/playback_id_api.rb +85 -0
  168. data/lib/mux_ruby/api/real_time_api.rb +373 -0
  169. data/lib/mux_ruby/api/url_signing_keys_api.rb +89 -42
  170. data/lib/mux_ruby/api/video_views_api.rb +56 -29
  171. data/lib/mux_ruby/api_client.rb +106 -91
  172. data/lib/mux_ruby/api_error.rb +35 -7
  173. data/lib/mux_ruby/configuration.rb +50 -14
  174. data/lib/mux_ruby/models/abridged_video_view.rb +58 -24
  175. data/lib/mux_ruby/models/asset.rb +147 -53
  176. data/lib/mux_ruby/models/asset_errors.rb +52 -15
  177. data/lib/mux_ruby/models/asset_master.rb +85 -15
  178. data/lib/mux_ruby/models/asset_non_standard_input_reasons.rb +370 -0
  179. data/lib/mux_ruby/models/asset_recording_times.rb +229 -0
  180. data/lib/mux_ruby/models/asset_response.rb +48 -14
  181. data/lib/mux_ruby/models/asset_static_renditions.rb +55 -19
  182. data/lib/mux_ruby/models/asset_static_renditions_files.rb +60 -25
  183. data/lib/mux_ruby/models/breakdown_value.rb +52 -18
  184. data/lib/mux_ruby/models/create_asset_request.rb +70 -30
  185. data/lib/mux_ruby/models/create_live_stream_request.rb +70 -24
  186. data/lib/mux_ruby/models/create_playback_id_request.rb +48 -14
  187. data/lib/mux_ruby/models/create_playback_id_response.rb +48 -14
  188. data/lib/mux_ruby/models/create_simulcast_target_request.rb +50 -16
  189. data/lib/mux_ruby/models/create_track_request.rb +65 -27
  190. data/lib/mux_ruby/models/create_track_response.rb +48 -14
  191. data/lib/mux_ruby/models/create_upload_request.rb +52 -18
  192. data/lib/mux_ruby/models/delivery_report.rb +106 -21
  193. data/lib/mux_ruby/models/dimension_value.rb +227 -0
  194. data/lib/mux_ruby/models/disable_live_stream_response.rb +218 -0
  195. data/lib/mux_ruby/models/enable_live_stream_response.rb +218 -0
  196. data/lib/mux_ruby/models/error.rb +63 -21
  197. data/lib/mux_ruby/models/filter_value.rb +49 -15
  198. data/lib/mux_ruby/models/get_asset_input_info_response.rb +48 -14
  199. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response.rb +218 -0
  200. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data.rb +237 -0
  201. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data_object.rb +264 -0
  202. data/lib/mux_ruby/models/get_asset_playback_id_response.rb +48 -14
  203. data/lib/mux_ruby/models/get_metric_timeseries_data_response.rb +50 -16
  204. data/lib/mux_ruby/models/get_overall_values_response.rb +50 -16
  205. data/lib/mux_ruby/models/get_real_time_breakdown_response.rb +240 -0
  206. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response.rb +249 -0
  207. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response_meta.rb +220 -0
  208. data/lib/mux_ruby/models/get_real_time_timeseries_response.rb +240 -0
  209. data/lib/mux_ruby/models/incident.rb +404 -0
  210. data/lib/mux_ruby/models/incident_breakdown.rb +236 -0
  211. data/lib/mux_ruby/models/incident_notification.rb +236 -0
  212. data/lib/mux_ruby/models/incident_notification_rule.rb +256 -0
  213. data/lib/mux_ruby/models/incident_response.rb +229 -0
  214. data/lib/mux_ruby/models/input_file.rb +49 -15
  215. data/lib/mux_ruby/models/input_info.rb +49 -15
  216. data/lib/mux_ruby/models/input_settings.rb +91 -30
  217. data/lib/mux_ruby/models/input_settings_overlay_settings.rb +68 -26
  218. data/lib/mux_ruby/models/input_track.rb +56 -22
  219. data/lib/mux_ruby/models/insight.rb +53 -19
  220. data/lib/mux_ruby/models/list_all_metric_values_response.rb +50 -16
  221. data/lib/mux_ruby/models/list_assets_response.rb +48 -14
  222. data/lib/mux_ruby/models/list_breakdown_values_response.rb +50 -16
  223. data/lib/mux_ruby/models/list_delivery_usage_response.rb +51 -17
  224. data/lib/mux_ruby/models/list_dimension_values_response.rb +240 -0
  225. data/lib/mux_ruby/models/list_dimensions_response.rb +238 -0
  226. data/lib/mux_ruby/models/list_errors_response.rb +50 -16
  227. data/lib/mux_ruby/models/list_exports_response.rb +50 -16
  228. data/lib/mux_ruby/models/list_filter_values_response.rb +50 -16
  229. data/lib/mux_ruby/models/list_filters_response.rb +50 -16
  230. data/lib/mux_ruby/models/list_filters_response_data.rb +49 -15
  231. data/lib/mux_ruby/models/list_incidents_response.rb +240 -0
  232. data/lib/mux_ruby/models/list_insights_response.rb +50 -16
  233. data/lib/mux_ruby/models/list_live_streams_response.rb +48 -14
  234. data/lib/mux_ruby/models/list_real_time_dimensions_response.rb +240 -0
  235. data/lib/mux_ruby/models/list_real_time_dimensions_response_data.rb +227 -0
  236. data/lib/mux_ruby/models/list_real_time_metrics_response.rb +240 -0
  237. data/lib/mux_ruby/models/list_related_incidents_response.rb +240 -0
  238. data/lib/mux_ruby/models/list_signing_keys_response.rb +48 -14
  239. data/lib/mux_ruby/models/list_uploads_response.rb +48 -14
  240. data/lib/mux_ruby/models/list_video_views_response.rb +50 -16
  241. data/lib/mux_ruby/models/live_stream.rb +111 -29
  242. data/lib/mux_ruby/models/live_stream_response.rb +48 -14
  243. data/lib/mux_ruby/models/metric.rb +52 -18
  244. data/lib/mux_ruby/models/notification_rule.rb +236 -0
  245. data/lib/mux_ruby/models/overall_values.rb +51 -17
  246. data/lib/mux_ruby/models/playback_id.rb +50 -15
  247. data/lib/mux_ruby/models/playback_policy.rb +12 -6
  248. data/lib/mux_ruby/models/real_time_breakdown_value.rb +254 -0
  249. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket.rb +227 -0
  250. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket_values.rb +227 -0
  251. data/lib/mux_ruby/models/real_time_histogram_timeseries_datapoint.rb +274 -0
  252. data/lib/mux_ruby/models/real_time_timeseries_datapoint.rb +236 -0
  253. data/lib/mux_ruby/models/score.rb +53 -19
  254. data/lib/mux_ruby/models/signal_live_stream_complete_response.rb +48 -14
  255. data/lib/mux_ruby/models/signing_key.rb +53 -16
  256. data/lib/mux_ruby/models/signing_key_response.rb +48 -14
  257. data/lib/mux_ruby/models/simulcast_target.rb +55 -21
  258. data/lib/mux_ruby/models/simulcast_target_response.rb +48 -14
  259. data/lib/mux_ruby/models/track.rb +92 -33
  260. data/lib/mux_ruby/models/update_asset_master_access_request.rb +51 -17
  261. data/lib/mux_ruby/models/update_asset_mp4_support_request.rb +51 -17
  262. data/lib/mux_ruby/models/upload.rb +62 -26
  263. data/lib/mux_ruby/models/upload_error.rb +51 -15
  264. data/lib/mux_ruby/models/upload_response.rb +48 -14
  265. data/lib/mux_ruby/models/video_view.rb +200 -148
  266. data/lib/mux_ruby/models/video_view_event.rb +51 -17
  267. data/lib/mux_ruby/models/video_view_response.rb +49 -15
  268. data/lib/mux_ruby/version.rb +10 -3
  269. data/mux_ruby.gemspec +15 -15
  270. data/spec/api/assets_api_spec.rb +2 -0
  271. data/spec/api/dimensions_api_spec.rb +55 -0
  272. data/spec/api/filters_api_spec.rb +2 -2
  273. data/spec/api/incidents_api_spec.rb +73 -0
  274. data/spec/api/live_streams_api_spec.rb +24 -0
  275. data/spec/api/playback_id_api_spec.rb +40 -0
  276. data/spec/api/real_time_api_spec.rb +93 -0
  277. data/spec/api_client_spec.rb +10 -3
  278. data/spec/configuration_spec.rb +9 -2
  279. data/spec/models/asset_master_spec.rb +4 -0
  280. data/spec/models/asset_non_standard_input_reasons_spec.rb +98 -0
  281. data/spec/models/asset_recording_times_spec.rb +40 -0
  282. data/spec/models/asset_spec.rb +26 -0
  283. data/spec/models/asset_static_renditions_files_spec.rb +2 -2
  284. data/spec/models/create_live_stream_request_spec.rb +6 -0
  285. data/spec/models/dimension_value_spec.rb +40 -0
  286. data/spec/models/disable_live_stream_response_spec.rb +34 -0
  287. data/spec/models/enable_live_stream_response_spec.rb +34 -0
  288. data/spec/models/get_asset_or_live_stream_id_response_data_object_spec.rb +44 -0
  289. data/spec/models/get_asset_or_live_stream_id_response_data_spec.rb +46 -0
  290. data/spec/models/get_asset_or_live_stream_id_response_spec.rb +34 -0
  291. data/spec/models/get_real_time_breakdown_response_spec.rb +46 -0
  292. data/spec/models/get_real_time_histogram_timeseries_response_meta_spec.rb +34 -0
  293. data/spec/models/get_real_time_histogram_timeseries_response_spec.rb +52 -0
  294. data/spec/models/get_real_time_timeseries_response_spec.rb +46 -0
  295. data/spec/models/incident_breakdown_spec.rb +46 -0
  296. data/spec/models/incident_notification_rule_spec.rb +58 -0
  297. data/spec/models/incident_notification_spec.rb +46 -0
  298. data/spec/models/incident_response_spec.rb +40 -0
  299. data/spec/models/incident_spec.rb +154 -0
  300. data/spec/models/input_settings_spec.rb +12 -0
  301. data/spec/models/list_dimension_values_response_spec.rb +46 -0
  302. data/spec/models/list_dimensions_response_spec.rb +46 -0
  303. data/spec/models/list_incidents_response_spec.rb +46 -0
  304. data/spec/models/list_real_time_dimensions_response_data_spec.rb +40 -0
  305. data/spec/models/list_real_time_dimensions_response_spec.rb +46 -0
  306. data/spec/models/list_real_time_metrics_response_spec.rb +46 -0
  307. data/spec/models/list_related_incidents_response_spec.rb +46 -0
  308. data/spec/models/notification_rule_spec.rb +46 -0
  309. data/spec/models/real_time_breakdown_value_spec.rb +58 -0
  310. data/spec/models/real_time_histogram_timeseries_bucket_spec.rb +40 -0
  311. data/spec/models/real_time_histogram_timeseries_bucket_values_spec.rb +40 -0
  312. data/spec/models/real_time_histogram_timeseries_datapoint_spec.rb +70 -0
  313. data/spec/models/real_time_timeseries_datapoint_spec.rb +46 -0
  314. data/spec/models/track_spec.rb +4 -0
  315. data/spec/models/video_view_spec.rb +12 -0
  316. data/spec/spec_helper.rb +9 -2
  317. metadata +249 -212
@@ -1,6 +1,13 @@
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
  module MuxRuby
@@ -27,21 +34,42 @@ module MuxRuby
27
34
  super arg
28
35
  end
29
36
  end
37
+
38
+ # Override to_s to display a friendly error message
39
+ def to_s
40
+ message
41
+ end
42
+
43
+ def message
44
+ if @message.nil?
45
+ msg = "Error message: the server returns an error"
46
+ else
47
+ msg = @message
48
+ end
49
+
50
+ msg += "\nHTTP status code: #{code}" if code
51
+ msg += "\nResponse headers: #{response_headers}" if response_headers
52
+ msg += "\nResponse body: #{response_body}" if response_body
53
+
54
+ msg
55
+ end
30
56
  end
31
57
 
32
- class NotFoundError < ApiError
58
+ class ClientError < ApiError
33
59
  end
34
60
 
35
- class UnauthorizedError < ApiError
61
+ class NotFoundError < ClientError
36
62
  end
37
63
 
38
- class ForbiddenError < ApiError
64
+ class UnauthorizedError < ClientError
39
65
  end
40
66
 
41
- class ServiceError < ApiError
67
+ class ForbiddenError < ClientError
42
68
  end
43
69
 
44
- class TooManyRequestsError < ApiError
70
+ class TooManyRequestsError < ClientError
45
71
  end
46
72
 
73
+ class ServiceError < ApiError
74
+ end
47
75
  end
@@ -1,6 +1,13 @@
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
  module MuxRuby
@@ -14,6 +21,18 @@ module MuxRuby
14
21
  # Defines url base path
15
22
  attr_accessor :base_path
16
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
+
17
36
  # Defines API keys used with API Key authentications.
18
37
  #
19
38
  # @return [Hash] key: parameter name, value: parameter value (API key)
@@ -122,13 +141,17 @@ module MuxRuby
122
141
  @scheme = 'https'
123
142
  @host = 'api.mux.com'
124
143
  @base_path = ''
144
+ @server_index = 0
145
+ @server_operation_index = {}
146
+ @server_variables = {}
147
+ @server_operation_variables = {}
125
148
  @api_key = {}
126
149
  @api_key_prefix = {}
127
150
  @timeout = 0
128
151
  @client_side_validation = true
129
152
  @verify_ssl = true
130
153
  @verify_ssl_host = true
131
- @params_encoding = nil
154
+ @params_encoding = :multi # original value: nil
132
155
  @cert_file = nil
133
156
  @key_file = nil
134
157
  @debugging = false
@@ -164,17 +187,23 @@ module MuxRuby
164
187
  @base_path = '' if @base_path == '/'
165
188
  end
166
189
 
167
- def base_url
168
- "#{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])
169
196
  end
170
197
 
171
198
  # Gets API key (with prefix if set).
172
199
  # @param [String] param_name the parameter name of API key auth
173
- 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?
174
203
  if @api_key_prefix[param_name]
175
- "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
204
+ "#{@api_key_prefix[param_name]} #{key}"
176
205
  else
177
- @api_key[param_name]
206
+ key
178
207
  end
179
208
  end
180
209
 
@@ -200,31 +229,38 @@ module MuxRuby
200
229
  def server_settings
201
230
  [
202
231
  {
203
- url: "https://api.mux.com/",
232
+ url: "https://api.mux.com",
204
233
  description: "Mux Production Environment",
205
234
  }
206
235
  ]
207
236
  end
208
237
 
238
+ def operation_server_settings
239
+ {
240
+ }
241
+ end
242
+
209
243
  # Returns URL based on server settings
210
244
  #
211
245
  # @param index array index of the server settings
212
246
  # @param variables hash of variable and the corresponding value
213
- def server_url(index, variables = {})
214
- servers = server_settings
247
+ def server_url(index, variables = {}, servers = nil)
248
+ servers = server_settings if servers == nil
215
249
 
216
250
  # check array index out of bound
217
- if (index < 0 || index > servers.size)
218
- fail ArgumentError "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
251
+ if (index < 0 || index >= servers.size)
252
+ fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
219
253
  end
220
254
 
221
255
  server = servers[index]
222
256
  url = server[:url]
223
257
 
258
+ return url unless server.key? :variables
259
+
224
260
  # go through variable and assign a value
225
261
  server[:variables].each do |name, variable|
226
262
  if variables.key?(name)
227
- 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]))
228
264
  url.gsub! "{" + name.to_s + "}", variables[name]
229
265
  else
230
266
  fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
@@ -1,9 +1,17 @@
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'
14
+ require 'time'
7
15
 
8
16
  module MuxRuby
9
17
  class AbridgedVideoView
@@ -46,6 +54,11 @@ module MuxRuby
46
54
  }
47
55
  end
48
56
 
57
+ # Returns all the JSON keys this model knows about
58
+ def self.acceptable_attributes
59
+ attribute_map.values
60
+ end
61
+
49
62
  # Attribute type mapping.
50
63
  def self.openapi_types
51
64
  {
@@ -63,55 +76,68 @@ module MuxRuby
63
76
  }
64
77
  end
65
78
 
79
+ # List of attributes with nullable: true
80
+ def self.openapi_nullable
81
+ Set.new([
82
+ ])
83
+ end
84
+
66
85
  # Initializes the object
67
86
  # @param [Hash] attributes Model attributes in the form of hash
68
87
  def initialize(attributes = {})
69
- return unless attributes.is_a?(Hash)
88
+ if (!attributes.is_a?(Hash))
89
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::AbridgedVideoView` initialize method"
90
+ end
70
91
 
71
- # convert string to symbol for hash key
72
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
92
+ # check to see if the attribute exists and convert string to symbol for hash key
93
+ attributes = attributes.each_with_object({}) { |(k, v), h|
94
+ if (!self.class.attribute_map.key?(k.to_sym))
95
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::AbridgedVideoView`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
96
+ end
97
+ h[k.to_sym] = v
98
+ }
73
99
 
74
- if attributes.has_key?(:'id')
100
+ if attributes.key?(:'id')
75
101
  self.id = attributes[:'id']
76
102
  end
77
103
 
78
- if attributes.has_key?(:'viewer_os_family')
104
+ if attributes.key?(:'viewer_os_family')
79
105
  self.viewer_os_family = attributes[:'viewer_os_family']
80
106
  end
81
107
 
82
- if attributes.has_key?(:'viewer_application_name')
108
+ if attributes.key?(:'viewer_application_name')
83
109
  self.viewer_application_name = attributes[:'viewer_application_name']
84
110
  end
85
111
 
86
- if attributes.has_key?(:'video_title')
112
+ if attributes.key?(:'video_title')
87
113
  self.video_title = attributes[:'video_title']
88
114
  end
89
115
 
90
- if attributes.has_key?(:'total_row_count')
116
+ if attributes.key?(:'total_row_count')
91
117
  self.total_row_count = attributes[:'total_row_count']
92
118
  end
93
119
 
94
- if attributes.has_key?(:'player_error_message')
120
+ if attributes.key?(:'player_error_message')
95
121
  self.player_error_message = attributes[:'player_error_message']
96
122
  end
97
123
 
98
- if attributes.has_key?(:'player_error_code')
124
+ if attributes.key?(:'player_error_code')
99
125
  self.player_error_code = attributes[:'player_error_code']
100
126
  end
101
127
 
102
- if attributes.has_key?(:'error_type_id')
128
+ if attributes.key?(:'error_type_id')
103
129
  self.error_type_id = attributes[:'error_type_id']
104
130
  end
105
131
 
106
- if attributes.has_key?(:'country_code')
132
+ if attributes.key?(:'country_code')
107
133
  self.country_code = attributes[:'country_code']
108
134
  end
109
135
 
110
- if attributes.has_key?(:'view_start')
136
+ if attributes.key?(:'view_start')
111
137
  self.view_start = attributes[:'view_start']
112
138
  end
113
139
 
114
- if attributes.has_key?(:'view_end')
140
+ if attributes.key?(:'view_end')
115
141
  self.view_end = attributes[:'view_end']
116
142
  end
117
143
  end
@@ -154,7 +180,7 @@ module MuxRuby
154
180
  end
155
181
 
156
182
  # Calculates hash code according to all attributes.
157
- # @return [Fixnum] Hash code
183
+ # @return [Integer] Hash code
158
184
  def hash
159
185
  [id, viewer_os_family, viewer_application_name, video_title, total_row_count, player_error_message, player_error_code, error_type_id, country_code, view_start, view_end].hash
160
186
  end
@@ -172,7 +198,9 @@ module MuxRuby
172
198
  def build_from_hash(attributes)
173
199
  return nil unless attributes.is_a?(Hash)
174
200
  self.class.openapi_types.each_pair do |key, type|
175
- if type =~ /\AArray<(.*)>/i
201
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
202
+ self.send("#{key}=", nil)
203
+ elsif type =~ /\AArray<(.*)>/i
176
204
  # check to ensure the input is an array given that the attribute
177
205
  # is documented as an array but the input is not
178
206
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -180,7 +208,7 @@ module MuxRuby
180
208
  end
181
209
  elsif !attributes[self.class.attribute_map[key]].nil?
182
210
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
183
- end # or else data not found in attributes(hash), not an issue as the data can be optional
211
+ end
184
212
  end
185
213
 
186
214
  self
@@ -192,8 +220,8 @@ module MuxRuby
192
220
  # @return [Object] Deserialized data
193
221
  def _deserialize(type, value)
194
222
  case type.to_sym
195
- when :DateTime
196
- DateTime.parse(value)
223
+ when :Time
224
+ Time.parse(value)
197
225
  when :Date
198
226
  Date.parse(value)
199
227
  when :String
@@ -202,7 +230,7 @@ module MuxRuby
202
230
  value.to_i
203
231
  when :Float
204
232
  value.to_f
205
- when :BOOLEAN
233
+ when :Boolean
206
234
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
207
235
  true
208
236
  else
@@ -223,7 +251,9 @@ module MuxRuby
223
251
  end
224
252
  end
225
253
  else # model
226
- MuxRuby.const_get(type).build_from_hash(value)
254
+ # models (e.g. Pet) or oneOf
255
+ klass = MuxRuby.const_get(type)
256
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
227
257
  end
228
258
  end
229
259
 
@@ -245,7 +275,11 @@ module MuxRuby
245
275
  hash = {}
246
276
  self.class.attribute_map.each_pair do |attr, param|
247
277
  value = self.send(attr)
248
- next if value.nil?
278
+ if value.nil?
279
+ is_nullable = self.class.openapi_nullable.include?(attr)
280
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
281
+ end
282
+
249
283
  hash[param] = _to_hash(value)
250
284
  end
251
285
  hash
@@ -1,40 +1,58 @@
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'
14
+ require 'time'
7
15
 
8
16
  module MuxRuby
9
17
  class Asset
18
+ # Unique identifier for the Asset. Max 255 characters.
10
19
  attr_accessor :id
11
20
 
21
+ # Time the Asset was created, defined as a Unix timestamp (seconds since epoch).
12
22
  attr_accessor :created_at
13
23
 
14
- attr_accessor :deleted_at
15
-
24
+ # The status of the asset.
16
25
  attr_accessor :status
17
26
 
27
+ # The duration of the asset in seconds (max duration for a single asset is 24 hours).
18
28
  attr_accessor :duration
19
29
 
30
+ # The maximum resolution that has been stored for the asset. The asset may be delivered at lower resolutions depending on the device and bandwidth, however it cannot be delivered at a higher value than is stored.
20
31
  attr_accessor :max_stored_resolution
21
32
 
33
+ # The maximum frame rate that has been stored for the asset. The asset may be delivered at lower frame rates depending on the device and bandwidth, however it cannot be delivered at a higher value than is stored. This field may return -1 if the frame rate of the input cannot be reliably determined.
22
34
  attr_accessor :max_stored_frame_rate
23
35
 
36
+ # The aspect ratio of the asset in the form of `width:height`, for example `16:9`.
24
37
  attr_accessor :aspect_ratio
25
38
 
39
+ # An array of Playback ID objects. Use these to create HLS playback URLs. See [Play your videos](https://docs.mux.com/guides/video/play-your-videos) for more details.
26
40
  attr_accessor :playback_ids
27
41
 
42
+ # The individual media tracks that make up an asset.
28
43
  attr_accessor :tracks
29
44
 
30
45
  attr_accessor :errors
31
46
 
32
47
  attr_accessor :per_title_encode
33
48
 
49
+ # Whether the asset is created from a live stream and the live stream is currently `active` and not in `idle` state.
34
50
  attr_accessor :is_live
35
51
 
52
+ # Arbitrary metadata set for the asset. Max 255 characters.
36
53
  attr_accessor :passthrough
37
54
 
55
+ # Unique identifier for the live stream. This is an optional parameter added when the asset is created from a live stream.
38
56
  attr_accessor :live_stream_id
39
57
 
40
58
  attr_accessor :master
@@ -43,10 +61,20 @@ module MuxRuby
43
61
 
44
62
  attr_accessor :mp4_support
45
63
 
64
+ # Asset Identifier of the video used as the source for creating the clip.
65
+ attr_accessor :source_asset_id
66
+
67
+ # Normalize the audio track loudness level. This parameter is only applicable to on-demand (not live) assets.
46
68
  attr_accessor :normalize_audio
47
69
 
48
70
  attr_accessor :static_renditions
49
71
 
72
+ # An array of individual live stream recording sessions. A recording session is created on each encoder connection during the live stream
73
+ attr_accessor :recording_times
74
+
75
+ attr_accessor :non_standard_input_reasons
76
+
77
+ # True means this live stream is a test asset. A test asset can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test assets created. Test assets are watermarked with the Mux logo, limited to 10 seconds, and deleted after 24 hrs.
50
78
  attr_accessor :test
51
79
 
52
80
  class EnumAttributeValidator
@@ -76,7 +104,6 @@ module MuxRuby
76
104
  {
77
105
  :'id' => :'id',
78
106
  :'created_at' => :'created_at',
79
- :'deleted_at' => :'deleted_at',
80
107
  :'status' => :'status',
81
108
  :'duration' => :'duration',
82
109
  :'max_stored_resolution' => :'max_stored_resolution',
@@ -92,18 +119,25 @@ module MuxRuby
92
119
  :'master' => :'master',
93
120
  :'master_access' => :'master_access',
94
121
  :'mp4_support' => :'mp4_support',
122
+ :'source_asset_id' => :'source_asset_id',
95
123
  :'normalize_audio' => :'normalize_audio',
96
124
  :'static_renditions' => :'static_renditions',
125
+ :'recording_times' => :'recording_times',
126
+ :'non_standard_input_reasons' => :'non_standard_input_reasons',
97
127
  :'test' => :'test'
98
128
  }
99
129
  end
100
130
 
131
+ # Returns all the JSON keys this model knows about
132
+ def self.acceptable_attributes
133
+ attribute_map.values
134
+ end
135
+
101
136
  # Attribute type mapping.
102
137
  def self.openapi_types
103
138
  {
104
139
  :'id' => :'String',
105
140
  :'created_at' => :'String',
106
- :'deleted_at' => :'String',
107
141
  :'status' => :'String',
108
142
  :'duration' => :'Float',
109
143
  :'max_stored_resolution' => :'String',
@@ -112,118 +146,144 @@ module MuxRuby
112
146
  :'playback_ids' => :'Array<PlaybackID>',
113
147
  :'tracks' => :'Array<Track>',
114
148
  :'errors' => :'AssetErrors',
115
- :'per_title_encode' => :'BOOLEAN',
116
- :'is_live' => :'BOOLEAN',
149
+ :'per_title_encode' => :'Boolean',
150
+ :'is_live' => :'Boolean',
117
151
  :'passthrough' => :'String',
118
152
  :'live_stream_id' => :'String',
119
153
  :'master' => :'AssetMaster',
120
154
  :'master_access' => :'String',
121
155
  :'mp4_support' => :'String',
122
- :'normalize_audio' => :'BOOLEAN',
156
+ :'source_asset_id' => :'String',
157
+ :'normalize_audio' => :'Boolean',
123
158
  :'static_renditions' => :'AssetStaticRenditions',
124
- :'test' => :'BOOLEAN'
159
+ :'recording_times' => :'Array<AssetRecordingTimes>',
160
+ :'non_standard_input_reasons' => :'AssetNonStandardInputReasons',
161
+ :'test' => :'Boolean'
125
162
  }
126
163
  end
127
164
 
165
+ # List of attributes with nullable: true
166
+ def self.openapi_nullable
167
+ Set.new([
168
+ ])
169
+ end
170
+
128
171
  # Initializes the object
129
172
  # @param [Hash] attributes Model attributes in the form of hash
130
173
  def initialize(attributes = {})
131
- return unless attributes.is_a?(Hash)
174
+ if (!attributes.is_a?(Hash))
175
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::Asset` initialize method"
176
+ end
132
177
 
133
- # convert string to symbol for hash key
134
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
178
+ # check to see if the attribute exists and convert string to symbol for hash key
179
+ attributes = attributes.each_with_object({}) { |(k, v), h|
180
+ if (!self.class.attribute_map.key?(k.to_sym))
181
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::Asset`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
182
+ end
183
+ h[k.to_sym] = v
184
+ }
135
185
 
136
- if attributes.has_key?(:'id')
186
+ if attributes.key?(:'id')
137
187
  self.id = attributes[:'id']
138
188
  end
139
189
 
140
- if attributes.has_key?(:'created_at')
190
+ if attributes.key?(:'created_at')
141
191
  self.created_at = attributes[:'created_at']
142
192
  end
143
193
 
144
- if attributes.has_key?(:'deleted_at')
145
- self.deleted_at = attributes[:'deleted_at']
146
- end
147
-
148
- if attributes.has_key?(:'status')
194
+ if attributes.key?(:'status')
149
195
  self.status = attributes[:'status']
150
196
  end
151
197
 
152
- if attributes.has_key?(:'duration')
198
+ if attributes.key?(:'duration')
153
199
  self.duration = attributes[:'duration']
154
200
  end
155
201
 
156
- if attributes.has_key?(:'max_stored_resolution')
202
+ if attributes.key?(:'max_stored_resolution')
157
203
  self.max_stored_resolution = attributes[:'max_stored_resolution']
158
204
  end
159
205
 
160
- if attributes.has_key?(:'max_stored_frame_rate')
206
+ if attributes.key?(:'max_stored_frame_rate')
161
207
  self.max_stored_frame_rate = attributes[:'max_stored_frame_rate']
162
208
  end
163
209
 
164
- if attributes.has_key?(:'aspect_ratio')
210
+ if attributes.key?(:'aspect_ratio')
165
211
  self.aspect_ratio = attributes[:'aspect_ratio']
166
212
  end
167
213
 
168
- if attributes.has_key?(:'playback_ids')
214
+ if attributes.key?(:'playback_ids')
169
215
  if (value = attributes[:'playback_ids']).is_a?(Array)
170
216
  self.playback_ids = value
171
217
  end
172
218
  end
173
219
 
174
- if attributes.has_key?(:'tracks')
220
+ if attributes.key?(:'tracks')
175
221
  if (value = attributes[:'tracks']).is_a?(Array)
176
222
  self.tracks = value
177
223
  end
178
224
  end
179
225
 
180
- if attributes.has_key?(:'errors')
226
+ if attributes.key?(:'errors')
181
227
  self.errors = attributes[:'errors']
182
228
  end
183
229
 
184
- if attributes.has_key?(:'per_title_encode')
230
+ if attributes.key?(:'per_title_encode')
185
231
  self.per_title_encode = attributes[:'per_title_encode']
186
232
  end
187
233
 
188
- if attributes.has_key?(:'is_live')
234
+ if attributes.key?(:'is_live')
189
235
  self.is_live = attributes[:'is_live']
190
236
  end
191
237
 
192
- if attributes.has_key?(:'passthrough')
238
+ if attributes.key?(:'passthrough')
193
239
  self.passthrough = attributes[:'passthrough']
194
240
  end
195
241
 
196
- if attributes.has_key?(:'live_stream_id')
242
+ if attributes.key?(:'live_stream_id')
197
243
  self.live_stream_id = attributes[:'live_stream_id']
198
244
  end
199
245
 
200
- if attributes.has_key?(:'master')
246
+ if attributes.key?(:'master')
201
247
  self.master = attributes[:'master']
202
248
  end
203
249
 
204
- if attributes.has_key?(:'master_access')
250
+ if attributes.key?(:'master_access')
205
251
  self.master_access = attributes[:'master_access']
206
252
  else
207
253
  self.master_access = 'none'
208
254
  end
209
255
 
210
- if attributes.has_key?(:'mp4_support')
256
+ if attributes.key?(:'mp4_support')
211
257
  self.mp4_support = attributes[:'mp4_support']
212
258
  else
213
259
  self.mp4_support = 'none'
214
260
  end
215
261
 
216
- if attributes.has_key?(:'normalize_audio')
262
+ if attributes.key?(:'source_asset_id')
263
+ self.source_asset_id = attributes[:'source_asset_id']
264
+ end
265
+
266
+ if attributes.key?(:'normalize_audio')
217
267
  self.normalize_audio = attributes[:'normalize_audio']
218
268
  else
219
269
  self.normalize_audio = false
220
270
  end
221
271
 
222
- if attributes.has_key?(:'static_renditions')
272
+ if attributes.key?(:'static_renditions')
223
273
  self.static_renditions = attributes[:'static_renditions']
224
274
  end
225
275
 
226
- if attributes.has_key?(:'test')
276
+ if attributes.key?(:'recording_times')
277
+ if (value = attributes[:'recording_times']).is_a?(Array)
278
+ self.recording_times = value
279
+ end
280
+ end
281
+
282
+ if attributes.key?(:'non_standard_input_reasons')
283
+ self.non_standard_input_reasons = attributes[:'non_standard_input_reasons']
284
+ end
285
+
286
+ if attributes.key?(:'test')
227
287
  self.test = attributes[:'test']
228
288
  end
229
289
  end
@@ -238,19 +298,43 @@ module MuxRuby
238
298
  # Check to see if the all the properties in the model are valid
239
299
  # @return true if the model is valid
240
300
  def valid?
241
- master_access_validator = EnumAttributeValidator.new('String', ['temporary', 'none'])
301
+ status_validator = EnumAttributeValidator.new('String', ["preparing", "ready", "errored"])
302
+ return false unless status_validator.valid?(@status)
303
+ max_stored_resolution_validator = EnumAttributeValidator.new('String', ["Audio only", "SD", "HD", "FHD", "UHD"])
304
+ return false unless max_stored_resolution_validator.valid?(@max_stored_resolution)
305
+ master_access_validator = EnumAttributeValidator.new('String', ["temporary", "none"])
242
306
  return false unless master_access_validator.valid?(@master_access)
243
- mp4_support_validator = EnumAttributeValidator.new('String', ['standard', 'none'])
307
+ mp4_support_validator = EnumAttributeValidator.new('String', ["standard", "none"])
244
308
  return false unless mp4_support_validator.valid?(@mp4_support)
245
309
  true
246
310
  end
247
311
 
312
+ # Custom attribute writer method checking allowed values (enum).
313
+ # @param [Object] status Object to be assigned
314
+ def status=(status)
315
+ validator = EnumAttributeValidator.new('String', ["preparing", "ready", "errored"])
316
+ unless validator.valid?(status)
317
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
318
+ end
319
+ @status = status
320
+ end
321
+
322
+ # Custom attribute writer method checking allowed values (enum).
323
+ # @param [Object] max_stored_resolution Object to be assigned
324
+ def max_stored_resolution=(max_stored_resolution)
325
+ validator = EnumAttributeValidator.new('String', ["Audio only", "SD", "HD", "FHD", "UHD"])
326
+ unless validator.valid?(max_stored_resolution)
327
+ fail ArgumentError, "invalid value for \"max_stored_resolution\", must be one of #{validator.allowable_values}."
328
+ end
329
+ @max_stored_resolution = max_stored_resolution
330
+ end
331
+
248
332
  # Custom attribute writer method checking allowed values (enum).
249
333
  # @param [Object] master_access Object to be assigned
250
334
  def master_access=(master_access)
251
- validator = EnumAttributeValidator.new('String', ['temporary', 'none'])
335
+ validator = EnumAttributeValidator.new('String', ["temporary", "none"])
252
336
  unless validator.valid?(master_access)
253
- fail ArgumentError, 'invalid value for "master_access", must be one of #{validator.allowable_values}.'
337
+ fail ArgumentError, "invalid value for \"master_access\", must be one of #{validator.allowable_values}."
254
338
  end
255
339
  @master_access = master_access
256
340
  end
@@ -258,9 +342,9 @@ module MuxRuby
258
342
  # Custom attribute writer method checking allowed values (enum).
259
343
  # @param [Object] mp4_support Object to be assigned
260
344
  def mp4_support=(mp4_support)
261
- validator = EnumAttributeValidator.new('String', ['standard', 'none'])
345
+ validator = EnumAttributeValidator.new('String', ["standard", "none"])
262
346
  unless validator.valid?(mp4_support)
263
- fail ArgumentError, 'invalid value for "mp4_support", must be one of #{validator.allowable_values}.'
347
+ fail ArgumentError, "invalid value for \"mp4_support\", must be one of #{validator.allowable_values}."
264
348
  end
265
349
  @mp4_support = mp4_support
266
350
  end
@@ -272,7 +356,6 @@ module MuxRuby
272
356
  self.class == o.class &&
273
357
  id == o.id &&
274
358
  created_at == o.created_at &&
275
- deleted_at == o.deleted_at &&
276
359
  status == o.status &&
277
360
  duration == o.duration &&
278
361
  max_stored_resolution == o.max_stored_resolution &&
@@ -288,8 +371,11 @@ module MuxRuby
288
371
  master == o.master &&
289
372
  master_access == o.master_access &&
290
373
  mp4_support == o.mp4_support &&
374
+ source_asset_id == o.source_asset_id &&
291
375
  normalize_audio == o.normalize_audio &&
292
376
  static_renditions == o.static_renditions &&
377
+ recording_times == o.recording_times &&
378
+ non_standard_input_reasons == o.non_standard_input_reasons &&
293
379
  test == o.test
294
380
  end
295
381
 
@@ -300,9 +386,9 @@ module MuxRuby
300
386
  end
301
387
 
302
388
  # Calculates hash code according to all attributes.
303
- # @return [Fixnum] Hash code
389
+ # @return [Integer] Hash code
304
390
  def hash
305
- [id, created_at, deleted_at, status, duration, max_stored_resolution, max_stored_frame_rate, aspect_ratio, playback_ids, tracks, errors, per_title_encode, is_live, passthrough, live_stream_id, master, master_access, mp4_support, normalize_audio, static_renditions, test].hash
391
+ [id, created_at, status, duration, max_stored_resolution, max_stored_frame_rate, aspect_ratio, playback_ids, tracks, errors, per_title_encode, is_live, passthrough, live_stream_id, master, master_access, mp4_support, source_asset_id, normalize_audio, static_renditions, recording_times, non_standard_input_reasons, test].hash
306
392
  end
307
393
 
308
394
  # Builds the object from hash
@@ -318,7 +404,9 @@ module MuxRuby
318
404
  def build_from_hash(attributes)
319
405
  return nil unless attributes.is_a?(Hash)
320
406
  self.class.openapi_types.each_pair do |key, type|
321
- if type =~ /\AArray<(.*)>/i
407
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
408
+ self.send("#{key}=", nil)
409
+ elsif type =~ /\AArray<(.*)>/i
322
410
  # check to ensure the input is an array given that the attribute
323
411
  # is documented as an array but the input is not
324
412
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -326,7 +414,7 @@ module MuxRuby
326
414
  end
327
415
  elsif !attributes[self.class.attribute_map[key]].nil?
328
416
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
329
- end # or else data not found in attributes(hash), not an issue as the data can be optional
417
+ end
330
418
  end
331
419
 
332
420
  self
@@ -338,8 +426,8 @@ module MuxRuby
338
426
  # @return [Object] Deserialized data
339
427
  def _deserialize(type, value)
340
428
  case type.to_sym
341
- when :DateTime
342
- DateTime.parse(value)
429
+ when :Time
430
+ Time.parse(value)
343
431
  when :Date
344
432
  Date.parse(value)
345
433
  when :String
@@ -348,7 +436,7 @@ module MuxRuby
348
436
  value.to_i
349
437
  when :Float
350
438
  value.to_f
351
- when :BOOLEAN
439
+ when :Boolean
352
440
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
353
441
  true
354
442
  else
@@ -369,7 +457,9 @@ module MuxRuby
369
457
  end
370
458
  end
371
459
  else # model
372
- MuxRuby.const_get(type).build_from_hash(value)
460
+ # models (e.g. Pet) or oneOf
461
+ klass = MuxRuby.const_get(type)
462
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
373
463
  end
374
464
  end
375
465
 
@@ -391,7 +481,11 @@ module MuxRuby
391
481
  hash = {}
392
482
  self.class.attribute_map.each_pair do |attr, param|
393
483
  value = self.send(attr)
394
- next if value.nil?
484
+ if value.nil?
485
+ is_nullable = self.class.openapi_nullable.include?(attr)
486
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
487
+ end
488
+
395
489
  hash[param] = _to_hash(value)
396
490
  end
397
491
  hash