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 ListUploadsResponse
@@ -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::ListUploadsResponse` 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::ListUploadsResponse`. 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
  if (value = attributes[:'data']).is_a?(Array)
36
62
  self.data = value
37
63
  end
@@ -66,7 +92,7 @@ module MuxRuby
66
92
  end
67
93
 
68
94
  # Calculates hash code according to all attributes.
69
- # @return [Fixnum] Hash code
95
+ # @return [Integer] Hash code
70
96
  def hash
71
97
  [data].hash
72
98
  end
@@ -84,7 +110,9 @@ module MuxRuby
84
110
  def build_from_hash(attributes)
85
111
  return nil unless attributes.is_a?(Hash)
86
112
  self.class.openapi_types.each_pair do |key, type|
87
- if type =~ /\AArray<(.*)>/i
113
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
114
+ self.send("#{key}=", nil)
115
+ elsif type =~ /\AArray<(.*)>/i
88
116
  # check to ensure the input is an array given that the attribute
89
117
  # is documented as an array but the input is not
90
118
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -92,7 +120,7 @@ module MuxRuby
92
120
  end
93
121
  elsif !attributes[self.class.attribute_map[key]].nil?
94
122
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
95
- end # or else data not found in attributes(hash), not an issue as the data can be optional
123
+ end
96
124
  end
97
125
 
98
126
  self
@@ -104,8 +132,8 @@ module MuxRuby
104
132
  # @return [Object] Deserialized data
105
133
  def _deserialize(type, value)
106
134
  case type.to_sym
107
- when :DateTime
108
- DateTime.parse(value)
135
+ when :Time
136
+ Time.parse(value)
109
137
  when :Date
110
138
  Date.parse(value)
111
139
  when :String
@@ -114,7 +142,7 @@ module MuxRuby
114
142
  value.to_i
115
143
  when :Float
116
144
  value.to_f
117
- when :BOOLEAN
145
+ when :Boolean
118
146
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
119
147
  true
120
148
  else
@@ -135,7 +163,9 @@ module MuxRuby
135
163
  end
136
164
  end
137
165
  else # model
138
- MuxRuby.const_get(type).build_from_hash(value)
166
+ # models (e.g. Pet) or oneOf
167
+ klass = MuxRuby.const_get(type)
168
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
139
169
  end
140
170
  end
141
171
 
@@ -157,7 +187,11 @@ module MuxRuby
157
187
  hash = {}
158
188
  self.class.attribute_map.each_pair do |attr, param|
159
189
  value = self.send(attr)
160
- next if value.nil?
190
+ if value.nil?
191
+ is_nullable = self.class.openapi_nullable.include?(attr)
192
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
193
+ end
194
+
161
195
  hash[param] = _to_hash(value)
162
196
  end
163
197
  hash
@@ -0,0 +1,240 @@
1
+ =begin
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
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module MuxRuby
17
+ class ListVideoViewExportsResponse
18
+ attr_accessor :data
19
+
20
+ attr_accessor :total_row_count
21
+
22
+ attr_accessor :timeframe
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'data' => :'data',
28
+ :'total_row_count' => :'total_row_count',
29
+ :'timeframe' => :'timeframe'
30
+ }
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'data' => :'Array<ExportDate>',
42
+ :'total_row_count' => :'Integer',
43
+ :'timeframe' => :'Array<Integer>'
44
+ }
45
+ end
46
+
47
+ # List of attributes with nullable: true
48
+ def self.openapi_nullable
49
+ Set.new([
50
+ ])
51
+ end
52
+
53
+ # Initializes the object
54
+ # @param [Hash] attributes Model attributes in the form of hash
55
+ def initialize(attributes = {})
56
+ if (!attributes.is_a?(Hash))
57
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::ListVideoViewExportsResponse` initialize method"
58
+ end
59
+
60
+ # check to see if the attribute exists and convert string to symbol for hash key
61
+ attributes = attributes.each_with_object({}) { |(k, v), h|
62
+ if (!self.class.attribute_map.key?(k.to_sym))
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::ListVideoViewExportsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
64
+ end
65
+ h[k.to_sym] = v
66
+ }
67
+
68
+ if attributes.key?(:'data')
69
+ if (value = attributes[:'data']).is_a?(Array)
70
+ self.data = value
71
+ end
72
+ end
73
+
74
+ if attributes.key?(:'total_row_count')
75
+ self.total_row_count = attributes[:'total_row_count']
76
+ end
77
+
78
+ if attributes.key?(:'timeframe')
79
+ if (value = attributes[:'timeframe']).is_a?(Array)
80
+ self.timeframe = value
81
+ end
82
+ end
83
+ end
84
+
85
+ # Show invalid properties with the reasons. Usually used together with valid?
86
+ # @return Array for valid properties with the reasons
87
+ def list_invalid_properties
88
+ invalid_properties = Array.new
89
+ invalid_properties
90
+ end
91
+
92
+ # Check to see if the all the properties in the model are valid
93
+ # @return true if the model is valid
94
+ def valid?
95
+ true
96
+ end
97
+
98
+ # Checks equality by comparing each attribute.
99
+ # @param [Object] Object to be compared
100
+ def ==(o)
101
+ return true if self.equal?(o)
102
+ self.class == o.class &&
103
+ data == o.data &&
104
+ total_row_count == o.total_row_count &&
105
+ timeframe == o.timeframe
106
+ end
107
+
108
+ # @see the `==` method
109
+ # @param [Object] Object to be compared
110
+ def eql?(o)
111
+ self == o
112
+ end
113
+
114
+ # Calculates hash code according to all attributes.
115
+ # @return [Integer] Hash code
116
+ def hash
117
+ [data, total_row_count, timeframe].hash
118
+ end
119
+
120
+ # Builds the object from hash
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ # @return [Object] Returns the model itself
123
+ def self.build_from_hash(attributes)
124
+ new.build_from_hash(attributes)
125
+ end
126
+
127
+ # Builds the object from hash
128
+ # @param [Hash] attributes Model attributes in the form of hash
129
+ # @return [Object] Returns the model itself
130
+ def build_from_hash(attributes)
131
+ return nil unless attributes.is_a?(Hash)
132
+ self.class.openapi_types.each_pair do |key, type|
133
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
134
+ self.send("#{key}=", nil)
135
+ elsif type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
139
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
140
+ end
141
+ elsif !attributes[self.class.attribute_map[key]].nil?
142
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
143
+ end
144
+ end
145
+
146
+ self
147
+ end
148
+
149
+ # Deserializes the data based on type
150
+ # @param string type Data type
151
+ # @param string value Value to be deserialized
152
+ # @return [Object] Deserialized data
153
+ def _deserialize(type, value)
154
+ case type.to_sym
155
+ when :Time
156
+ Time.parse(value)
157
+ when :Date
158
+ Date.parse(value)
159
+ when :String
160
+ value.to_s
161
+ when :Integer
162
+ value.to_i
163
+ when :Float
164
+ value.to_f
165
+ when :Boolean
166
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
167
+ true
168
+ else
169
+ false
170
+ end
171
+ when :Object
172
+ # generic object (usually a Hash), return directly
173
+ value
174
+ when /\AArray<(?<inner_type>.+)>\z/
175
+ inner_type = Regexp.last_match[:inner_type]
176
+ value.map { |v| _deserialize(inner_type, v) }
177
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
178
+ k_type = Regexp.last_match[:k_type]
179
+ v_type = Regexp.last_match[:v_type]
180
+ {}.tap do |hash|
181
+ value.each do |k, v|
182
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
183
+ end
184
+ end
185
+ else # model
186
+ # models (e.g. Pet) or oneOf
187
+ klass = MuxRuby.const_get(type)
188
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
189
+ end
190
+ end
191
+
192
+ # Returns the string representation of the object
193
+ # @return [String] String presentation of the object
194
+ def to_s
195
+ to_hash.to_s
196
+ end
197
+
198
+ # to_body is an alias to to_hash (backward compatibility)
199
+ # @return [Hash] Returns the object in the form of hash
200
+ def to_body
201
+ to_hash
202
+ end
203
+
204
+ # Returns the object in the form of hash
205
+ # @return [Hash] Returns the object in the form of hash
206
+ def to_hash
207
+ hash = {}
208
+ self.class.attribute_map.each_pair do |attr, param|
209
+ value = self.send(attr)
210
+ if value.nil?
211
+ is_nullable = self.class.openapi_nullable.include?(attr)
212
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
213
+ end
214
+
215
+ hash[param] = _to_hash(value)
216
+ end
217
+ hash
218
+ end
219
+
220
+ # Outputs non-array value in the form of hash
221
+ # For object, use to_hash. Otherwise, just return the value
222
+ # @param [Object] value Any valid value
223
+ # @return [Hash] Returns the value in the form of hash
224
+ def _to_hash(value)
225
+ if value.is_a?(Array)
226
+ value.compact.map { |v| _to_hash(v) }
227
+ elsif value.is_a?(Hash)
228
+ {}.tap do |hash|
229
+ value.each { |k, v| hash[k] = _to_hash(v) }
230
+ end
231
+ elsif value.respond_to? :to_hash
232
+ value.to_hash
233
+ else
234
+ value
235
+ end
236
+ end
237
+
238
+ end
239
+
240
+ end
@@ -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 ListVideoViewsResponse
@@ -22,6 +30,11 @@ module MuxRuby
22
30
  }
23
31
  end
24
32
 
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
25
38
  # Attribute type mapping.
26
39
  def self.openapi_types
27
40
  {
@@ -31,25 +44,38 @@ module MuxRuby
31
44
  }
32
45
  end
33
46
 
47
+ # List of attributes with nullable: true
48
+ def self.openapi_nullable
49
+ Set.new([
50
+ ])
51
+ end
52
+
34
53
  # Initializes the object
35
54
  # @param [Hash] attributes Model attributes in the form of hash
36
55
  def initialize(attributes = {})
37
- return unless attributes.is_a?(Hash)
56
+ if (!attributes.is_a?(Hash))
57
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::ListVideoViewsResponse` initialize method"
58
+ end
38
59
 
39
- # convert string to symbol for hash key
40
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
60
+ # check to see if the attribute exists and convert string to symbol for hash key
61
+ attributes = attributes.each_with_object({}) { |(k, v), h|
62
+ if (!self.class.attribute_map.key?(k.to_sym))
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::ListVideoViewsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
64
+ end
65
+ h[k.to_sym] = v
66
+ }
41
67
 
42
- if attributes.has_key?(:'data')
68
+ if attributes.key?(:'data')
43
69
  if (value = attributes[:'data']).is_a?(Array)
44
70
  self.data = value
45
71
  end
46
72
  end
47
73
 
48
- if attributes.has_key?(:'total_row_count')
74
+ if attributes.key?(:'total_row_count')
49
75
  self.total_row_count = attributes[:'total_row_count']
50
76
  end
51
77
 
52
- if attributes.has_key?(:'timeframe')
78
+ if attributes.key?(:'timeframe')
53
79
  if (value = attributes[:'timeframe']).is_a?(Array)
54
80
  self.timeframe = value
55
81
  end
@@ -86,7 +112,7 @@ module MuxRuby
86
112
  end
87
113
 
88
114
  # Calculates hash code according to all attributes.
89
- # @return [Fixnum] Hash code
115
+ # @return [Integer] Hash code
90
116
  def hash
91
117
  [data, total_row_count, timeframe].hash
92
118
  end
@@ -104,7 +130,9 @@ module MuxRuby
104
130
  def build_from_hash(attributes)
105
131
  return nil unless attributes.is_a?(Hash)
106
132
  self.class.openapi_types.each_pair do |key, type|
107
- if type =~ /\AArray<(.*)>/i
133
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
134
+ self.send("#{key}=", nil)
135
+ elsif type =~ /\AArray<(.*)>/i
108
136
  # check to ensure the input is an array given that the attribute
109
137
  # is documented as an array but the input is not
110
138
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -112,7 +140,7 @@ module MuxRuby
112
140
  end
113
141
  elsif !attributes[self.class.attribute_map[key]].nil?
114
142
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
115
- end # or else data not found in attributes(hash), not an issue as the data can be optional
143
+ end
116
144
  end
117
145
 
118
146
  self
@@ -124,8 +152,8 @@ module MuxRuby
124
152
  # @return [Object] Deserialized data
125
153
  def _deserialize(type, value)
126
154
  case type.to_sym
127
- when :DateTime
128
- DateTime.parse(value)
155
+ when :Time
156
+ Time.parse(value)
129
157
  when :Date
130
158
  Date.parse(value)
131
159
  when :String
@@ -134,7 +162,7 @@ module MuxRuby
134
162
  value.to_i
135
163
  when :Float
136
164
  value.to_f
137
- when :BOOLEAN
165
+ when :Boolean
138
166
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
139
167
  true
140
168
  else
@@ -155,7 +183,9 @@ module MuxRuby
155
183
  end
156
184
  end
157
185
  else # model
158
- MuxRuby.const_get(type).build_from_hash(value)
186
+ # models (e.g. Pet) or oneOf
187
+ klass = MuxRuby.const_get(type)
188
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
159
189
  end
160
190
  end
161
191
 
@@ -177,7 +207,11 @@ module MuxRuby
177
207
  hash = {}
178
208
  self.class.attribute_map.each_pair do |attr, param|
179
209
  value = self.send(attr)
180
- next if value.nil?
210
+ if value.nil?
211
+ is_nullable = self.class.openapi_nullable.include?(attr)
212
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
213
+ end
214
+
181
215
  hash[param] = _to_hash(value)
182
216
  end
183
217
  hash