mux_ruby 1.9.0 → 2.1.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 (277) 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 -26
  7. data/docs/AssetErrors.md +15 -4
  8. data/docs/AssetMaster.md +15 -4
  9. data/docs/AssetNonStandardInputReasons.md +29 -11
  10. data/docs/AssetRecordingTimes.md +15 -4
  11. data/docs/AssetResponse.md +13 -3
  12. data/docs/AssetStaticRenditions.md +15 -4
  13. data/docs/AssetStaticRenditionsFiles.md +23 -8
  14. data/docs/AssetsApi.md +396 -163
  15. data/docs/BreakdownValue.md +21 -7
  16. data/docs/CreateAssetRequest.md +27 -10
  17. data/docs/CreateLiveStreamRequest.md +29 -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 +13 -3
  40. data/docs/GetAssetOrLiveStreamIdResponseData.md +17 -5
  41. data/docs/GetAssetOrLiveStreamIdResponseDataObject.md +15 -4
  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 -12
  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 +41 -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 +35 -17
  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/gen/.gitignore +7 -0
  117. data/gen/Makefile +31 -0
  118. data/gen/generator-config.json +11 -0
  119. data/gen/openapitools.json +7 -0
  120. data/gen/package.json +17 -0
  121. data/gen/templates/Gemfile.mustache +11 -0
  122. data/gen/templates/README.mustache +158 -0
  123. data/gen/templates/Rakefile.mustache +10 -0
  124. data/gen/templates/api.mustache +206 -0
  125. data/gen/templates/api_client.mustache +264 -0
  126. data/gen/templates/api_client_faraday_partial.mustache +138 -0
  127. data/gen/templates/api_client_spec.mustache +220 -0
  128. data/gen/templates/api_client_typhoeus_partial.mustache +183 -0
  129. data/gen/templates/api_doc.mustache +118 -0
  130. data/gen/templates/api_error.mustache +67 -0
  131. data/gen/templates/api_info.mustache +12 -0
  132. data/gen/templates/api_test.mustache +47 -0
  133. data/gen/templates/base_object.mustache +120 -0
  134. data/gen/templates/configuration.mustache +349 -0
  135. data/gen/templates/configuration_spec.mustache +34 -0
  136. data/gen/templates/configuration_tls_faraday_partial.mustache +29 -0
  137. data/gen/templates/configuration_tls_typhoeus_partial.mustache +34 -0
  138. data/gen/templates/gem.mustache +40 -0
  139. data/gen/templates/gemspec.mustache +35 -0
  140. data/gen/templates/gitignore.mustache +39 -0
  141. data/gen/templates/model.mustache +26 -0
  142. data/gen/templates/model_doc.mustache +12 -0
  143. data/gen/templates/model_test.mustache +77 -0
  144. data/gen/templates/partial_model_enum_class.mustache +20 -0
  145. data/gen/templates/partial_model_generic.mustache +371 -0
  146. data/gen/templates/partial_model_generic_doc.mustache +28 -0
  147. data/gen/templates/partial_oneof_module.mustache +137 -0
  148. data/gen/templates/partial_oneof_module_doc.mustache +92 -0
  149. data/gen/templates/rspec.mustache +2 -0
  150. data/gen/templates/rubocop.mustache +148 -0
  151. data/gen/templates/spec_helper.mustache +103 -0
  152. data/gen/templates/version.mustache +7 -0
  153. data/gen/yarn.lock +1878 -0
  154. data/lib/mux_ruby/api/assets_api.rb +293 -156
  155. data/lib/mux_ruby/api/delivery_usage_api.rb +32 -16
  156. data/lib/mux_ruby/api/dimensions_api.rb +55 -29
  157. data/lib/mux_ruby/api/direct_uploads_api.rb +90 -44
  158. data/lib/mux_ruby/api/errors_api.rb +34 -18
  159. data/lib/mux_ruby/api/exports_api.rb +86 -13
  160. data/lib/mux_ruby/api/filters_api.rb +53 -27
  161. data/lib/mux_ruby/api/incidents_api.rb +94 -52
  162. data/lib/mux_ruby/api/live_streams_api.rb +299 -157
  163. data/lib/mux_ruby/api/metrics_api.rb +193 -122
  164. data/lib/mux_ruby/api/playback_id_api.rb +33 -17
  165. data/lib/mux_ruby/api/real_time_api.rb +149 -87
  166. data/lib/mux_ruby/api/url_signing_keys_api.rb +95 -48
  167. data/lib/mux_ruby/api/video_views_api.rb +60 -33
  168. data/lib/mux_ruby/api_client.rb +94 -79
  169. data/lib/mux_ruby/api_error.rb +35 -7
  170. data/lib/mux_ruby/configuration.rb +50 -14
  171. data/lib/mux_ruby/models/abridged_video_view.rb +58 -24
  172. data/lib/mux_ruby/models/asset.rb +100 -63
  173. data/lib/mux_ruby/models/asset_errors.rb +50 -15
  174. data/lib/mux_ruby/models/asset_master.rb +52 -17
  175. data/lib/mux_ruby/models/asset_non_standard_input_reasons.rb +70 -35
  176. data/lib/mux_ruby/models/asset_recording_times.rb +50 -16
  177. data/lib/mux_ruby/models/asset_response.rb +48 -14
  178. data/lib/mux_ruby/models/asset_static_renditions.rb +53 -17
  179. data/lib/mux_ruby/models/asset_static_renditions_files.rb +58 -23
  180. data/lib/mux_ruby/models/breakdown_value.rb +52 -18
  181. data/lib/mux_ruby/models/create_asset_request.rb +64 -30
  182. data/lib/mux_ruby/models/create_live_stream_request.rb +78 -23
  183. data/lib/mux_ruby/models/create_playback_id_request.rb +48 -14
  184. data/lib/mux_ruby/models/create_playback_id_response.rb +48 -14
  185. data/lib/mux_ruby/models/create_simulcast_target_request.rb +50 -16
  186. data/lib/mux_ruby/models/create_track_request.rb +60 -26
  187. data/lib/mux_ruby/models/create_track_response.rb +48 -14
  188. data/lib/mux_ruby/models/create_upload_request.rb +52 -18
  189. data/lib/mux_ruby/models/delivery_report.rb +106 -21
  190. data/lib/mux_ruby/models/dimension_value.rb +49 -15
  191. data/lib/mux_ruby/models/disable_live_stream_response.rb +48 -14
  192. data/lib/mux_ruby/models/enable_live_stream_response.rb +48 -14
  193. data/lib/mux_ruby/models/error.rb +63 -21
  194. data/lib/mux_ruby/models/export_date.rb +229 -0
  195. data/lib/mux_ruby/models/export_file.rb +236 -0
  196. data/lib/mux_ruby/models/filter_value.rb +49 -15
  197. data/lib/mux_ruby/models/get_asset_input_info_response.rb +48 -14
  198. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response.rb +48 -14
  199. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data.rb +50 -16
  200. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data_object.rb +51 -17
  201. data/lib/mux_ruby/models/get_asset_playback_id_response.rb +48 -14
  202. data/lib/mux_ruby/models/get_metric_timeseries_data_response.rb +50 -16
  203. data/lib/mux_ruby/models/get_overall_values_response.rb +50 -16
  204. data/lib/mux_ruby/models/get_real_time_breakdown_response.rb +50 -16
  205. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response.rb +51 -17
  206. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response_meta.rb +48 -14
  207. data/lib/mux_ruby/models/get_real_time_timeseries_response.rb +50 -16
  208. data/lib/mux_ruby/models/incident.rb +68 -34
  209. data/lib/mux_ruby/models/incident_breakdown.rb +50 -16
  210. data/lib/mux_ruby/models/incident_notification.rb +50 -16
  211. data/lib/mux_ruby/models/incident_notification_rule.rb +52 -18
  212. data/lib/mux_ruby/models/incident_response.rb +49 -15
  213. data/lib/mux_ruby/models/input_file.rb +49 -15
  214. data/lib/mux_ruby/models/input_info.rb +49 -15
  215. data/lib/mux_ruby/models/input_settings.rb +64 -30
  216. data/lib/mux_ruby/models/input_settings_overlay_settings.rb +58 -24
  217. data/lib/mux_ruby/models/input_track.rb +56 -22
  218. data/lib/mux_ruby/models/insight.rb +53 -19
  219. data/lib/mux_ruby/models/list_all_metric_values_response.rb +50 -16
  220. data/lib/mux_ruby/models/list_assets_response.rb +48 -14
  221. data/lib/mux_ruby/models/list_breakdown_values_response.rb +50 -16
  222. data/lib/mux_ruby/models/list_delivery_usage_response.rb +51 -17
  223. data/lib/mux_ruby/models/list_dimension_values_response.rb +50 -16
  224. data/lib/mux_ruby/models/list_dimensions_response.rb +50 -16
  225. data/lib/mux_ruby/models/list_errors_response.rb +50 -16
  226. data/lib/mux_ruby/models/list_exports_response.rb +50 -16
  227. data/lib/mux_ruby/models/list_filter_values_response.rb +50 -16
  228. data/lib/mux_ruby/models/list_filters_response.rb +50 -16
  229. data/lib/mux_ruby/models/list_filters_response_data.rb +49 -15
  230. data/lib/mux_ruby/models/list_incidents_response.rb +50 -16
  231. data/lib/mux_ruby/models/list_insights_response.rb +50 -16
  232. data/lib/mux_ruby/models/list_live_streams_response.rb +48 -14
  233. data/lib/mux_ruby/models/list_real_time_dimensions_response.rb +50 -16
  234. data/lib/mux_ruby/models/list_real_time_dimensions_response_data.rb +49 -15
  235. data/lib/mux_ruby/models/list_real_time_metrics_response.rb +50 -16
  236. data/lib/mux_ruby/models/list_related_incidents_response.rb +50 -16
  237. data/lib/mux_ruby/models/list_signing_keys_response.rb +48 -14
  238. data/lib/mux_ruby/models/list_uploads_response.rb +48 -14
  239. data/lib/mux_ruby/models/list_video_view_exports_response.rb +240 -0
  240. data/lib/mux_ruby/models/list_video_views_response.rb +50 -16
  241. data/lib/mux_ruby/models/live_stream.rb +131 -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 +50 -16
  245. data/lib/mux_ruby/models/overall_values.rb +51 -17
  246. data/lib/mux_ruby/models/playback_id.rb +49 -15
  247. data/lib/mux_ruby/models/playback_policy.rb +12 -6
  248. data/lib/mux_ruby/models/real_time_breakdown_value.rb +52 -18
  249. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket.rb +50 -16
  250. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket_values.rb +49 -15
  251. data/lib/mux_ruby/models/real_time_histogram_timeseries_datapoint.rb +54 -20
  252. data/lib/mux_ruby/models/real_time_timeseries_datapoint.rb +50 -16
  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 +54 -20
  258. data/lib/mux_ruby/models/simulcast_target_response.rb +48 -14
  259. data/lib/mux_ruby/models/track.rb +67 -33
  260. data/lib/mux_ruby/models/update_asset_master_access_request.rb +50 -16
  261. data/lib/mux_ruby/models/update_asset_mp4_support_request.rb +50 -16
  262. data/lib/mux_ruby/models/upload.rb +61 -25
  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/lib/mux_ruby.rb +12 -2
  270. data/mux_ruby.gemspec +15 -17
  271. data/spec/api_client_spec.rb +10 -3
  272. data/spec/configuration_spec.rb +9 -2
  273. data/spec/models/export_date_spec.rb +40 -0
  274. data/spec/models/export_file_spec.rb +46 -0
  275. data/spec/models/list_video_view_exports_response_spec.rb +46 -0
  276. data/spec/spec_helper.rb +9 -2
  277. metadata +149 -240
@@ -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 CreateTrackResponse
@@ -16,6 +24,11 @@ module MuxRuby
16
24
  }
17
25
  end
18
26
 
27
+ # Returns all the JSON keys this model knows about
28
+ def self.acceptable_attributes
29
+ attribute_map.values
30
+ end
31
+
19
32
  # Attribute type mapping.
20
33
  def self.openapi_types
21
34
  {
@@ -23,15 +36,28 @@ module MuxRuby
23
36
  }
24
37
  end
25
38
 
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new([
42
+ ])
43
+ end
44
+
26
45
  # Initializes the object
27
46
  # @param [Hash] attributes Model attributes in the form of hash
28
47
  def initialize(attributes = {})
29
- return unless attributes.is_a?(Hash)
48
+ if (!attributes.is_a?(Hash))
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::CreateTrackResponse` initialize method"
50
+ end
30
51
 
31
- # convert string to symbol for hash key
32
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
52
+ # check to see if the attribute exists and convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}) { |(k, v), h|
54
+ if (!self.class.attribute_map.key?(k.to_sym))
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::CreateTrackResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ end
57
+ h[k.to_sym] = v
58
+ }
33
59
 
34
- if attributes.has_key?(:'data')
60
+ if attributes.key?(:'data')
35
61
  self.data = attributes[:'data']
36
62
  end
37
63
  end
@@ -64,7 +90,7 @@ module MuxRuby
64
90
  end
65
91
 
66
92
  # Calculates hash code according to all attributes.
67
- # @return [Fixnum] Hash code
93
+ # @return [Integer] Hash code
68
94
  def hash
69
95
  [data].hash
70
96
  end
@@ -82,7 +108,9 @@ module MuxRuby
82
108
  def build_from_hash(attributes)
83
109
  return nil unless attributes.is_a?(Hash)
84
110
  self.class.openapi_types.each_pair do |key, type|
85
- if type =~ /\AArray<(.*)>/i
111
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
112
+ self.send("#{key}=", nil)
113
+ elsif type =~ /\AArray<(.*)>/i
86
114
  # check to ensure the input is an array given that the attribute
87
115
  # is documented as an array but the input is not
88
116
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -90,7 +118,7 @@ module MuxRuby
90
118
  end
91
119
  elsif !attributes[self.class.attribute_map[key]].nil?
92
120
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
93
- end # or else data not found in attributes(hash), not an issue as the data can be optional
121
+ end
94
122
  end
95
123
 
96
124
  self
@@ -102,8 +130,8 @@ module MuxRuby
102
130
  # @return [Object] Deserialized data
103
131
  def _deserialize(type, value)
104
132
  case type.to_sym
105
- when :DateTime
106
- DateTime.parse(value)
133
+ when :Time
134
+ Time.parse(value)
107
135
  when :Date
108
136
  Date.parse(value)
109
137
  when :String
@@ -112,7 +140,7 @@ module MuxRuby
112
140
  value.to_i
113
141
  when :Float
114
142
  value.to_f
115
- when :BOOLEAN
143
+ when :Boolean
116
144
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
117
145
  true
118
146
  else
@@ -133,7 +161,9 @@ module MuxRuby
133
161
  end
134
162
  end
135
163
  else # model
136
- MuxRuby.const_get(type).build_from_hash(value)
164
+ # models (e.g. Pet) or oneOf
165
+ klass = MuxRuby.const_get(type)
166
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
137
167
  end
138
168
  end
139
169
 
@@ -155,7 +185,11 @@ module MuxRuby
155
185
  hash = {}
156
186
  self.class.attribute_map.each_pair do |attr, param|
157
187
  value = self.send(attr)
158
- next if value.nil?
188
+ if value.nil?
189
+ is_nullable = self.class.openapi_nullable.include?(attr)
190
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
191
+ end
192
+
159
193
  hash[param] = _to_hash(value)
160
194
  end
161
195
  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 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