mux_ruby 1.8.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) 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 -25
  7. data/docs/AssetErrors.md +15 -4
  8. data/docs/AssetMaster.md +15 -4
  9. data/docs/AssetNonStandardInputReasons.md +29 -11
  10. data/docs/AssetRecordingTimes.md +15 -4
  11. data/docs/AssetResponse.md +13 -3
  12. data/docs/AssetStaticRenditions.md +15 -4
  13. data/docs/AssetStaticRenditionsFiles.md +23 -8
  14. data/docs/AssetsApi.md +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 +15 -4
  27. data/docs/DimensionsApi.md +72 -34
  28. data/docs/DirectUploadsApi.md +131 -56
  29. data/docs/DisableLiveStreamResponse.md +13 -3
  30. data/docs/EnableLiveStreamResponse.md +13 -3
  31. data/docs/Error.md +27 -10
  32. data/docs/ErrorsApi.md +38 -20
  33. data/docs/ExportDate.md +20 -0
  34. data/docs/ExportFile.md +22 -0
  35. data/docs/ExportsApi.md +99 -12
  36. data/docs/FilterValue.md +15 -4
  37. data/docs/FiltersApi.md +71 -33
  38. data/docs/GetAssetInputInfoResponse.md +13 -3
  39. data/docs/GetAssetOrLiveStreamIdResponse.md +18 -0
  40. data/docs/GetAssetOrLiveStreamIdResponseData.md +22 -0
  41. data/docs/GetAssetOrLiveStreamIdResponseDataObject.md +20 -0
  42. data/docs/GetAssetPlaybackIDResponse.md +13 -3
  43. data/docs/GetMetricTimeseriesDataResponse.md +17 -5
  44. data/docs/GetOverallValuesResponse.md +17 -5
  45. data/docs/GetRealTimeBreakdownResponse.md +17 -5
  46. data/docs/GetRealTimeHistogramTimeseriesResponse.md +19 -6
  47. data/docs/GetRealTimeHistogramTimeseriesResponseMeta.md +13 -3
  48. data/docs/GetRealTimeTimeseriesResponse.md +17 -5
  49. data/docs/Incident.md +53 -23
  50. data/docs/IncidentBreakdown.md +17 -5
  51. data/docs/IncidentNotification.md +17 -5
  52. data/docs/IncidentNotificationRule.md +21 -7
  53. data/docs/IncidentResponse.md +15 -4
  54. data/docs/IncidentsApi.md +118 -62
  55. data/docs/InputFile.md +15 -4
  56. data/docs/InputInfo.md +15 -4
  57. data/docs/InputSettings.md +31 -10
  58. data/docs/InputSettingsOverlaySettings.md +25 -9
  59. data/docs/InputTrack.md +29 -11
  60. data/docs/Insight.md +23 -8
  61. data/docs/ListAllMetricValuesResponse.md +17 -5
  62. data/docs/ListAssetsResponse.md +13 -3
  63. data/docs/ListBreakdownValuesResponse.md +17 -5
  64. data/docs/ListDeliveryUsageResponse.md +19 -6
  65. data/docs/ListDimensionValuesResponse.md +17 -5
  66. data/docs/ListDimensionsResponse.md +17 -5
  67. data/docs/ListErrorsResponse.md +17 -5
  68. data/docs/ListExportsResponse.md +17 -5
  69. data/docs/ListFilterValuesResponse.md +17 -5
  70. data/docs/ListFiltersResponse.md +17 -5
  71. data/docs/ListFiltersResponseData.md +15 -4
  72. data/docs/ListIncidentsResponse.md +17 -5
  73. data/docs/ListInsightsResponse.md +17 -5
  74. data/docs/ListLiveStreamsResponse.md +13 -3
  75. data/docs/ListRealTimeDimensionsResponse.md +17 -5
  76. data/docs/ListRealTimeDimensionsResponseData.md +15 -4
  77. data/docs/ListRealTimeMetricsResponse.md +17 -5
  78. data/docs/ListRelatedIncidentsResponse.md +17 -5
  79. data/docs/ListSigningKeysResponse.md +13 -3
  80. data/docs/ListUploadsResponse.md +13 -3
  81. data/docs/ListVideoViewExportsResponse.md +22 -0
  82. data/docs/ListVideoViewsResponse.md +17 -5
  83. data/docs/LiveStream.md +39 -15
  84. data/docs/LiveStreamResponse.md +13 -3
  85. data/docs/LiveStreamsApi.md +418 -170
  86. data/docs/Metric.md +21 -7
  87. data/docs/MetricsApi.md +211 -117
  88. data/docs/NotificationRule.md +17 -5
  89. data/docs/OverallValues.md +19 -6
  90. data/docs/PlaybackID.md +15 -4
  91. data/docs/PlaybackIDApi.md +78 -0
  92. data/docs/PlaybackPolicy.md +10 -2
  93. data/docs/RealTimeApi.md +177 -81
  94. data/docs/RealTimeBreakdownValue.md +21 -7
  95. data/docs/RealTimeHistogramTimeseriesBucket.md +15 -4
  96. data/docs/RealTimeHistogramTimeseriesBucketValues.md +15 -4
  97. data/docs/RealTimeHistogramTimeseriesDatapoint.md +25 -9
  98. data/docs/RealTimeTimeseriesDatapoint.md +17 -5
  99. data/docs/Score.md +23 -8
  100. data/docs/SignalLiveStreamCompleteResponse.md +13 -3
  101. data/docs/SigningKey.md +17 -5
  102. data/docs/SigningKeyResponse.md +13 -3
  103. data/docs/SimulcastTarget.md +21 -7
  104. data/docs/SimulcastTargetResponse.md +13 -3
  105. data/docs/Track.md +37 -15
  106. data/docs/URLSigningKeysApi.md +130 -54
  107. data/docs/UpdateAssetMP4SupportRequest.md +13 -3
  108. data/docs/UpdateAssetMasterAccessRequest.md +13 -3
  109. data/docs/Upload.md +29 -11
  110. data/docs/UploadError.md +15 -4
  111. data/docs/UploadResponse.md +13 -3
  112. data/docs/VideoView.md +251 -114
  113. data/docs/VideoViewEvent.md +19 -6
  114. data/docs/VideoViewResponse.md +15 -4
  115. data/docs/VideoViewsApi.md +78 -41
  116. data/examples/video/exercise-assets.rb +21 -0
  117. data/examples/video/exercise-live-streams.rb +8 -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 +16 -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 +55 -29
  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 +86 -13
  163. data/lib/mux_ruby/api/filters_api.rb +53 -27
  164. data/lib/mux_ruby/api/incidents_api.rb +94 -52
  165. data/lib/mux_ruby/api/live_streams_api.rb +299 -157
  166. data/lib/mux_ruby/api/metrics_api.rb +193 -122
  167. data/lib/mux_ruby/api/playback_id_api.rb +85 -0
  168. data/lib/mux_ruby/api/real_time_api.rb +149 -87
  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 +129 -58
  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 +78 -43
  179. data/lib/mux_ruby/models/asset_recording_times.rb +52 -18
  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 +49 -15
  194. data/lib/mux_ruby/models/disable_live_stream_response.rb +48 -14
  195. data/lib/mux_ruby/models/enable_live_stream_response.rb +48 -14
  196. data/lib/mux_ruby/models/error.rb +63 -21
  197. data/lib/mux_ruby/models/export_date.rb +229 -0
  198. data/lib/mux_ruby/models/export_file.rb +236 -0
  199. data/lib/mux_ruby/models/filter_value.rb +49 -15
  200. data/lib/mux_ruby/models/get_asset_input_info_response.rb +48 -14
  201. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response.rb +218 -0
  202. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data.rb +237 -0
  203. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data_object.rb +264 -0
  204. data/lib/mux_ruby/models/get_asset_playback_id_response.rb +48 -14
  205. data/lib/mux_ruby/models/get_metric_timeseries_data_response.rb +50 -16
  206. data/lib/mux_ruby/models/get_overall_values_response.rb +50 -16
  207. data/lib/mux_ruby/models/get_real_time_breakdown_response.rb +50 -16
  208. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response.rb +51 -17
  209. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response_meta.rb +48 -14
  210. data/lib/mux_ruby/models/get_real_time_timeseries_response.rb +50 -16
  211. data/lib/mux_ruby/models/incident.rb +68 -34
  212. data/lib/mux_ruby/models/incident_breakdown.rb +50 -16
  213. data/lib/mux_ruby/models/incident_notification.rb +50 -16
  214. data/lib/mux_ruby/models/incident_notification_rule.rb +52 -18
  215. data/lib/mux_ruby/models/incident_response.rb +49 -15
  216. data/lib/mux_ruby/models/input_file.rb +49 -15
  217. data/lib/mux_ruby/models/input_info.rb +49 -15
  218. data/lib/mux_ruby/models/input_settings.rb +91 -30
  219. data/lib/mux_ruby/models/input_settings_overlay_settings.rb +68 -26
  220. data/lib/mux_ruby/models/input_track.rb +56 -22
  221. data/lib/mux_ruby/models/insight.rb +53 -19
  222. data/lib/mux_ruby/models/list_all_metric_values_response.rb +50 -16
  223. data/lib/mux_ruby/models/list_assets_response.rb +48 -14
  224. data/lib/mux_ruby/models/list_breakdown_values_response.rb +50 -16
  225. data/lib/mux_ruby/models/list_delivery_usage_response.rb +51 -17
  226. data/lib/mux_ruby/models/list_dimension_values_response.rb +50 -16
  227. data/lib/mux_ruby/models/list_dimensions_response.rb +50 -16
  228. data/lib/mux_ruby/models/list_errors_response.rb +50 -16
  229. data/lib/mux_ruby/models/list_exports_response.rb +50 -16
  230. data/lib/mux_ruby/models/list_filter_values_response.rb +50 -16
  231. data/lib/mux_ruby/models/list_filters_response.rb +50 -16
  232. data/lib/mux_ruby/models/list_filters_response_data.rb +49 -15
  233. data/lib/mux_ruby/models/list_incidents_response.rb +50 -16
  234. data/lib/mux_ruby/models/list_insights_response.rb +50 -16
  235. data/lib/mux_ruby/models/list_live_streams_response.rb +48 -14
  236. data/lib/mux_ruby/models/list_real_time_dimensions_response.rb +50 -16
  237. data/lib/mux_ruby/models/list_real_time_dimensions_response_data.rb +49 -15
  238. data/lib/mux_ruby/models/list_real_time_metrics_response.rb +50 -16
  239. data/lib/mux_ruby/models/list_related_incidents_response.rb +50 -16
  240. data/lib/mux_ruby/models/list_signing_keys_response.rb +48 -14
  241. data/lib/mux_ruby/models/list_uploads_response.rb +48 -14
  242. data/lib/mux_ruby/models/list_video_view_exports_response.rb +240 -0
  243. data/lib/mux_ruby/models/list_video_views_response.rb +50 -16
  244. data/lib/mux_ruby/models/live_stream.rb +121 -29
  245. data/lib/mux_ruby/models/live_stream_response.rb +48 -14
  246. data/lib/mux_ruby/models/metric.rb +52 -18
  247. data/lib/mux_ruby/models/notification_rule.rb +50 -16
  248. data/lib/mux_ruby/models/overall_values.rb +51 -17
  249. data/lib/mux_ruby/models/playback_id.rb +50 -15
  250. data/lib/mux_ruby/models/playback_policy.rb +12 -6
  251. data/lib/mux_ruby/models/real_time_breakdown_value.rb +52 -18
  252. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket.rb +50 -16
  253. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket_values.rb +49 -15
  254. data/lib/mux_ruby/models/real_time_histogram_timeseries_datapoint.rb +54 -20
  255. data/lib/mux_ruby/models/real_time_timeseries_datapoint.rb +50 -16
  256. data/lib/mux_ruby/models/score.rb +53 -19
  257. data/lib/mux_ruby/models/signal_live_stream_complete_response.rb +48 -14
  258. data/lib/mux_ruby/models/signing_key.rb +53 -16
  259. data/lib/mux_ruby/models/signing_key_response.rb +48 -14
  260. data/lib/mux_ruby/models/simulcast_target.rb +55 -21
  261. data/lib/mux_ruby/models/simulcast_target_response.rb +48 -14
  262. data/lib/mux_ruby/models/track.rb +92 -33
  263. data/lib/mux_ruby/models/update_asset_master_access_request.rb +51 -17
  264. data/lib/mux_ruby/models/update_asset_mp4_support_request.rb +51 -17
  265. data/lib/mux_ruby/models/upload.rb +62 -26
  266. data/lib/mux_ruby/models/upload_error.rb +51 -15
  267. data/lib/mux_ruby/models/upload_response.rb +48 -14
  268. data/lib/mux_ruby/models/video_view.rb +242 -136
  269. data/lib/mux_ruby/models/video_view_event.rb +51 -17
  270. data/lib/mux_ruby/models/video_view_response.rb +49 -15
  271. data/lib/mux_ruby/version.rb +10 -3
  272. data/mux_ruby.gemspec +15 -15
  273. data/spec/api/assets_api_spec.rb +2 -0
  274. data/spec/api/playback_id_api_spec.rb +40 -0
  275. data/spec/api_client_spec.rb +10 -3
  276. data/spec/configuration_spec.rb +9 -2
  277. data/spec/models/asset_master_spec.rb +4 -0
  278. data/spec/models/asset_spec.rb +10 -0
  279. data/spec/models/export_date_spec.rb +40 -0
  280. data/spec/models/export_file_spec.rb +46 -0
  281. data/spec/models/get_asset_or_live_stream_id_response_data_object_spec.rb +44 -0
  282. data/spec/models/get_asset_or_live_stream_id_response_data_spec.rb +46 -0
  283. data/spec/models/get_asset_or_live_stream_id_response_spec.rb +34 -0
  284. data/spec/models/input_settings_spec.rb +12 -0
  285. data/spec/models/list_video_view_exports_response_spec.rb +46 -0
  286. data/spec/models/track_spec.rb +4 -0
  287. data/spec/spec_helper.rb +9 -2
  288. metadata +161 -235
@@ -1,14 +1,25 @@
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
17
+ # Object that describes any errors that happened when processing this asset.
9
18
  class AssetErrors
19
+ # The type of error that occurred for this asset.
10
20
  attr_accessor :type
11
21
 
22
+ # Error messages with more details.
12
23
  attr_accessor :messages
13
24
 
14
25
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -19,6 +30,11 @@ module MuxRuby
19
30
  }
20
31
  end
21
32
 
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
22
38
  # Attribute type mapping.
23
39
  def self.openapi_types
24
40
  {
@@ -27,19 +43,32 @@ module MuxRuby
27
43
  }
28
44
  end
29
45
 
46
+ # List of attributes with nullable: true
47
+ def self.openapi_nullable
48
+ Set.new([
49
+ ])
50
+ end
51
+
30
52
  # Initializes the object
31
53
  # @param [Hash] attributes Model attributes in the form of hash
32
54
  def initialize(attributes = {})
33
- return unless attributes.is_a?(Hash)
55
+ if (!attributes.is_a?(Hash))
56
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::AssetErrors` initialize method"
57
+ end
34
58
 
35
- # convert string to symbol for hash key
36
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
59
+ # check to see if the attribute exists and convert string to symbol for hash key
60
+ attributes = attributes.each_with_object({}) { |(k, v), h|
61
+ if (!self.class.attribute_map.key?(k.to_sym))
62
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::AssetErrors`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
63
+ end
64
+ h[k.to_sym] = v
65
+ }
37
66
 
38
- if attributes.has_key?(:'type')
67
+ if attributes.key?(:'type')
39
68
  self.type = attributes[:'type']
40
69
  end
41
70
 
42
- if attributes.has_key?(:'messages')
71
+ if attributes.key?(:'messages')
43
72
  if (value = attributes[:'messages']).is_a?(Array)
44
73
  self.messages = value
45
74
  end
@@ -75,7 +104,7 @@ module MuxRuby
75
104
  end
76
105
 
77
106
  # Calculates hash code according to all attributes.
78
- # @return [Fixnum] Hash code
107
+ # @return [Integer] Hash code
79
108
  def hash
80
109
  [type, messages].hash
81
110
  end
@@ -93,7 +122,9 @@ module MuxRuby
93
122
  def build_from_hash(attributes)
94
123
  return nil unless attributes.is_a?(Hash)
95
124
  self.class.openapi_types.each_pair do |key, type|
96
- if type =~ /\AArray<(.*)>/i
125
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
126
+ self.send("#{key}=", nil)
127
+ elsif type =~ /\AArray<(.*)>/i
97
128
  # check to ensure the input is an array given that the attribute
98
129
  # is documented as an array but the input is not
99
130
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -101,7 +132,7 @@ module MuxRuby
101
132
  end
102
133
  elsif !attributes[self.class.attribute_map[key]].nil?
103
134
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
104
- end # or else data not found in attributes(hash), not an issue as the data can be optional
135
+ end
105
136
  end
106
137
 
107
138
  self
@@ -113,8 +144,8 @@ module MuxRuby
113
144
  # @return [Object] Deserialized data
114
145
  def _deserialize(type, value)
115
146
  case type.to_sym
116
- when :DateTime
117
- DateTime.parse(value)
147
+ when :Time
148
+ Time.parse(value)
118
149
  when :Date
119
150
  Date.parse(value)
120
151
  when :String
@@ -123,7 +154,7 @@ module MuxRuby
123
154
  value.to_i
124
155
  when :Float
125
156
  value.to_f
126
- when :BOOLEAN
157
+ when :Boolean
127
158
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
128
159
  true
129
160
  else
@@ -144,7 +175,9 @@ module MuxRuby
144
175
  end
145
176
  end
146
177
  else # model
147
- MuxRuby.const_get(type).build_from_hash(value)
178
+ # models (e.g. Pet) or oneOf
179
+ klass = MuxRuby.const_get(type)
180
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
148
181
  end
149
182
  end
150
183
 
@@ -166,7 +199,11 @@ module MuxRuby
166
199
  hash = {}
167
200
  self.class.attribute_map.each_pair do |attr, param|
168
201
  value = self.send(attr)
169
- next if value.nil?
202
+ if value.nil?
203
+ is_nullable = self.class.openapi_nullable.include?(attr)
204
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
205
+ end
206
+
170
207
  hash[param] = _to_hash(value)
171
208
  end
172
209
  hash
@@ -1,16 +1,48 @@
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
17
+ # An object containing the current status of Master Access and the link to the Master MP4 file when ready. This object does not exist if `master_acess` is set to `none` and when the temporary URL expires.
9
18
  class AssetMaster
10
19
  attr_accessor :status
11
20
 
21
+ # The temporary URL to the master version of the video, as an MP4 file. This URL will expire after 24 hours.
12
22
  attr_accessor :url
13
23
 
24
+ class EnumAttributeValidator
25
+ attr_reader :datatype
26
+ attr_reader :allowable_values
27
+
28
+ def initialize(datatype, allowable_values)
29
+ @allowable_values = allowable_values.map do |value|
30
+ case datatype.to_s
31
+ when /Integer/i
32
+ value.to_i
33
+ when /Float/i
34
+ value.to_f
35
+ else
36
+ value
37
+ end
38
+ end
39
+ end
40
+
41
+ def valid?(value)
42
+ !value || allowable_values.include?(value)
43
+ end
44
+ end
45
+
14
46
  # Attribute mapping from ruby-style variable name to JSON key.
15
47
  def self.attribute_map
16
48
  {
@@ -19,6 +51,11 @@ module MuxRuby
19
51
  }
20
52
  end
21
53
 
54
+ # Returns all the JSON keys this model knows about
55
+ def self.acceptable_attributes
56
+ attribute_map.values
57
+ end
58
+
22
59
  # Attribute type mapping.
23
60
  def self.openapi_types
24
61
  {
@@ -27,19 +64,32 @@ module MuxRuby
27
64
  }
28
65
  end
29
66
 
67
+ # List of attributes with nullable: true
68
+ def self.openapi_nullable
69
+ Set.new([
70
+ ])
71
+ end
72
+
30
73
  # Initializes the object
31
74
  # @param [Hash] attributes Model attributes in the form of hash
32
75
  def initialize(attributes = {})
33
- return unless attributes.is_a?(Hash)
76
+ if (!attributes.is_a?(Hash))
77
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::AssetMaster` initialize method"
78
+ end
34
79
 
35
- # convert string to symbol for hash key
36
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
80
+ # check to see if the attribute exists and convert string to symbol for hash key
81
+ attributes = attributes.each_with_object({}) { |(k, v), h|
82
+ if (!self.class.attribute_map.key?(k.to_sym))
83
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::AssetMaster`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
84
+ end
85
+ h[k.to_sym] = v
86
+ }
37
87
 
38
- if attributes.has_key?(:'status')
88
+ if attributes.key?(:'status')
39
89
  self.status = attributes[:'status']
40
90
  end
41
91
 
42
- if attributes.has_key?(:'url')
92
+ if attributes.key?(:'url')
43
93
  self.url = attributes[:'url']
44
94
  end
45
95
  end
@@ -54,9 +104,21 @@ module MuxRuby
54
104
  # Check to see if the all the properties in the model are valid
55
105
  # @return true if the model is valid
56
106
  def valid?
107
+ status_validator = EnumAttributeValidator.new('String', ["ready", "preparing", "errored"])
108
+ return false unless status_validator.valid?(@status)
57
109
  true
58
110
  end
59
111
 
112
+ # Custom attribute writer method checking allowed values (enum).
113
+ # @param [Object] status Object to be assigned
114
+ def status=(status)
115
+ validator = EnumAttributeValidator.new('String', ["ready", "preparing", "errored"])
116
+ unless validator.valid?(status)
117
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
118
+ end
119
+ @status = status
120
+ end
121
+
60
122
  # Checks equality by comparing each attribute.
61
123
  # @param [Object] Object to be compared
62
124
  def ==(o)
@@ -73,7 +135,7 @@ module MuxRuby
73
135
  end
74
136
 
75
137
  # Calculates hash code according to all attributes.
76
- # @return [Fixnum] Hash code
138
+ # @return [Integer] Hash code
77
139
  def hash
78
140
  [status, url].hash
79
141
  end
@@ -91,7 +153,9 @@ module MuxRuby
91
153
  def build_from_hash(attributes)
92
154
  return nil unless attributes.is_a?(Hash)
93
155
  self.class.openapi_types.each_pair do |key, type|
94
- if type =~ /\AArray<(.*)>/i
156
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
157
+ self.send("#{key}=", nil)
158
+ elsif type =~ /\AArray<(.*)>/i
95
159
  # check to ensure the input is an array given that the attribute
96
160
  # is documented as an array but the input is not
97
161
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -99,7 +163,7 @@ module MuxRuby
99
163
  end
100
164
  elsif !attributes[self.class.attribute_map[key]].nil?
101
165
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
102
- end # or else data not found in attributes(hash), not an issue as the data can be optional
166
+ end
103
167
  end
104
168
 
105
169
  self
@@ -111,8 +175,8 @@ module MuxRuby
111
175
  # @return [Object] Deserialized data
112
176
  def _deserialize(type, value)
113
177
  case type.to_sym
114
- when :DateTime
115
- DateTime.parse(value)
178
+ when :Time
179
+ Time.parse(value)
116
180
  when :Date
117
181
  Date.parse(value)
118
182
  when :String
@@ -121,7 +185,7 @@ module MuxRuby
121
185
  value.to_i
122
186
  when :Float
123
187
  value.to_f
124
- when :BOOLEAN
188
+ when :Boolean
125
189
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
126
190
  true
127
191
  else
@@ -142,7 +206,9 @@ module MuxRuby
142
206
  end
143
207
  end
144
208
  else # model
145
- MuxRuby.const_get(type).build_from_hash(value)
209
+ # models (e.g. Pet) or oneOf
210
+ klass = MuxRuby.const_get(type)
211
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
146
212
  end
147
213
  end
148
214
 
@@ -164,7 +230,11 @@ module MuxRuby
164
230
  hash = {}
165
231
  self.class.attribute_map.each_pair do |attr, param|
166
232
  value = self.send(attr)
167
- next if value.nil?
233
+ if value.nil?
234
+ is_nullable = self.class.openapi_nullable.include?(attr)
235
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
236
+ end
237
+
168
238
  hash[param] = _to_hash(value)
169
239
  end
170
240
  hash
@@ -1,37 +1,46 @@
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
17
+ # An object containing one or more reasons the input file is non-standard. See [the guide on minimizing processing time](https://docs.mux.com/guides/video/minimize-processing-time) for more information on what a standard input is defined as. This object only exists on on-demand assets that have non-standard inputs, so if missing you can assume the input qualifies as standard.
9
18
  class AssetNonStandardInputReasons
10
- # The video codec used on the input file
19
+ # The video codec used on the input file. For example, the input file encoded with `hevc` video codec is non-standard and the value of this parameter is `hevc`.
11
20
  attr_accessor :video_codec
12
21
 
13
- # The audio codec used on the input file
22
+ # The audio codec used on the input file. Non-AAC audio codecs are non-standard.
14
23
  attr_accessor :audio_codec
15
24
 
16
- # The video key frame Interval (also called as Group of Picture or GOP) of the input file
25
+ # The video key frame Interval (also called as Group of Picture or GOP) of the input file is `high`. This parameter is present when the gop is greater than 10 seconds.
17
26
  attr_accessor :video_gop_size
18
27
 
19
- # The video frame rate of the input file
28
+ # The video frame rate of the input file. Video with average frames per second (fps) less than 10 or greater than 120 is non-standard. A `-1` frame rate value indicates Mux could not determine the frame rate of the video track.
20
29
  attr_accessor :video_frame_rate
21
30
 
22
- # The video resolution of the input file
31
+ # The video resolution of the input file. Video resolution higher than 2048 pixels on any one dimension (height or width) is considered non-standard, The resolution value is presented as `width` x `height` in pixels.
23
32
  attr_accessor :video_resolution
24
33
 
25
- # The video pixel aspect ratio of the input file
34
+ # The video pixel aspect ratio of the input file.
26
35
  attr_accessor :pixel_aspect_ratio
27
36
 
28
- # Video Edit List reason indicates that the input file's video track contains a complex Edit Decision List
37
+ # Video Edit List reason indicates that the input file's video track contains a complex Edit Decision List.
29
38
  attr_accessor :video_edit_list
30
39
 
31
- # Audio Edit List reason indicates that the input file's audio track contains a complex Edit Decision List
40
+ # Audio Edit List reason indicates that the input file's audio track contains a complex Edit Decision List.
32
41
  attr_accessor :audio_edit_list
33
42
 
34
- # A catch-all reason when the input file in created with non-standard encoding parameters
43
+ # A catch-all reason when the input file in created with non-standard encoding parameters.
35
44
  attr_accessor :unexpected_media_file_parameters
36
45
 
37
46
  class EnumAttributeValidator
@@ -71,6 +80,11 @@ module MuxRuby
71
80
  }
72
81
  end
73
82
 
83
+ # Returns all the JSON keys this model knows about
84
+ def self.acceptable_attributes
85
+ attribute_map.values
86
+ end
87
+
74
88
  # Attribute type mapping.
75
89
  def self.openapi_types
76
90
  {
@@ -86,47 +100,60 @@ module MuxRuby
86
100
  }
87
101
  end
88
102
 
103
+ # List of attributes with nullable: true
104
+ def self.openapi_nullable
105
+ Set.new([
106
+ ])
107
+ end
108
+
89
109
  # Initializes the object
90
110
  # @param [Hash] attributes Model attributes in the form of hash
91
111
  def initialize(attributes = {})
92
- return unless attributes.is_a?(Hash)
112
+ if (!attributes.is_a?(Hash))
113
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::AssetNonStandardInputReasons` initialize method"
114
+ end
93
115
 
94
- # convert string to symbol for hash key
95
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
116
+ # check to see if the attribute exists and convert string to symbol for hash key
117
+ attributes = attributes.each_with_object({}) { |(k, v), h|
118
+ if (!self.class.attribute_map.key?(k.to_sym))
119
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::AssetNonStandardInputReasons`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
120
+ end
121
+ h[k.to_sym] = v
122
+ }
96
123
 
97
- if attributes.has_key?(:'video_codec')
124
+ if attributes.key?(:'video_codec')
98
125
  self.video_codec = attributes[:'video_codec']
99
126
  end
100
127
 
101
- if attributes.has_key?(:'audio_codec')
128
+ if attributes.key?(:'audio_codec')
102
129
  self.audio_codec = attributes[:'audio_codec']
103
130
  end
104
131
 
105
- if attributes.has_key?(:'video_gop_size')
132
+ if attributes.key?(:'video_gop_size')
106
133
  self.video_gop_size = attributes[:'video_gop_size']
107
134
  end
108
135
 
109
- if attributes.has_key?(:'video_frame_rate')
136
+ if attributes.key?(:'video_frame_rate')
110
137
  self.video_frame_rate = attributes[:'video_frame_rate']
111
138
  end
112
139
 
113
- if attributes.has_key?(:'video_resolution')
140
+ if attributes.key?(:'video_resolution')
114
141
  self.video_resolution = attributes[:'video_resolution']
115
142
  end
116
143
 
117
- if attributes.has_key?(:'pixel_aspect_ratio')
144
+ if attributes.key?(:'pixel_aspect_ratio')
118
145
  self.pixel_aspect_ratio = attributes[:'pixel_aspect_ratio']
119
146
  end
120
147
 
121
- if attributes.has_key?(:'video_edit_list')
148
+ if attributes.key?(:'video_edit_list')
122
149
  self.video_edit_list = attributes[:'video_edit_list']
123
150
  end
124
151
 
125
- if attributes.has_key?(:'audio_edit_list')
152
+ if attributes.key?(:'audio_edit_list')
126
153
  self.audio_edit_list = attributes[:'audio_edit_list']
127
154
  end
128
155
 
129
- if attributes.has_key?(:'unexpected_media_file_parameters')
156
+ if attributes.key?(:'unexpected_media_file_parameters')
130
157
  self.unexpected_media_file_parameters = attributes[:'unexpected_media_file_parameters']
131
158
  end
132
159
  end
@@ -141,13 +168,13 @@ module MuxRuby
141
168
  # Check to see if the all the properties in the model are valid
142
169
  # @return true if the model is valid
143
170
  def valid?
144
- video_gop_size_validator = EnumAttributeValidator.new('String', ['high'])
171
+ video_gop_size_validator = EnumAttributeValidator.new('String', ["high"])
145
172
  return false unless video_gop_size_validator.valid?(@video_gop_size)
146
- video_edit_list_validator = EnumAttributeValidator.new('String', ['non-standard'])
173
+ video_edit_list_validator = EnumAttributeValidator.new('String', ["non-standard"])
147
174
  return false unless video_edit_list_validator.valid?(@video_edit_list)
148
- audio_edit_list_validator = EnumAttributeValidator.new('String', ['non-standard'])
175
+ audio_edit_list_validator = EnumAttributeValidator.new('String', ["non-standard"])
149
176
  return false unless audio_edit_list_validator.valid?(@audio_edit_list)
150
- unexpected_media_file_parameters_validator = EnumAttributeValidator.new('String', ['non-standard'])
177
+ unexpected_media_file_parameters_validator = EnumAttributeValidator.new('String', ["non-standard"])
151
178
  return false unless unexpected_media_file_parameters_validator.valid?(@unexpected_media_file_parameters)
152
179
  true
153
180
  end
@@ -155,9 +182,9 @@ module MuxRuby
155
182
  # Custom attribute writer method checking allowed values (enum).
156
183
  # @param [Object] video_gop_size Object to be assigned
157
184
  def video_gop_size=(video_gop_size)
158
- validator = EnumAttributeValidator.new('String', ['high'])
185
+ validator = EnumAttributeValidator.new('String', ["high"])
159
186
  unless validator.valid?(video_gop_size)
160
- fail ArgumentError, 'invalid value for "video_gop_size", must be one of #{validator.allowable_values}.'
187
+ fail ArgumentError, "invalid value for \"video_gop_size\", must be one of #{validator.allowable_values}."
161
188
  end
162
189
  @video_gop_size = video_gop_size
163
190
  end
@@ -165,9 +192,9 @@ module MuxRuby
165
192
  # Custom attribute writer method checking allowed values (enum).
166
193
  # @param [Object] video_edit_list Object to be assigned
167
194
  def video_edit_list=(video_edit_list)
168
- validator = EnumAttributeValidator.new('String', ['non-standard'])
195
+ validator = EnumAttributeValidator.new('String', ["non-standard"])
169
196
  unless validator.valid?(video_edit_list)
170
- fail ArgumentError, 'invalid value for "video_edit_list", must be one of #{validator.allowable_values}.'
197
+ fail ArgumentError, "invalid value for \"video_edit_list\", must be one of #{validator.allowable_values}."
171
198
  end
172
199
  @video_edit_list = video_edit_list
173
200
  end
@@ -175,9 +202,9 @@ module MuxRuby
175
202
  # Custom attribute writer method checking allowed values (enum).
176
203
  # @param [Object] audio_edit_list Object to be assigned
177
204
  def audio_edit_list=(audio_edit_list)
178
- validator = EnumAttributeValidator.new('String', ['non-standard'])
205
+ validator = EnumAttributeValidator.new('String', ["non-standard"])
179
206
  unless validator.valid?(audio_edit_list)
180
- fail ArgumentError, 'invalid value for "audio_edit_list", must be one of #{validator.allowable_values}.'
207
+ fail ArgumentError, "invalid value for \"audio_edit_list\", must be one of #{validator.allowable_values}."
181
208
  end
182
209
  @audio_edit_list = audio_edit_list
183
210
  end
@@ -185,9 +212,9 @@ module MuxRuby
185
212
  # Custom attribute writer method checking allowed values (enum).
186
213
  # @param [Object] unexpected_media_file_parameters Object to be assigned
187
214
  def unexpected_media_file_parameters=(unexpected_media_file_parameters)
188
- validator = EnumAttributeValidator.new('String', ['non-standard'])
215
+ validator = EnumAttributeValidator.new('String', ["non-standard"])
189
216
  unless validator.valid?(unexpected_media_file_parameters)
190
- fail ArgumentError, 'invalid value for "unexpected_media_file_parameters", must be one of #{validator.allowable_values}.'
217
+ fail ArgumentError, "invalid value for \"unexpected_media_file_parameters\", must be one of #{validator.allowable_values}."
191
218
  end
192
219
  @unexpected_media_file_parameters = unexpected_media_file_parameters
193
220
  end
@@ -215,7 +242,7 @@ module MuxRuby
215
242
  end
216
243
 
217
244
  # Calculates hash code according to all attributes.
218
- # @return [Fixnum] Hash code
245
+ # @return [Integer] Hash code
219
246
  def hash
220
247
  [video_codec, audio_codec, video_gop_size, video_frame_rate, video_resolution, pixel_aspect_ratio, video_edit_list, audio_edit_list, unexpected_media_file_parameters].hash
221
248
  end
@@ -233,7 +260,9 @@ module MuxRuby
233
260
  def build_from_hash(attributes)
234
261
  return nil unless attributes.is_a?(Hash)
235
262
  self.class.openapi_types.each_pair do |key, type|
236
- if type =~ /\AArray<(.*)>/i
263
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
264
+ self.send("#{key}=", nil)
265
+ elsif type =~ /\AArray<(.*)>/i
237
266
  # check to ensure the input is an array given that the attribute
238
267
  # is documented as an array but the input is not
239
268
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -241,7 +270,7 @@ module MuxRuby
241
270
  end
242
271
  elsif !attributes[self.class.attribute_map[key]].nil?
243
272
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
244
- end # or else data not found in attributes(hash), not an issue as the data can be optional
273
+ end
245
274
  end
246
275
 
247
276
  self
@@ -253,8 +282,8 @@ module MuxRuby
253
282
  # @return [Object] Deserialized data
254
283
  def _deserialize(type, value)
255
284
  case type.to_sym
256
- when :DateTime
257
- DateTime.parse(value)
285
+ when :Time
286
+ Time.parse(value)
258
287
  when :Date
259
288
  Date.parse(value)
260
289
  when :String
@@ -263,7 +292,7 @@ module MuxRuby
263
292
  value.to_i
264
293
  when :Float
265
294
  value.to_f
266
- when :BOOLEAN
295
+ when :Boolean
267
296
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
268
297
  true
269
298
  else
@@ -284,7 +313,9 @@ module MuxRuby
284
313
  end
285
314
  end
286
315
  else # model
287
- MuxRuby.const_get(type).build_from_hash(value)
316
+ # models (e.g. Pet) or oneOf
317
+ klass = MuxRuby.const_get(type)
318
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
288
319
  end
289
320
  end
290
321
 
@@ -306,7 +337,11 @@ module MuxRuby
306
337
  hash = {}
307
338
  self.class.attribute_map.each_pair do |attr, param|
308
339
  value = self.send(attr)
309
- next if value.nil?
340
+ if value.nil?
341
+ is_nullable = self.class.openapi_nullable.include?(attr)
342
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
343
+ end
344
+
310
345
  hash[param] = _to_hash(value)
311
346
  end
312
347
  hash