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,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 CreateUploadRequest
@@ -27,39 +35,57 @@ module MuxRuby
27
35
  }
28
36
  end
29
37
 
38
+ # Returns all the JSON keys this model knows about
39
+ def self.acceptable_attributes
40
+ attribute_map.values
41
+ end
42
+
30
43
  # Attribute type mapping.
31
44
  def self.openapi_types
32
45
  {
33
46
  :'timeout' => :'Integer',
34
47
  :'cors_origin' => :'String',
35
48
  :'new_asset_settings' => :'CreateAssetRequest',
36
- :'test' => :'BOOLEAN'
49
+ :'test' => :'Boolean'
37
50
  }
38
51
  end
39
52
 
53
+ # List of attributes with nullable: true
54
+ def self.openapi_nullable
55
+ Set.new([
56
+ ])
57
+ end
58
+
40
59
  # Initializes the object
41
60
  # @param [Hash] attributes Model attributes in the form of hash
42
61
  def initialize(attributes = {})
43
- return unless attributes.is_a?(Hash)
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::CreateUploadRequest` initialize method"
64
+ end
44
65
 
45
- # convert string to symbol for hash key
46
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::CreateUploadRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
47
73
 
48
- if attributes.has_key?(:'timeout')
74
+ if attributes.key?(:'timeout')
49
75
  self.timeout = attributes[:'timeout']
50
76
  else
51
77
  self.timeout = 3600
52
78
  end
53
79
 
54
- if attributes.has_key?(:'cors_origin')
80
+ if attributes.key?(:'cors_origin')
55
81
  self.cors_origin = attributes[:'cors_origin']
56
82
  end
57
83
 
58
- if attributes.has_key?(:'new_asset_settings')
84
+ if attributes.key?(:'new_asset_settings')
59
85
  self.new_asset_settings = attributes[:'new_asset_settings']
60
86
  end
61
87
 
62
- if attributes.has_key?(:'test')
88
+ if attributes.key?(:'test')
63
89
  self.test = attributes[:'test']
64
90
  end
65
91
  end
@@ -124,7 +150,7 @@ module MuxRuby
124
150
  end
125
151
 
126
152
  # Calculates hash code according to all attributes.
127
- # @return [Fixnum] Hash code
153
+ # @return [Integer] Hash code
128
154
  def hash
129
155
  [timeout, cors_origin, new_asset_settings, test].hash
130
156
  end
@@ -142,7 +168,9 @@ module MuxRuby
142
168
  def build_from_hash(attributes)
143
169
  return nil unless attributes.is_a?(Hash)
144
170
  self.class.openapi_types.each_pair do |key, type|
145
- if type =~ /\AArray<(.*)>/i
171
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
172
+ self.send("#{key}=", nil)
173
+ elsif type =~ /\AArray<(.*)>/i
146
174
  # check to ensure the input is an array given that the attribute
147
175
  # is documented as an array but the input is not
148
176
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -150,7 +178,7 @@ module MuxRuby
150
178
  end
151
179
  elsif !attributes[self.class.attribute_map[key]].nil?
152
180
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
153
- end # or else data not found in attributes(hash), not an issue as the data can be optional
181
+ end
154
182
  end
155
183
 
156
184
  self
@@ -162,8 +190,8 @@ module MuxRuby
162
190
  # @return [Object] Deserialized data
163
191
  def _deserialize(type, value)
164
192
  case type.to_sym
165
- when :DateTime
166
- DateTime.parse(value)
193
+ when :Time
194
+ Time.parse(value)
167
195
  when :Date
168
196
  Date.parse(value)
169
197
  when :String
@@ -172,7 +200,7 @@ module MuxRuby
172
200
  value.to_i
173
201
  when :Float
174
202
  value.to_f
175
- when :BOOLEAN
203
+ when :Boolean
176
204
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
177
205
  true
178
206
  else
@@ -193,7 +221,9 @@ module MuxRuby
193
221
  end
194
222
  end
195
223
  else # model
196
- MuxRuby.const_get(type).build_from_hash(value)
224
+ # models (e.g. Pet) or oneOf
225
+ klass = MuxRuby.const_get(type)
226
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
197
227
  end
198
228
  end
199
229
 
@@ -215,7 +245,11 @@ module MuxRuby
215
245
  hash = {}
216
246
  self.class.attribute_map.each_pair do |attr, param|
217
247
  value = self.send(attr)
218
- next if value.nil?
248
+ if value.nil?
249
+ is_nullable = self.class.openapi_nullable.include?(attr)
250
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
251
+ end
252
+
219
253
  hash[param] = _to_hash(value)
220
254
  end
221
255
  hash
@@ -1,26 +1,66 @@
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 DeliveryReport
18
+ # Unique identifier for the live stream that created the asset.
10
19
  attr_accessor :live_stream_id
11
20
 
21
+ # Unique identifier for the asset.
12
22
  attr_accessor :asset_id
13
23
 
24
+ # The `passthrough` value for the asset.
14
25
  attr_accessor :passthrough
15
26
 
27
+ # Time at which the asset was created. Measured in seconds since the Unix epoch.
16
28
  attr_accessor :created_at
17
29
 
30
+ # If exists, time at which the asset was deleted. Measured in seconds since the Unix epoch.
31
+ attr_accessor :deleted_at
32
+
33
+ # The state of the asset.
18
34
  attr_accessor :asset_state
19
35
 
36
+ # The duration of the asset in seconds.
20
37
  attr_accessor :asset_duration
21
38
 
39
+ # Total number of delivered seconds during this time window.
22
40
  attr_accessor :delivered_seconds
23
41
 
42
+ class EnumAttributeValidator
43
+ attr_reader :datatype
44
+ attr_reader :allowable_values
45
+
46
+ def initialize(datatype, allowable_values)
47
+ @allowable_values = allowable_values.map do |value|
48
+ case datatype.to_s
49
+ when /Integer/i
50
+ value.to_i
51
+ when /Float/i
52
+ value.to_f
53
+ else
54
+ value
55
+ end
56
+ end
57
+ end
58
+
59
+ def valid?(value)
60
+ !value || allowable_values.include?(value)
61
+ end
62
+ end
63
+
24
64
  # Attribute mapping from ruby-style variable name to JSON key.
25
65
  def self.attribute_map
26
66
  {
@@ -28,12 +68,18 @@ module MuxRuby
28
68
  :'asset_id' => :'asset_id',
29
69
  :'passthrough' => :'passthrough',
30
70
  :'created_at' => :'created_at',
71
+ :'deleted_at' => :'deleted_at',
31
72
  :'asset_state' => :'asset_state',
32
73
  :'asset_duration' => :'asset_duration',
33
74
  :'delivered_seconds' => :'delivered_seconds'
34
75
  }
35
76
  end
36
77
 
78
+ # Returns all the JSON keys this model knows about
79
+ def self.acceptable_attributes
80
+ attribute_map.values
81
+ end
82
+
37
83
  # Attribute type mapping.
38
84
  def self.openapi_types
39
85
  {
@@ -41,45 +87,63 @@ module MuxRuby
41
87
  :'asset_id' => :'String',
42
88
  :'passthrough' => :'String',
43
89
  :'created_at' => :'String',
90
+ :'deleted_at' => :'String',
44
91
  :'asset_state' => :'String',
45
92
  :'asset_duration' => :'Float',
46
93
  :'delivered_seconds' => :'Float'
47
94
  }
48
95
  end
49
96
 
97
+ # List of attributes with nullable: true
98
+ def self.openapi_nullable
99
+ Set.new([
100
+ ])
101
+ end
102
+
50
103
  # Initializes the object
51
104
  # @param [Hash] attributes Model attributes in the form of hash
52
105
  def initialize(attributes = {})
53
- return unless attributes.is_a?(Hash)
106
+ if (!attributes.is_a?(Hash))
107
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::DeliveryReport` initialize method"
108
+ end
54
109
 
55
- # convert string to symbol for hash key
56
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
110
+ # check to see if the attribute exists and convert string to symbol for hash key
111
+ attributes = attributes.each_with_object({}) { |(k, v), h|
112
+ if (!self.class.attribute_map.key?(k.to_sym))
113
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::DeliveryReport`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
114
+ end
115
+ h[k.to_sym] = v
116
+ }
57
117
 
58
- if attributes.has_key?(:'live_stream_id')
118
+ if attributes.key?(:'live_stream_id')
59
119
  self.live_stream_id = attributes[:'live_stream_id']
60
120
  end
61
121
 
62
- if attributes.has_key?(:'asset_id')
122
+ if attributes.key?(:'asset_id')
63
123
  self.asset_id = attributes[:'asset_id']
64
124
  end
65
125
 
66
- if attributes.has_key?(:'passthrough')
126
+ if attributes.key?(:'passthrough')
67
127
  self.passthrough = attributes[:'passthrough']
68
128
  end
69
129
 
70
- if attributes.has_key?(:'created_at')
130
+ if attributes.key?(:'created_at')
71
131
  self.created_at = attributes[:'created_at']
72
132
  end
73
133
 
74
- if attributes.has_key?(:'asset_state')
134
+ if attributes.key?(:'deleted_at')
135
+ self.deleted_at = attributes[:'deleted_at']
136
+ end
137
+
138
+ if attributes.key?(:'asset_state')
75
139
  self.asset_state = attributes[:'asset_state']
76
140
  end
77
141
 
78
- if attributes.has_key?(:'asset_duration')
142
+ if attributes.key?(:'asset_duration')
79
143
  self.asset_duration = attributes[:'asset_duration']
80
144
  end
81
145
 
82
- if attributes.has_key?(:'delivered_seconds')
146
+ if attributes.key?(:'delivered_seconds')
83
147
  self.delivered_seconds = attributes[:'delivered_seconds']
84
148
  end
85
149
  end
@@ -94,9 +158,21 @@ module MuxRuby
94
158
  # Check to see if the all the properties in the model are valid
95
159
  # @return true if the model is valid
96
160
  def valid?
161
+ asset_state_validator = EnumAttributeValidator.new('String', ["ready", "errored", "deleted"])
162
+ return false unless asset_state_validator.valid?(@asset_state)
97
163
  true
98
164
  end
99
165
 
166
+ # Custom attribute writer method checking allowed values (enum).
167
+ # @param [Object] asset_state Object to be assigned
168
+ def asset_state=(asset_state)
169
+ validator = EnumAttributeValidator.new('String', ["ready", "errored", "deleted"])
170
+ unless validator.valid?(asset_state)
171
+ fail ArgumentError, "invalid value for \"asset_state\", must be one of #{validator.allowable_values}."
172
+ end
173
+ @asset_state = asset_state
174
+ end
175
+
100
176
  # Checks equality by comparing each attribute.
101
177
  # @param [Object] Object to be compared
102
178
  def ==(o)
@@ -106,6 +182,7 @@ module MuxRuby
106
182
  asset_id == o.asset_id &&
107
183
  passthrough == o.passthrough &&
108
184
  created_at == o.created_at &&
185
+ deleted_at == o.deleted_at &&
109
186
  asset_state == o.asset_state &&
110
187
  asset_duration == o.asset_duration &&
111
188
  delivered_seconds == o.delivered_seconds
@@ -118,9 +195,9 @@ module MuxRuby
118
195
  end
119
196
 
120
197
  # Calculates hash code according to all attributes.
121
- # @return [Fixnum] Hash code
198
+ # @return [Integer] Hash code
122
199
  def hash
123
- [live_stream_id, asset_id, passthrough, created_at, asset_state, asset_duration, delivered_seconds].hash
200
+ [live_stream_id, asset_id, passthrough, created_at, deleted_at, asset_state, asset_duration, delivered_seconds].hash
124
201
  end
125
202
 
126
203
  # Builds the object from hash
@@ -136,7 +213,9 @@ module MuxRuby
136
213
  def build_from_hash(attributes)
137
214
  return nil unless attributes.is_a?(Hash)
138
215
  self.class.openapi_types.each_pair do |key, type|
139
- if type =~ /\AArray<(.*)>/i
216
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
217
+ self.send("#{key}=", nil)
218
+ elsif type =~ /\AArray<(.*)>/i
140
219
  # check to ensure the input is an array given that the attribute
141
220
  # is documented as an array but the input is not
142
221
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -144,7 +223,7 @@ module MuxRuby
144
223
  end
145
224
  elsif !attributes[self.class.attribute_map[key]].nil?
146
225
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
147
- end # or else data not found in attributes(hash), not an issue as the data can be optional
226
+ end
148
227
  end
149
228
 
150
229
  self
@@ -156,8 +235,8 @@ module MuxRuby
156
235
  # @return [Object] Deserialized data
157
236
  def _deserialize(type, value)
158
237
  case type.to_sym
159
- when :DateTime
160
- DateTime.parse(value)
238
+ when :Time
239
+ Time.parse(value)
161
240
  when :Date
162
241
  Date.parse(value)
163
242
  when :String
@@ -166,7 +245,7 @@ module MuxRuby
166
245
  value.to_i
167
246
  when :Float
168
247
  value.to_f
169
- when :BOOLEAN
248
+ when :Boolean
170
249
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
171
250
  true
172
251
  else
@@ -187,7 +266,9 @@ module MuxRuby
187
266
  end
188
267
  end
189
268
  else # model
190
- MuxRuby.const_get(type).build_from_hash(value)
269
+ # models (e.g. Pet) or oneOf
270
+ klass = MuxRuby.const_get(type)
271
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
191
272
  end
192
273
  end
193
274
 
@@ -209,7 +290,11 @@ module MuxRuby
209
290
  hash = {}
210
291
  self.class.attribute_map.each_pair do |attr, param|
211
292
  value = self.send(attr)
212
- next if value.nil?
293
+ if value.nil?
294
+ is_nullable = self.class.openapi_nullable.include?(attr)
295
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
296
+ end
297
+
213
298
  hash[param] = _to_hash(value)
214
299
  end
215
300
  hash
@@ -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 DimensionValue
@@ -19,6 +27,11 @@ module MuxRuby
19
27
  }
20
28
  end
21
29
 
30
+ # Returns all the JSON keys this model knows about
31
+ def self.acceptable_attributes
32
+ attribute_map.values
33
+ end
34
+
22
35
  # Attribute type mapping.
23
36
  def self.openapi_types
24
37
  {
@@ -27,19 +40,32 @@ module MuxRuby
27
40
  }
28
41
  end
29
42
 
43
+ # List of attributes with nullable: true
44
+ def self.openapi_nullable
45
+ Set.new([
46
+ ])
47
+ end
48
+
30
49
  # Initializes the object
31
50
  # @param [Hash] attributes Model attributes in the form of hash
32
51
  def initialize(attributes = {})
33
- return unless attributes.is_a?(Hash)
52
+ if (!attributes.is_a?(Hash))
53
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::DimensionValue` initialize method"
54
+ end
34
55
 
35
- # convert string to symbol for hash key
36
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
56
+ # check to see if the attribute exists and convert string to symbol for hash key
57
+ attributes = attributes.each_with_object({}) { |(k, v), h|
58
+ if (!self.class.attribute_map.key?(k.to_sym))
59
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::DimensionValue`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
60
+ end
61
+ h[k.to_sym] = v
62
+ }
37
63
 
38
- if attributes.has_key?(:'value')
64
+ if attributes.key?(:'value')
39
65
  self.value = attributes[:'value']
40
66
  end
41
67
 
42
- if attributes.has_key?(:'total_count')
68
+ if attributes.key?(:'total_count')
43
69
  self.total_count = attributes[:'total_count']
44
70
  end
45
71
  end
@@ -73,7 +99,7 @@ module MuxRuby
73
99
  end
74
100
 
75
101
  # Calculates hash code according to all attributes.
76
- # @return [Fixnum] Hash code
102
+ # @return [Integer] Hash code
77
103
  def hash
78
104
  [value, total_count].hash
79
105
  end
@@ -91,7 +117,9 @@ module MuxRuby
91
117
  def build_from_hash(attributes)
92
118
  return nil unless attributes.is_a?(Hash)
93
119
  self.class.openapi_types.each_pair do |key, type|
94
- if type =~ /\AArray<(.*)>/i
120
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
121
+ self.send("#{key}=", nil)
122
+ elsif type =~ /\AArray<(.*)>/i
95
123
  # check to ensure the input is an array given that the attribute
96
124
  # is documented as an array but the input is not
97
125
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -99,7 +127,7 @@ module MuxRuby
99
127
  end
100
128
  elsif !attributes[self.class.attribute_map[key]].nil?
101
129
  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
130
+ end
103
131
  end
104
132
 
105
133
  self
@@ -111,8 +139,8 @@ module MuxRuby
111
139
  # @return [Object] Deserialized data
112
140
  def _deserialize(type, value)
113
141
  case type.to_sym
114
- when :DateTime
115
- DateTime.parse(value)
142
+ when :Time
143
+ Time.parse(value)
116
144
  when :Date
117
145
  Date.parse(value)
118
146
  when :String
@@ -121,7 +149,7 @@ module MuxRuby
121
149
  value.to_i
122
150
  when :Float
123
151
  value.to_f
124
- when :BOOLEAN
152
+ when :Boolean
125
153
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
126
154
  true
127
155
  else
@@ -142,7 +170,9 @@ module MuxRuby
142
170
  end
143
171
  end
144
172
  else # model
145
- MuxRuby.const_get(type).build_from_hash(value)
173
+ # models (e.g. Pet) or oneOf
174
+ klass = MuxRuby.const_get(type)
175
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
146
176
  end
147
177
  end
148
178
 
@@ -164,7 +194,11 @@ module MuxRuby
164
194
  hash = {}
165
195
  self.class.attribute_map.each_pair do |attr, param|
166
196
  value = self.send(attr)
167
- next if value.nil?
197
+ if value.nil?
198
+ is_nullable = self.class.openapi_nullable.include?(attr)
199
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
200
+ end
201
+
168
202
  hash[param] = _to_hash(value)
169
203
  end
170
204
  hash