mux_ruby 1.6.0 → 2.0.0.pre.rc.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (314) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/Gemfile.lock +26 -37
  4. data/README.md +37 -13
  5. data/docs/AbridgedVideoView.md +33 -13
  6. data/docs/Asset.md +59 -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 +396 -161
  15. data/docs/BreakdownValue.md +21 -7
  16. data/docs/CreateAssetRequest.md +27 -10
  17. data/docs/CreateLiveStreamRequest.md +27 -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 +41 -23
  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 +38 -20
  33. data/docs/ExportsApi.md +33 -14
  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 +39 -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 +211 -117
  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 +130 -54
  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 +251 -114
  110. data/docs/VideoViewEvent.md +19 -6
  111. data/docs/VideoViewResponse.md +15 -4
  112. data/docs/VideoViewsApi.md +78 -41
  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 +291 -152
  158. data/lib/mux_ruby/api/delivery_usage_api.rb +32 -16
  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 +34 -18
  162. data/lib/mux_ruby/api/exports_api.rb +30 -14
  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 +185 -114
  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 +95 -48
  170. data/lib/mux_ruby/api/video_views_api.rb +60 -33
  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 +157 -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 +68 -23
  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 +121 -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 +242 -136
  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/dimension_value_spec.rb +40 -0
  284. data/spec/models/disable_live_stream_response_spec.rb +34 -0
  285. data/spec/models/enable_live_stream_response_spec.rb +34 -0
  286. data/spec/models/get_asset_or_live_stream_id_response_data_object_spec.rb +44 -0
  287. data/spec/models/get_asset_or_live_stream_id_response_data_spec.rb +46 -0
  288. data/spec/models/get_asset_or_live_stream_id_response_spec.rb +34 -0
  289. data/spec/models/get_real_time_breakdown_response_spec.rb +46 -0
  290. data/spec/models/get_real_time_histogram_timeseries_response_meta_spec.rb +34 -0
  291. data/spec/models/get_real_time_histogram_timeseries_response_spec.rb +52 -0
  292. data/spec/models/get_real_time_timeseries_response_spec.rb +46 -0
  293. data/spec/models/incident_breakdown_spec.rb +46 -0
  294. data/spec/models/incident_notification_rule_spec.rb +58 -0
  295. data/spec/models/incident_notification_spec.rb +46 -0
  296. data/spec/models/incident_response_spec.rb +40 -0
  297. data/spec/models/incident_spec.rb +154 -0
  298. data/spec/models/input_settings_spec.rb +12 -0
  299. data/spec/models/list_dimension_values_response_spec.rb +46 -0
  300. data/spec/models/list_dimensions_response_spec.rb +46 -0
  301. data/spec/models/list_incidents_response_spec.rb +46 -0
  302. data/spec/models/list_real_time_dimensions_response_data_spec.rb +40 -0
  303. data/spec/models/list_real_time_dimensions_response_spec.rb +46 -0
  304. data/spec/models/list_real_time_metrics_response_spec.rb +46 -0
  305. data/spec/models/list_related_incidents_response_spec.rb +46 -0
  306. data/spec/models/notification_rule_spec.rb +46 -0
  307. data/spec/models/real_time_breakdown_value_spec.rb +58 -0
  308. data/spec/models/real_time_histogram_timeseries_bucket_spec.rb +40 -0
  309. data/spec/models/real_time_histogram_timeseries_bucket_values_spec.rb +40 -0
  310. data/spec/models/real_time_histogram_timeseries_datapoint_spec.rb +70 -0
  311. data/spec/models/real_time_timeseries_datapoint_spec.rb +46 -0
  312. data/spec/models/track_spec.rb +4 -0
  313. data/spec/spec_helper.rb +9 -2
  314. metadata +246 -209
@@ -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
+ Contact: devex@mux.com
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,61 @@
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
+ Contact: devex@mux.com
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 12 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
+ # Unique identifier for the Direct Upload. This is an optional parameter added when the asset is created from a direct upload.
50
+ attr_accessor :upload_id
51
+
52
+ # Whether the asset is created from a live stream and the live stream is currently `active` and not in `idle` state.
34
53
  attr_accessor :is_live
35
54
 
55
+ # Arbitrary metadata set for the asset. Max 255 characters.
36
56
  attr_accessor :passthrough
37
57
 
58
+ # Unique identifier for the live stream. This is an optional parameter added when the asset is created from a live stream.
38
59
  attr_accessor :live_stream_id
39
60
 
40
61
  attr_accessor :master
@@ -43,10 +64,20 @@ module MuxRuby
43
64
 
44
65
  attr_accessor :mp4_support
45
66
 
67
+ # Asset Identifier of the video used as the source for creating the clip.
68
+ attr_accessor :source_asset_id
69
+
70
+ # Normalize the audio track loudness level. This parameter is only applicable to on-demand (not live) assets.
46
71
  attr_accessor :normalize_audio
47
72
 
48
73
  attr_accessor :static_renditions
49
74
 
75
+ # An array of individual live stream recording sessions. A recording session is created on each encoder connection during the live stream
76
+ attr_accessor :recording_times
77
+
78
+ attr_accessor :non_standard_input_reasons
79
+
80
+ # 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
81
  attr_accessor :test
51
82
 
52
83
  class EnumAttributeValidator
@@ -76,7 +107,6 @@ module MuxRuby
76
107
  {
77
108
  :'id' => :'id',
78
109
  :'created_at' => :'created_at',
79
- :'deleted_at' => :'deleted_at',
80
110
  :'status' => :'status',
81
111
  :'duration' => :'duration',
82
112
  :'max_stored_resolution' => :'max_stored_resolution',
@@ -86,24 +116,32 @@ module MuxRuby
86
116
  :'tracks' => :'tracks',
87
117
  :'errors' => :'errors',
88
118
  :'per_title_encode' => :'per_title_encode',
119
+ :'upload_id' => :'upload_id',
89
120
  :'is_live' => :'is_live',
90
121
  :'passthrough' => :'passthrough',
91
122
  :'live_stream_id' => :'live_stream_id',
92
123
  :'master' => :'master',
93
124
  :'master_access' => :'master_access',
94
125
  :'mp4_support' => :'mp4_support',
126
+ :'source_asset_id' => :'source_asset_id',
95
127
  :'normalize_audio' => :'normalize_audio',
96
128
  :'static_renditions' => :'static_renditions',
129
+ :'recording_times' => :'recording_times',
130
+ :'non_standard_input_reasons' => :'non_standard_input_reasons',
97
131
  :'test' => :'test'
98
132
  }
99
133
  end
100
134
 
135
+ # Returns all the JSON keys this model knows about
136
+ def self.acceptable_attributes
137
+ attribute_map.values
138
+ end
139
+
101
140
  # Attribute type mapping.
102
141
  def self.openapi_types
103
142
  {
104
143
  :'id' => :'String',
105
144
  :'created_at' => :'String',
106
- :'deleted_at' => :'String',
107
145
  :'status' => :'String',
108
146
  :'duration' => :'Float',
109
147
  :'max_stored_resolution' => :'String',
@@ -112,118 +150,149 @@ module MuxRuby
112
150
  :'playback_ids' => :'Array<PlaybackID>',
113
151
  :'tracks' => :'Array<Track>',
114
152
  :'errors' => :'AssetErrors',
115
- :'per_title_encode' => :'BOOLEAN',
116
- :'is_live' => :'BOOLEAN',
153
+ :'per_title_encode' => :'Boolean',
154
+ :'upload_id' => :'String',
155
+ :'is_live' => :'Boolean',
117
156
  :'passthrough' => :'String',
118
157
  :'live_stream_id' => :'String',
119
158
  :'master' => :'AssetMaster',
120
159
  :'master_access' => :'String',
121
160
  :'mp4_support' => :'String',
122
- :'normalize_audio' => :'BOOLEAN',
161
+ :'source_asset_id' => :'String',
162
+ :'normalize_audio' => :'Boolean',
123
163
  :'static_renditions' => :'AssetStaticRenditions',
124
- :'test' => :'BOOLEAN'
164
+ :'recording_times' => :'Array<AssetRecordingTimes>',
165
+ :'non_standard_input_reasons' => :'AssetNonStandardInputReasons',
166
+ :'test' => :'Boolean'
125
167
  }
126
168
  end
127
169
 
170
+ # List of attributes with nullable: true
171
+ def self.openapi_nullable
172
+ Set.new([
173
+ ])
174
+ end
175
+
128
176
  # Initializes the object
129
177
  # @param [Hash] attributes Model attributes in the form of hash
130
178
  def initialize(attributes = {})
131
- return unless attributes.is_a?(Hash)
179
+ if (!attributes.is_a?(Hash))
180
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::Asset` initialize method"
181
+ end
132
182
 
133
- # convert string to symbol for hash key
134
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
183
+ # check to see if the attribute exists and convert string to symbol for hash key
184
+ attributes = attributes.each_with_object({}) { |(k, v), h|
185
+ if (!self.class.attribute_map.key?(k.to_sym))
186
+ 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
187
+ end
188
+ h[k.to_sym] = v
189
+ }
135
190
 
136
- if attributes.has_key?(:'id')
191
+ if attributes.key?(:'id')
137
192
  self.id = attributes[:'id']
138
193
  end
139
194
 
140
- if attributes.has_key?(:'created_at')
195
+ if attributes.key?(:'created_at')
141
196
  self.created_at = attributes[:'created_at']
142
197
  end
143
198
 
144
- if attributes.has_key?(:'deleted_at')
145
- self.deleted_at = attributes[:'deleted_at']
146
- end
147
-
148
- if attributes.has_key?(:'status')
199
+ if attributes.key?(:'status')
149
200
  self.status = attributes[:'status']
150
201
  end
151
202
 
152
- if attributes.has_key?(:'duration')
203
+ if attributes.key?(:'duration')
153
204
  self.duration = attributes[:'duration']
154
205
  end
155
206
 
156
- if attributes.has_key?(:'max_stored_resolution')
207
+ if attributes.key?(:'max_stored_resolution')
157
208
  self.max_stored_resolution = attributes[:'max_stored_resolution']
158
209
  end
159
210
 
160
- if attributes.has_key?(:'max_stored_frame_rate')
211
+ if attributes.key?(:'max_stored_frame_rate')
161
212
  self.max_stored_frame_rate = attributes[:'max_stored_frame_rate']
162
213
  end
163
214
 
164
- if attributes.has_key?(:'aspect_ratio')
215
+ if attributes.key?(:'aspect_ratio')
165
216
  self.aspect_ratio = attributes[:'aspect_ratio']
166
217
  end
167
218
 
168
- if attributes.has_key?(:'playback_ids')
219
+ if attributes.key?(:'playback_ids')
169
220
  if (value = attributes[:'playback_ids']).is_a?(Array)
170
221
  self.playback_ids = value
171
222
  end
172
223
  end
173
224
 
174
- if attributes.has_key?(:'tracks')
225
+ if attributes.key?(:'tracks')
175
226
  if (value = attributes[:'tracks']).is_a?(Array)
176
227
  self.tracks = value
177
228
  end
178
229
  end
179
230
 
180
- if attributes.has_key?(:'errors')
231
+ if attributes.key?(:'errors')
181
232
  self.errors = attributes[:'errors']
182
233
  end
183
234
 
184
- if attributes.has_key?(:'per_title_encode')
235
+ if attributes.key?(:'per_title_encode')
185
236
  self.per_title_encode = attributes[:'per_title_encode']
186
237
  end
187
238
 
188
- if attributes.has_key?(:'is_live')
239
+ if attributes.key?(:'upload_id')
240
+ self.upload_id = attributes[:'upload_id']
241
+ end
242
+
243
+ if attributes.key?(:'is_live')
189
244
  self.is_live = attributes[:'is_live']
190
245
  end
191
246
 
192
- if attributes.has_key?(:'passthrough')
247
+ if attributes.key?(:'passthrough')
193
248
  self.passthrough = attributes[:'passthrough']
194
249
  end
195
250
 
196
- if attributes.has_key?(:'live_stream_id')
251
+ if attributes.key?(:'live_stream_id')
197
252
  self.live_stream_id = attributes[:'live_stream_id']
198
253
  end
199
254
 
200
- if attributes.has_key?(:'master')
255
+ if attributes.key?(:'master')
201
256
  self.master = attributes[:'master']
202
257
  end
203
258
 
204
- if attributes.has_key?(:'master_access')
259
+ if attributes.key?(:'master_access')
205
260
  self.master_access = attributes[:'master_access']
206
261
  else
207
262
  self.master_access = 'none'
208
263
  end
209
264
 
210
- if attributes.has_key?(:'mp4_support')
265
+ if attributes.key?(:'mp4_support')
211
266
  self.mp4_support = attributes[:'mp4_support']
212
267
  else
213
268
  self.mp4_support = 'none'
214
269
  end
215
270
 
216
- if attributes.has_key?(:'normalize_audio')
271
+ if attributes.key?(:'source_asset_id')
272
+ self.source_asset_id = attributes[:'source_asset_id']
273
+ end
274
+
275
+ if attributes.key?(:'normalize_audio')
217
276
  self.normalize_audio = attributes[:'normalize_audio']
218
277
  else
219
278
  self.normalize_audio = false
220
279
  end
221
280
 
222
- if attributes.has_key?(:'static_renditions')
281
+ if attributes.key?(:'static_renditions')
223
282
  self.static_renditions = attributes[:'static_renditions']
224
283
  end
225
284
 
226
- if attributes.has_key?(:'test')
285
+ if attributes.key?(:'recording_times')
286
+ if (value = attributes[:'recording_times']).is_a?(Array)
287
+ self.recording_times = value
288
+ end
289
+ end
290
+
291
+ if attributes.key?(:'non_standard_input_reasons')
292
+ self.non_standard_input_reasons = attributes[:'non_standard_input_reasons']
293
+ end
294
+
295
+ if attributes.key?(:'test')
227
296
  self.test = attributes[:'test']
228
297
  end
229
298
  end
@@ -238,19 +307,43 @@ module MuxRuby
238
307
  # Check to see if the all the properties in the model are valid
239
308
  # @return true if the model is valid
240
309
  def valid?
241
- master_access_validator = EnumAttributeValidator.new('String', ['temporary', 'none'])
310
+ status_validator = EnumAttributeValidator.new('String', ["preparing", "ready", "errored"])
311
+ return false unless status_validator.valid?(@status)
312
+ max_stored_resolution_validator = EnumAttributeValidator.new('String', ["Audio only", "SD", "HD", "FHD", "UHD"])
313
+ return false unless max_stored_resolution_validator.valid?(@max_stored_resolution)
314
+ master_access_validator = EnumAttributeValidator.new('String', ["temporary", "none"])
242
315
  return false unless master_access_validator.valid?(@master_access)
243
- mp4_support_validator = EnumAttributeValidator.new('String', ['standard', 'none'])
316
+ mp4_support_validator = EnumAttributeValidator.new('String', ["standard", "none"])
244
317
  return false unless mp4_support_validator.valid?(@mp4_support)
245
318
  true
246
319
  end
247
320
 
321
+ # Custom attribute writer method checking allowed values (enum).
322
+ # @param [Object] status Object to be assigned
323
+ def status=(status)
324
+ validator = EnumAttributeValidator.new('String', ["preparing", "ready", "errored"])
325
+ unless validator.valid?(status)
326
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
327
+ end
328
+ @status = status
329
+ end
330
+
331
+ # Custom attribute writer method checking allowed values (enum).
332
+ # @param [Object] max_stored_resolution Object to be assigned
333
+ def max_stored_resolution=(max_stored_resolution)
334
+ validator = EnumAttributeValidator.new('String', ["Audio only", "SD", "HD", "FHD", "UHD"])
335
+ unless validator.valid?(max_stored_resolution)
336
+ fail ArgumentError, "invalid value for \"max_stored_resolution\", must be one of #{validator.allowable_values}."
337
+ end
338
+ @max_stored_resolution = max_stored_resolution
339
+ end
340
+
248
341
  # Custom attribute writer method checking allowed values (enum).
249
342
  # @param [Object] master_access Object to be assigned
250
343
  def master_access=(master_access)
251
- validator = EnumAttributeValidator.new('String', ['temporary', 'none'])
344
+ validator = EnumAttributeValidator.new('String', ["temporary", "none"])
252
345
  unless validator.valid?(master_access)
253
- fail ArgumentError, 'invalid value for "master_access", must be one of #{validator.allowable_values}.'
346
+ fail ArgumentError, "invalid value for \"master_access\", must be one of #{validator.allowable_values}."
254
347
  end
255
348
  @master_access = master_access
256
349
  end
@@ -258,9 +351,9 @@ module MuxRuby
258
351
  # Custom attribute writer method checking allowed values (enum).
259
352
  # @param [Object] mp4_support Object to be assigned
260
353
  def mp4_support=(mp4_support)
261
- validator = EnumAttributeValidator.new('String', ['standard', 'none'])
354
+ validator = EnumAttributeValidator.new('String', ["standard", "none"])
262
355
  unless validator.valid?(mp4_support)
263
- fail ArgumentError, 'invalid value for "mp4_support", must be one of #{validator.allowable_values}.'
356
+ fail ArgumentError, "invalid value for \"mp4_support\", must be one of #{validator.allowable_values}."
264
357
  end
265
358
  @mp4_support = mp4_support
266
359
  end
@@ -272,7 +365,6 @@ module MuxRuby
272
365
  self.class == o.class &&
273
366
  id == o.id &&
274
367
  created_at == o.created_at &&
275
- deleted_at == o.deleted_at &&
276
368
  status == o.status &&
277
369
  duration == o.duration &&
278
370
  max_stored_resolution == o.max_stored_resolution &&
@@ -282,14 +374,18 @@ module MuxRuby
282
374
  tracks == o.tracks &&
283
375
  errors == o.errors &&
284
376
  per_title_encode == o.per_title_encode &&
377
+ upload_id == o.upload_id &&
285
378
  is_live == o.is_live &&
286
379
  passthrough == o.passthrough &&
287
380
  live_stream_id == o.live_stream_id &&
288
381
  master == o.master &&
289
382
  master_access == o.master_access &&
290
383
  mp4_support == o.mp4_support &&
384
+ source_asset_id == o.source_asset_id &&
291
385
  normalize_audio == o.normalize_audio &&
292
386
  static_renditions == o.static_renditions &&
387
+ recording_times == o.recording_times &&
388
+ non_standard_input_reasons == o.non_standard_input_reasons &&
293
389
  test == o.test
294
390
  end
295
391
 
@@ -300,9 +396,9 @@ module MuxRuby
300
396
  end
301
397
 
302
398
  # Calculates hash code according to all attributes.
303
- # @return [Fixnum] Hash code
399
+ # @return [Integer] Hash code
304
400
  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
401
+ [id, created_at, status, duration, max_stored_resolution, max_stored_frame_rate, aspect_ratio, playback_ids, tracks, errors, per_title_encode, upload_id, 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
402
  end
307
403
 
308
404
  # Builds the object from hash
@@ -318,7 +414,9 @@ module MuxRuby
318
414
  def build_from_hash(attributes)
319
415
  return nil unless attributes.is_a?(Hash)
320
416
  self.class.openapi_types.each_pair do |key, type|
321
- if type =~ /\AArray<(.*)>/i
417
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
418
+ self.send("#{key}=", nil)
419
+ elsif type =~ /\AArray<(.*)>/i
322
420
  # check to ensure the input is an array given that the attribute
323
421
  # is documented as an array but the input is not
324
422
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -326,7 +424,7 @@ module MuxRuby
326
424
  end
327
425
  elsif !attributes[self.class.attribute_map[key]].nil?
328
426
  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
427
+ end
330
428
  end
331
429
 
332
430
  self
@@ -338,8 +436,8 @@ module MuxRuby
338
436
  # @return [Object] Deserialized data
339
437
  def _deserialize(type, value)
340
438
  case type.to_sym
341
- when :DateTime
342
- DateTime.parse(value)
439
+ when :Time
440
+ Time.parse(value)
343
441
  when :Date
344
442
  Date.parse(value)
345
443
  when :String
@@ -348,7 +446,7 @@ module MuxRuby
348
446
  value.to_i
349
447
  when :Float
350
448
  value.to_f
351
- when :BOOLEAN
449
+ when :Boolean
352
450
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
353
451
  true
354
452
  else
@@ -369,7 +467,9 @@ module MuxRuby
369
467
  end
370
468
  end
371
469
  else # model
372
- MuxRuby.const_get(type).build_from_hash(value)
470
+ # models (e.g. Pet) or oneOf
471
+ klass = MuxRuby.const_get(type)
472
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
373
473
  end
374
474
  end
375
475
 
@@ -391,7 +491,11 @@ module MuxRuby
391
491
  hash = {}
392
492
  self.class.attribute_map.each_pair do |attr, param|
393
493
  value = self.send(attr)
394
- next if value.nil?
494
+ if value.nil?
495
+ is_nullable = self.class.openapi_nullable.include?(attr)
496
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
497
+ end
498
+
395
499
  hash[param] = _to_hash(value)
396
500
  end
397
501
  hash