mux_ruby 3.9.0 → 3.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +1 -1
  3. data/Gemfile.lock +2 -2
  4. data/README.md +4 -4
  5. data/docs/Asset.md +7 -1
  6. data/docs/AssetGeneratedSubtitleSettings.md +22 -0
  7. data/docs/AssetNonStandardInputReasons.md +3 -1
  8. data/docs/AssetsApi.md +1 -1
  9. data/docs/CreateAssetRequest.md +5 -1
  10. data/docs/CreateLiveStreamRequest.md +3 -3
  11. data/docs/CreateTrackRequest.md +2 -2
  12. data/docs/DeliveryReport.md +2 -0
  13. data/docs/DeliveryReportDeliveredSecondsByResolution.md +5 -1
  14. data/docs/DirectUploadsApi.md +1 -1
  15. data/docs/GetMonitoringBreakdownTimeseriesResponse.md +22 -0
  16. data/docs/InputSettings.md +7 -5
  17. data/docs/LiveStream.md +4 -4
  18. data/docs/MetricsApi.md +2 -2
  19. data/docs/MonitoringApi.md +93 -6
  20. data/docs/MonitoringBreakdownTimeseriesDatapoint.md +22 -0
  21. data/docs/MonitoringBreakdownTimeseriesValues.md +20 -0
  22. data/docs/RealTimeApi.md +8 -6
  23. data/docs/SigningKeysApi.md +291 -0
  24. data/docs/Track.md +4 -4
  25. data/docs/URLSigningKeysApi.md +4 -4
  26. data/docs/UpdateLiveStreamRequest.md +1 -1
  27. data/docs/VideoView.md +33 -1
  28. data/examples/video/exercise-signing-keys.rb +5 -4
  29. data/gen/generator-config.json +1 -1
  30. data/gen/package.json +1 -1
  31. data/gen/yarn.lock +593 -129
  32. data/lib/mux_ruby/api/assets_api.rb +2 -2
  33. data/lib/mux_ruby/api/direct_uploads_api.rb +2 -2
  34. data/lib/mux_ruby/api/metrics_api.rb +9 -9
  35. data/lib/mux_ruby/api/monitoring_api.rb +110 -9
  36. data/lib/mux_ruby/api/real_time_api.rb +9 -6
  37. data/lib/mux_ruby/api/signing_keys_api.rb +266 -0
  38. data/lib/mux_ruby/api/url_signing_keys_api.rb +8 -8
  39. data/lib/mux_ruby/models/asset.rb +68 -2
  40. data/lib/mux_ruby/models/asset_generated_subtitle_settings.rb +275 -0
  41. data/lib/mux_ruby/models/asset_non_standard_input_reasons.rb +14 -4
  42. data/lib/mux_ruby/models/create_asset_request.rb +48 -4
  43. data/lib/mux_ruby/models/create_live_stream_request.rb +3 -3
  44. data/lib/mux_ruby/models/create_track_request.rb +4 -3
  45. data/lib/mux_ruby/models/delivery_report.rb +23 -1
  46. data/lib/mux_ruby/models/delivery_report_delivered_seconds_by_resolution.rb +22 -2
  47. data/lib/mux_ruby/models/get_monitoring_breakdown_timeseries_response.rb +240 -0
  48. data/lib/mux_ruby/models/input_settings.rb +18 -6
  49. data/lib/mux_ruby/models/live_stream.rb +4 -4
  50. data/lib/mux_ruby/models/live_stream_embedded_subtitle_settings.rb +2 -2
  51. data/lib/mux_ruby/models/monitoring_breakdown_timeseries_datapoint.rb +236 -0
  52. data/lib/mux_ruby/models/monitoring_breakdown_timeseries_values.rb +229 -0
  53. data/lib/mux_ruby/models/track.rb +4 -4
  54. data/lib/mux_ruby/models/update_live_stream_request.rb +1 -1
  55. data/lib/mux_ruby/models/video_view.rb +162 -5
  56. data/lib/mux_ruby/version.rb +1 -1
  57. data/lib/mux_ruby.rb +5 -0
  58. data/spec/api/signing_keys_api_spec.rb +83 -0
  59. data/spec/models/asset_generated_subtitle_settings_spec.rb +50 -0
  60. data/spec/models/get_monitoring_breakdown_timeseries_response_spec.rb +46 -0
  61. data/spec/models/monitoring_breakdown_timeseries_datapoint_spec.rb +46 -0
  62. data/spec/models/monitoring_breakdown_timeseries_values_spec.rb +40 -0
  63. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-11.1.3/byebug/byebug.so +0 -0
  64. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-11.1.3/gem_make.out +6 -6
  65. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/ffi-1.15.5/ffi_c.so +0 -0
  66. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/ffi-1.15.5/gem_make.out +6 -6
  67. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/ffi-1.15.5/mkmf.log +15 -15
  68. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/jaro_winkler-1.5.4/gem_make.out +14 -14
  69. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/jaro_winkler-1.5.4/jaro_winkler/jaro_winkler_ext.so +0 -0
  70. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-4.0.4/gem_make.out +6 -6
  71. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-4.0.4/mkmf.log +4 -4
  72. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-4.0.4/psych.so +0 -0
  73. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.0.2/gem_make.out +6 -6
  74. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.0.2/mkmf.log +2 -2
  75. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.0.2/stringio.so +0 -0
  76. data/vendor/bundle/ruby/3.2.0/gems/byebug-11.1.3/ext/byebug/Makefile +6 -6
  77. data/vendor/bundle/ruby/3.2.0/gems/byebug-11.1.3/lib/byebug/byebug.so +0 -0
  78. data/vendor/bundle/ruby/3.2.0/gems/ffi-1.15.5/ext/ffi_c/Makefile +6 -6
  79. data/vendor/bundle/ruby/3.2.0/gems/ffi-1.15.5/lib/ffi_c.so +0 -0
  80. data/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.4/ext/jaro_winkler/Makefile +6 -6
  81. data/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.4/lib/jaro_winkler/jaro_winkler_ext.so +0 -0
  82. data/vendor/bundle/ruby/3.2.0/gems/psych-4.0.4/ext/psych/Makefile +6 -6
  83. data/vendor/bundle/ruby/3.2.0/gems/psych-4.0.4/lib/psych.so +0 -0
  84. data/vendor/bundle/ruby/3.2.0/gems/stringio-3.0.2/ext/stringio/Makefile +6 -6
  85. data/vendor/bundle/ruby/3.2.0/gems/stringio-3.0.2/lib/stringio.so +0 -0
  86. data/vendor/bundle/ruby/3.2.0/specifications/ast-2.4.2.gemspec +2 -2
  87. data/vendor/bundle/ruby/3.2.0/specifications/byebug-11.1.3.gemspec +2 -2
  88. data/vendor/bundle/ruby/3.2.0/specifications/coderay-1.1.3.gemspec +2 -2
  89. data/vendor/bundle/ruby/3.2.0/specifications/diff-lcs-1.5.0.gemspec +2 -2
  90. data/vendor/bundle/ruby/3.2.0/specifications/ethon-0.16.0.gemspec +2 -2
  91. data/vendor/bundle/ruby/3.2.0/specifications/ffi-1.15.5.gemspec +2 -2
  92. data/vendor/bundle/ruby/3.2.0/specifications/jaro_winkler-1.5.4.gemspec +2 -2
  93. data/vendor/bundle/ruby/3.2.0/specifications/method_source-1.0.0.gemspec +2 -2
  94. data/vendor/bundle/ruby/3.2.0/specifications/parallel-1.22.1.gemspec +2 -2
  95. data/vendor/bundle/ruby/3.2.0/specifications/parser-3.1.2.0.gemspec +2 -2
  96. data/vendor/bundle/ruby/3.2.0/specifications/pry-0.13.1.gemspec +2 -2
  97. data/vendor/bundle/ruby/3.2.0/specifications/pry-byebug-3.9.0.gemspec +2 -2
  98. data/vendor/bundle/ruby/3.2.0/specifications/psych-4.0.4.gemspec +2 -2
  99. data/vendor/bundle/ruby/3.2.0/specifications/rainbow-3.1.1.gemspec +2 -2
  100. data/vendor/bundle/ruby/3.2.0/specifications/rake-13.0.6.gemspec +2 -2
  101. data/vendor/bundle/ruby/3.2.0/specifications/rspec-3.11.0.gemspec +2 -2
  102. data/vendor/bundle/ruby/3.2.0/specifications/rspec-core-3.11.0.gemspec +2 -2
  103. data/vendor/bundle/ruby/3.2.0/specifications/rspec-expectations-3.11.0.gemspec +2 -2
  104. data/vendor/bundle/ruby/3.2.0/specifications/rspec-mocks-3.11.1.gemspec +2 -2
  105. data/vendor/bundle/ruby/3.2.0/specifications/rspec-support-3.11.0.gemspec +2 -2
  106. data/vendor/bundle/ruby/3.2.0/specifications/rubocop-0.66.0.gemspec +2 -2
  107. data/vendor/bundle/ruby/3.2.0/specifications/ruby-progressbar-1.11.0.gemspec +2 -2
  108. data/vendor/bundle/ruby/3.2.0/specifications/solid_assert-1.1.0.gemspec +2 -2
  109. data/vendor/bundle/ruby/3.2.0/specifications/stringio-3.0.2.gemspec +2 -2
  110. data/vendor/bundle/ruby/3.2.0/specifications/typhoeus-1.4.0.gemspec +2 -2
  111. data/vendor/bundle/ruby/3.2.0/specifications/unicode-display_width-1.5.0.gemspec +2 -2
  112. metadata +160 -140
@@ -0,0 +1,275 @@
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 AssetGeneratedSubtitleSettings
18
+ # A name for this subtitle track.
19
+ attr_accessor :name
20
+
21
+ # Arbitrary metadata set for the subtitle track. Max 255 characters.
22
+ attr_accessor :passthrough
23
+
24
+ # The language to generate subtitles in.
25
+ attr_accessor :language_code
26
+
27
+ class EnumAttributeValidator
28
+ attr_reader :datatype
29
+ attr_reader :allowable_values
30
+
31
+ def initialize(datatype, allowable_values)
32
+ @allowable_values = allowable_values.map do |value|
33
+ case datatype.to_s
34
+ when /Integer/i
35
+ value.to_i
36
+ when /Float/i
37
+ value.to_f
38
+ else
39
+ value
40
+ end
41
+ end
42
+ end
43
+
44
+ def valid?(value)
45
+ !value || allowable_values.include?(value)
46
+ end
47
+ end
48
+
49
+ # Attribute mapping from ruby-style variable name to JSON key.
50
+ def self.attribute_map
51
+ {
52
+ :'name' => :'name',
53
+ :'passthrough' => :'passthrough',
54
+ :'language_code' => :'language_code'
55
+ }
56
+ end
57
+
58
+ # Returns all the JSON keys this model knows about
59
+ def self.acceptable_attributes
60
+ attribute_map.values
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.openapi_types
65
+ {
66
+ :'name' => :'String',
67
+ :'passthrough' => :'String',
68
+ :'language_code' => :'String'
69
+ }
70
+ end
71
+
72
+ # List of attributes with nullable: true
73
+ def self.openapi_nullable
74
+ Set.new([
75
+ ])
76
+ end
77
+
78
+ # Initializes the object
79
+ # @param [Hash] attributes Model attributes in the form of hash
80
+ def initialize(attributes = {})
81
+ if (!attributes.is_a?(Hash))
82
+ fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::AssetGeneratedSubtitleSettings` initialize method"
83
+ end
84
+
85
+ # check to see if the attribute exists and convert string to symbol for hash key
86
+ attributes = attributes.each_with_object({}) { |(k, v), h|
87
+ if (!self.class.attribute_map.key?(k.to_sym))
88
+ fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::AssetGeneratedSubtitleSettings`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
89
+ end
90
+ h[k.to_sym] = v
91
+ }
92
+
93
+ if attributes.key?(:'name')
94
+ self.name = attributes[:'name']
95
+ end
96
+
97
+ if attributes.key?(:'passthrough')
98
+ self.passthrough = attributes[:'passthrough']
99
+ end
100
+
101
+ if attributes.key?(:'language_code')
102
+ self.language_code = attributes[:'language_code']
103
+ else
104
+ self.language_code = 'en'
105
+ end
106
+ end
107
+
108
+ # Show invalid properties with the reasons. Usually used together with valid?
109
+ # @return Array for valid properties with the reasons
110
+ def list_invalid_properties
111
+ invalid_properties = Array.new
112
+ invalid_properties
113
+ end
114
+
115
+ # Check to see if the all the properties in the model are valid
116
+ # @return true if the model is valid
117
+ def valid?
118
+ language_code_validator = EnumAttributeValidator.new('String', ["en", "en-US"])
119
+ return false unless language_code_validator.valid?(@language_code)
120
+ true
121
+ end
122
+
123
+ # Custom attribute writer method checking allowed values (enum).
124
+ # @param [Object] language_code Object to be assigned
125
+ def language_code=(language_code)
126
+ validator = EnumAttributeValidator.new('String', ["en", "en-US"])
127
+ unless validator.valid?(language_code)
128
+ fail ArgumentError, "invalid value for \"language_code\", must be one of #{validator.allowable_values}."
129
+ end
130
+ @language_code = language_code
131
+ end
132
+
133
+ # Checks equality by comparing each attribute.
134
+ # @param [Object] Object to be compared
135
+ def ==(o)
136
+ return true if self.equal?(o)
137
+ self.class == o.class &&
138
+ name == o.name &&
139
+ passthrough == o.passthrough &&
140
+ language_code == o.language_code
141
+ end
142
+
143
+ # @see the `==` method
144
+ # @param [Object] Object to be compared
145
+ def eql?(o)
146
+ self == o
147
+ end
148
+
149
+ # Calculates hash code according to all attributes.
150
+ # @return [Integer] Hash code
151
+ def hash
152
+ [name, passthrough, language_code].hash
153
+ end
154
+
155
+ # Builds the object from hash
156
+ # @param [Hash] attributes Model attributes in the form of hash
157
+ # @return [Object] Returns the model itself
158
+ def self.build_from_hash(attributes)
159
+ new.build_from_hash(attributes)
160
+ end
161
+
162
+ # Builds the object from hash
163
+ # @param [Hash] attributes Model attributes in the form of hash
164
+ # @return [Object] Returns the model itself
165
+ def build_from_hash(attributes)
166
+ return nil unless attributes.is_a?(Hash)
167
+ self.class.openapi_types.each_pair do |key, type|
168
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
169
+ self.send("#{key}=", nil)
170
+ elsif type =~ /\AArray<(.*)>/i
171
+ # check to ensure the input is an array given that the attribute
172
+ # is documented as an array but the input is not
173
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
174
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
175
+ end
176
+ elsif !attributes[self.class.attribute_map[key]].nil?
177
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
178
+ end
179
+ end
180
+
181
+ self
182
+ end
183
+
184
+ # Deserializes the data based on type
185
+ # @param string type Data type
186
+ # @param string value Value to be deserialized
187
+ # @return [Object] Deserialized data
188
+ def _deserialize(type, value)
189
+ case type.to_sym
190
+ when :Time
191
+ Time.parse(value)
192
+ when :Date
193
+ Date.parse(value)
194
+ when :String
195
+ value.to_s
196
+ when :Integer
197
+ value.to_i
198
+ when :Float
199
+ value.to_f
200
+ when :Boolean
201
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
202
+ true
203
+ else
204
+ false
205
+ end
206
+ when :Object
207
+ # generic object (usually a Hash), return directly
208
+ value
209
+ when /\AArray<(?<inner_type>.+)>\z/
210
+ inner_type = Regexp.last_match[:inner_type]
211
+ value.map { |v| _deserialize(inner_type, v) }
212
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
213
+ k_type = Regexp.last_match[:k_type]
214
+ v_type = Regexp.last_match[:v_type]
215
+ {}.tap do |hash|
216
+ value.each do |k, v|
217
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
218
+ end
219
+ end
220
+ else # model
221
+ # models (e.g. Pet) or oneOf
222
+ klass = MuxRuby.const_get(type)
223
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
224
+ end
225
+ end
226
+
227
+ # Returns the string representation of the object
228
+ # @return [String] String presentation of the object
229
+ def to_s
230
+ to_hash.to_s
231
+ end
232
+
233
+ # to_body is an alias to to_hash (backward compatibility)
234
+ # @return [Hash] Returns the object in the form of hash
235
+ def to_body
236
+ to_hash
237
+ end
238
+
239
+ # Returns the object in the form of hash
240
+ # @return [Hash] Returns the object in the form of hash
241
+ def to_hash
242
+ hash = {}
243
+ self.class.attribute_map.each_pair do |attr, param|
244
+ value = self.send(attr)
245
+ if value.nil?
246
+ is_nullable = self.class.openapi_nullable.include?(attr)
247
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
248
+ end
249
+
250
+ hash[param] = _to_hash(value)
251
+ end
252
+ hash
253
+ end
254
+
255
+ # Outputs non-array value in the form of hash
256
+ # For object, use to_hash. Otherwise, just return the value
257
+ # @param [Object] value Any valid value
258
+ # @return [Hash] Returns the value in the form of hash
259
+ def _to_hash(value)
260
+ if value.is_a?(Array)
261
+ value.compact.map { |v| _to_hash(v) }
262
+ elsif value.is_a?(Hash)
263
+ {}.tap do |hash|
264
+ value.each { |k, v| hash[k] = _to_hash(v) }
265
+ end
266
+ elsif value.respond_to? :to_hash
267
+ value.to_hash
268
+ else
269
+ value
270
+ end
271
+ end
272
+
273
+ end
274
+
275
+ end
@@ -46,6 +46,9 @@ module MuxRuby
46
46
  # A catch-all reason when the input file in created with non-standard encoding parameters.
47
47
  attr_accessor :unexpected_media_file_parameters
48
48
 
49
+ # The video pixel format, as a string, returned by libav. Considered non-standard if not one of yuv420p or yuvj420p.
50
+ attr_accessor :unsupported_pixel_format
51
+
49
52
  class EnumAttributeValidator
50
53
  attr_reader :datatype
51
54
  attr_reader :allowable_values
@@ -80,7 +83,8 @@ module MuxRuby
80
83
  :'pixel_aspect_ratio' => :'pixel_aspect_ratio',
81
84
  :'video_edit_list' => :'video_edit_list',
82
85
  :'audio_edit_list' => :'audio_edit_list',
83
- :'unexpected_media_file_parameters' => :'unexpected_media_file_parameters'
86
+ :'unexpected_media_file_parameters' => :'unexpected_media_file_parameters',
87
+ :'unsupported_pixel_format' => :'unsupported_pixel_format'
84
88
  }
85
89
  end
86
90
 
@@ -101,7 +105,8 @@ module MuxRuby
101
105
  :'pixel_aspect_ratio' => :'String',
102
106
  :'video_edit_list' => :'String',
103
107
  :'audio_edit_list' => :'String',
104
- :'unexpected_media_file_parameters' => :'String'
108
+ :'unexpected_media_file_parameters' => :'String',
109
+ :'unsupported_pixel_format' => :'String'
105
110
  }
106
111
  end
107
112
 
@@ -165,6 +170,10 @@ module MuxRuby
165
170
  if attributes.key?(:'unexpected_media_file_parameters')
166
171
  self.unexpected_media_file_parameters = attributes[:'unexpected_media_file_parameters']
167
172
  end
173
+
174
+ if attributes.key?(:'unsupported_pixel_format')
175
+ self.unsupported_pixel_format = attributes[:'unsupported_pixel_format']
176
+ end
168
177
  end
169
178
 
170
179
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -254,7 +263,8 @@ module MuxRuby
254
263
  pixel_aspect_ratio == o.pixel_aspect_ratio &&
255
264
  video_edit_list == o.video_edit_list &&
256
265
  audio_edit_list == o.audio_edit_list &&
257
- unexpected_media_file_parameters == o.unexpected_media_file_parameters
266
+ unexpected_media_file_parameters == o.unexpected_media_file_parameters &&
267
+ unsupported_pixel_format == o.unsupported_pixel_format
258
268
  end
259
269
 
260
270
  # @see the `==` method
@@ -266,7 +276,7 @@ module MuxRuby
266
276
  # Calculates hash code according to all attributes.
267
277
  # @return [Integer] Hash code
268
278
  def hash
269
- [video_codec, audio_codec, video_gop_size, video_frame_rate, video_resolution, video_bitrate, pixel_aspect_ratio, video_edit_list, audio_edit_list, unexpected_media_file_parameters].hash
279
+ [video_codec, audio_codec, video_gop_size, video_frame_rate, video_resolution, video_bitrate, pixel_aspect_ratio, video_edit_list, audio_edit_list, unexpected_media_file_parameters, unsupported_pixel_format].hash
270
280
  end
271
281
 
272
282
  # Builds the object from hash
@@ -38,6 +38,12 @@ module MuxRuby
38
38
  # Marks the asset as a test asset when the value is set to true. A Test asset can help evaluate the Mux Video APIs without incurring any cost. There is no limit on number of test assets created. Test asset are watermarked with the Mux logo, limited to 10 seconds, deleted after 24 hrs.
39
39
  attr_accessor :test
40
40
 
41
+ # Max resolution tier can be used to control the maximum `resolution_tier` your asset is encoded, stored, and streamed at. If not set, this defaults to `1080p`.
42
+ attr_accessor :max_resolution_tier
43
+
44
+ # The encoding tier informs the cost, quality, and available platform features for the asset. By default the `smart` encoding tier is used.
45
+ attr_accessor :encoding_tier
46
+
41
47
  class EnumAttributeValidator
42
48
  attr_reader :datatype
43
49
  attr_reader :allowable_values
@@ -70,7 +76,9 @@ module MuxRuby
70
76
  :'mp4_support' => :'mp4_support',
71
77
  :'normalize_audio' => :'normalize_audio',
72
78
  :'master_access' => :'master_access',
73
- :'test' => :'test'
79
+ :'test' => :'test',
80
+ :'max_resolution_tier' => :'max_resolution_tier',
81
+ :'encoding_tier' => :'encoding_tier'
74
82
  }
75
83
  end
76
84
 
@@ -89,7 +97,9 @@ module MuxRuby
89
97
  :'mp4_support' => :'String',
90
98
  :'normalize_audio' => :'Boolean',
91
99
  :'master_access' => :'String',
92
- :'test' => :'Boolean'
100
+ :'test' => :'Boolean',
101
+ :'max_resolution_tier' => :'String',
102
+ :'encoding_tier' => :'String'
93
103
  }
94
104
  end
95
105
 
@@ -151,6 +161,14 @@ module MuxRuby
151
161
  if attributes.key?(:'test')
152
162
  self.test = attributes[:'test']
153
163
  end
164
+
165
+ if attributes.key?(:'max_resolution_tier')
166
+ self.max_resolution_tier = attributes[:'max_resolution_tier']
167
+ end
168
+
169
+ if attributes.key?(:'encoding_tier')
170
+ self.encoding_tier = attributes[:'encoding_tier']
171
+ end
154
172
  end
155
173
 
156
174
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -167,6 +185,10 @@ module MuxRuby
167
185
  return false unless mp4_support_validator.valid?(@mp4_support)
168
186
  master_access_validator = EnumAttributeValidator.new('String', ["none", "temporary"])
169
187
  return false unless master_access_validator.valid?(@master_access)
188
+ max_resolution_tier_validator = EnumAttributeValidator.new('String', ["1080p", "1440p", "2160p"])
189
+ return false unless max_resolution_tier_validator.valid?(@max_resolution_tier)
190
+ encoding_tier_validator = EnumAttributeValidator.new('String', ["smart", "baseline"])
191
+ return false unless encoding_tier_validator.valid?(@encoding_tier)
170
192
  true
171
193
  end
172
194
 
@@ -190,6 +212,26 @@ module MuxRuby
190
212
  @master_access = master_access
191
213
  end
192
214
 
215
+ # Custom attribute writer method checking allowed values (enum).
216
+ # @param [Object] max_resolution_tier Object to be assigned
217
+ def max_resolution_tier=(max_resolution_tier)
218
+ validator = EnumAttributeValidator.new('String', ["1080p", "1440p", "2160p"])
219
+ unless validator.valid?(max_resolution_tier)
220
+ fail ArgumentError, "invalid value for \"max_resolution_tier\", must be one of #{validator.allowable_values}."
221
+ end
222
+ @max_resolution_tier = max_resolution_tier
223
+ end
224
+
225
+ # Custom attribute writer method checking allowed values (enum).
226
+ # @param [Object] encoding_tier Object to be assigned
227
+ def encoding_tier=(encoding_tier)
228
+ validator = EnumAttributeValidator.new('String', ["smart", "baseline"])
229
+ unless validator.valid?(encoding_tier)
230
+ fail ArgumentError, "invalid value for \"encoding_tier\", must be one of #{validator.allowable_values}."
231
+ end
232
+ @encoding_tier = encoding_tier
233
+ end
234
+
193
235
  # Checks equality by comparing each attribute.
194
236
  # @param [Object] Object to be compared
195
237
  def ==(o)
@@ -202,7 +244,9 @@ module MuxRuby
202
244
  mp4_support == o.mp4_support &&
203
245
  normalize_audio == o.normalize_audio &&
204
246
  master_access == o.master_access &&
205
- test == o.test
247
+ test == o.test &&
248
+ max_resolution_tier == o.max_resolution_tier &&
249
+ encoding_tier == o.encoding_tier
206
250
  end
207
251
 
208
252
  # @see the `==` method
@@ -214,7 +258,7 @@ module MuxRuby
214
258
  # Calculates hash code according to all attributes.
215
259
  # @return [Integer] Hash code
216
260
  def hash
217
- [input, playback_policy, per_title_encode, passthrough, mp4_support, normalize_audio, master_access, test].hash
261
+ [input, playback_policy, per_title_encode, passthrough, mp4_support, normalize_audio, master_access, test, max_resolution_tier, encoding_tier].hash
218
262
  end
219
263
 
220
264
  # Builds the object from hash
@@ -19,7 +19,7 @@ module MuxRuby
19
19
 
20
20
  attr_accessor :new_asset_settings
21
21
 
22
- # When live streaming software disconnects from Mux, either intentionally or due to a drop in the network, the Reconnect Window is the time in seconds that Mux should wait for the streaming software to reconnect before considering the live stream finished and completing the recorded asset. Defaults to 60 seconds on the API if not specified. Reduced and Low Latency streams with a Reconnect Window greater than zero will insert slate media into the recorded asset while waiting for the streaming software to reconnect or when there are brief interruptions in the live stream media. When using a Reconnect Window setting higher than 60 seconds with a Standard Latency stream, we highly recommend enabling slate with the `use_slate_for_standard_latency` option.
22
+ # When live streaming software disconnects from Mux, either intentionally or due to a drop in the network, the Reconnect Window is the time in seconds that Mux should wait for the streaming software to reconnect before considering the live stream finished and completing the recorded asset. Defaults to 60 seconds on the API if not specified. If not specified directly, Standard Latency streams have a Reconnect Window of 60 seconds; Reduced and Low Latency streams have a default of 0 seconds, or no Reconnect Window. For that reason, we suggest specifying a value other than zero for Reduced and Low Latency streams. Reduced and Low Latency streams with a Reconnect Window greater than zero will insert slate media into the recorded asset while waiting for the streaming software to reconnect or when there are brief interruptions in the live stream media. When using a Reconnect Window setting higher than 60 seconds with a Standard Latency stream, we highly recommend enabling slate with the `use_slate_for_standard_latency` option.
23
23
  attr_accessor :reconnect_window
24
24
 
25
25
  # By default, Standard Latency live streams do not have slate media inserted while waiting for live streaming software to reconnect to Mux. Setting this to true enables slate insertion on a Standard Latency stream.
@@ -39,10 +39,10 @@ module MuxRuby
39
39
  # Configure the incoming live stream to include subtitles created with automatic speech recognition. Each Asset created from a live stream with `generated_subtitles` configured will automatically receive two text tracks. The first of these will have a `text_source` value of `generated_live`, and will be available with `ready` status as soon as the stream is live. The second text track will have a `text_source` value of `generated_live_final` and will contain subtitles with improved accuracy, timing, and formatting. However, `generated_live_final` tracks will not be available in `ready` status until the live stream ends. If an Asset has both `generated_live` and `generated_live_final` tracks that are `ready`, then only the `generated_live_final` track will be included during playback.
40
40
  attr_accessor :generated_subtitles
41
41
 
42
- # This field is deprecated. Please use latency_mode instead. Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Set this if you want lower latency for your live stream. Read more here: https://mux.com/blog/reduced-latency-for-mux-live-streaming-now-available/
42
+ # This field is deprecated. Please use `latency_mode` instead. Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Set this if you want lower latency for your live stream. Read more here: https://mux.com/blog/reduced-latency-for-mux-live-streaming-now-available/
43
43
  attr_accessor :reduced_latency
44
44
 
45
- # This field is deprecated. Please use latency_mode instead. Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Setting this option will enable compatibility with the LL-HLS specification for low-latency streaming. This typically has lower latency than Reduced Latency streams, and cannot be combined with Reduced Latency.
45
+ # This field is deprecated. Please use `latency_mode` instead. Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Setting this option will enable compatibility with the LL-HLS specification for low-latency streaming. This typically has lower latency than Reduced Latency streams, and cannot be combined with Reduced Latency.
46
46
  attr_accessor :low_latency
47
47
 
48
48
  # Latency is the time from when the streamer transmits a frame of video to when you see it in the player. Set this as an alternative to setting low latency or reduced latency flags. The Low Latency value is a beta feature. Read more here: https://mux.com/blog/introducing-low-latency-live-streaming/
@@ -15,6 +15,7 @@ require 'time'
15
15
 
16
16
  module MuxRuby
17
17
  class CreateTrackRequest
18
+ # The URL of the file that Mux should download and use. * For `audio` tracks, the URL is the location of the audio file for Mux to download, for example an M4A, WAV, or MP3 file. Mux supports most audio file formats and codecs, but for fastest processing, you should [use standard inputs wherever possible](https://docs.mux.com/guides/video/minimize-processing-time). * For `text` tracks, the URL is the location of subtitle/captions file. Mux supports [SubRip Text (SRT)](https://en.wikipedia.org/wiki/SubRip) and [Web Video Text Tracks](https://www.w3.org/TR/webvtt1/) formats for ingesting Subtitles and Closed Captions.
18
19
  attr_accessor :url
19
20
 
20
21
  attr_accessor :type
@@ -24,7 +25,7 @@ module MuxRuby
24
25
  # The language code value must be a valid BCP 47 specification compliant value. For example, en for English or en-US for the US version of English.
25
26
  attr_accessor :language_code
26
27
 
27
- # The name of the track containing a human-readable description. This value must be unique across all the text type and subtitles text type tracks. HLS manifest will associate subtitle text track with this value. For example, set the value to \"English\" for subtitles text track with language_code as en-US. If this parameter is not included, Mux will auto-populate based on the language_code value.
28
+ # The name of the track containing a human-readable description. This value must be unique within each group of `text` or `audio` track types. The HLS manifest will associate the `text` or `audio` track with this value. For example, set the value to \"English\" for subtitles text track with `language_code` as en-US. If this parameter is not included, Mux will auto-populate a value based on the `language_code` value.
28
29
  attr_accessor :name
29
30
 
30
31
  # Indicates the track provides Subtitles for the Deaf or Hard-of-hearing (SDH).
@@ -164,7 +165,7 @@ module MuxRuby
164
165
  def valid?
165
166
  return false if @url.nil?
166
167
  return false if @type.nil?
167
- type_validator = EnumAttributeValidator.new('String', ["text"])
168
+ type_validator = EnumAttributeValidator.new('String', ["text", "audio"])
168
169
  return false unless type_validator.valid?(@type)
169
170
  return false if @text_type.nil?
170
171
  text_type_validator = EnumAttributeValidator.new('String', ["subtitles"])
@@ -176,7 +177,7 @@ module MuxRuby
176
177
  # Custom attribute writer method checking allowed values (enum).
177
178
  # @param [Object] type Object to be assigned
178
179
  def type=(type)
179
- validator = EnumAttributeValidator.new('String', ["text"])
180
+ validator = EnumAttributeValidator.new('String', ["text", "audio"])
180
181
  unless validator.valid?(type)
181
182
  fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
182
183
  end
@@ -36,6 +36,9 @@ module MuxRuby
36
36
  # The duration of the asset in seconds.
37
37
  attr_accessor :asset_duration
38
38
 
39
+ # The resolution tier that the asset was ingested at, affecting billing for ingest & storage
40
+ attr_accessor :asset_resolution_tier
41
+
39
42
  # Total number of delivered seconds during this time window.
40
43
  attr_accessor :delivered_seconds
41
44
 
@@ -73,6 +76,7 @@ module MuxRuby
73
76
  :'deleted_at' => :'deleted_at',
74
77
  :'asset_state' => :'asset_state',
75
78
  :'asset_duration' => :'asset_duration',
79
+ :'asset_resolution_tier' => :'asset_resolution_tier',
76
80
  :'delivered_seconds' => :'delivered_seconds',
77
81
  :'delivered_seconds_by_resolution' => :'delivered_seconds_by_resolution'
78
82
  }
@@ -93,6 +97,7 @@ module MuxRuby
93
97
  :'deleted_at' => :'String',
94
98
  :'asset_state' => :'String',
95
99
  :'asset_duration' => :'Float',
100
+ :'asset_resolution_tier' => :'String',
96
101
  :'delivered_seconds' => :'Float',
97
102
  :'delivered_seconds_by_resolution' => :'DeliveryReportDeliveredSecondsByResolution'
98
103
  }
@@ -147,6 +152,10 @@ module MuxRuby
147
152
  self.asset_duration = attributes[:'asset_duration']
148
153
  end
149
154
 
155
+ if attributes.key?(:'asset_resolution_tier')
156
+ self.asset_resolution_tier = attributes[:'asset_resolution_tier']
157
+ end
158
+
150
159
  if attributes.key?(:'delivered_seconds')
151
160
  self.delivered_seconds = attributes[:'delivered_seconds']
152
161
  end
@@ -168,6 +177,8 @@ module MuxRuby
168
177
  def valid?
169
178
  asset_state_validator = EnumAttributeValidator.new('String', ["ready", "errored", "deleted"])
170
179
  return false unless asset_state_validator.valid?(@asset_state)
180
+ asset_resolution_tier_validator = EnumAttributeValidator.new('String', ["audio-only", "720p", "1080p", "1440p", "2160p"])
181
+ return false unless asset_resolution_tier_validator.valid?(@asset_resolution_tier)
171
182
  true
172
183
  end
173
184
 
@@ -181,6 +192,16 @@ module MuxRuby
181
192
  @asset_state = asset_state
182
193
  end
183
194
 
195
+ # Custom attribute writer method checking allowed values (enum).
196
+ # @param [Object] asset_resolution_tier Object to be assigned
197
+ def asset_resolution_tier=(asset_resolution_tier)
198
+ validator = EnumAttributeValidator.new('String', ["audio-only", "720p", "1080p", "1440p", "2160p"])
199
+ unless validator.valid?(asset_resolution_tier)
200
+ fail ArgumentError, "invalid value for \"asset_resolution_tier\", must be one of #{validator.allowable_values}."
201
+ end
202
+ @asset_resolution_tier = asset_resolution_tier
203
+ end
204
+
184
205
  # Checks equality by comparing each attribute.
185
206
  # @param [Object] Object to be compared
186
207
  def ==(o)
@@ -193,6 +214,7 @@ module MuxRuby
193
214
  deleted_at == o.deleted_at &&
194
215
  asset_state == o.asset_state &&
195
216
  asset_duration == o.asset_duration &&
217
+ asset_resolution_tier == o.asset_resolution_tier &&
196
218
  delivered_seconds == o.delivered_seconds &&
197
219
  delivered_seconds_by_resolution == o.delivered_seconds_by_resolution
198
220
  end
@@ -206,7 +228,7 @@ module MuxRuby
206
228
  # Calculates hash code according to all attributes.
207
229
  # @return [Integer] Hash code
208
230
  def hash
209
- [live_stream_id, asset_id, passthrough, created_at, deleted_at, asset_state, asset_duration, delivered_seconds, delivered_seconds_by_resolution].hash
231
+ [live_stream_id, asset_id, passthrough, created_at, deleted_at, asset_state, asset_duration, asset_resolution_tier, delivered_seconds, delivered_seconds_by_resolution].hash
210
232
  end
211
233
 
212
234
  # Builds the object from hash
@@ -16,7 +16,13 @@ require 'time'
16
16
  module MuxRuby
17
17
  # Seconds delivered broken into resolution tiers. Each tier will only be displayed if there was content delivered in the tier.
18
18
  class DeliveryReportDeliveredSecondsByResolution
19
- # Total number of delivered seconds during this time window that had a resolution larger than the 720p tier (over 921,600 pixels total).
19
+ # Total number of delivered seconds during this time window that had a resolution larger than the 1440p tier (over 4,194,304 pixels total).
20
+ attr_accessor :tier_2160p
21
+
22
+ # Total number of delivered seconds during this time window that had a resolution larger than the 1080p tier but less than or equal to the 2160p tier (over 2,073,600 and <= 4,194,304 pixels total).
23
+ attr_accessor :tier_1440p
24
+
25
+ # Total number of delivered seconds during this time window that had a resolution larger than the 720p tier but less than or equal to the 1440p tier (over 921,600 and <= 2,073,600 pixels total).
20
26
  attr_accessor :tier_1080p
21
27
 
22
28
  # Total number of delivered seconds during this time window that had a resolution within the 720p tier (up to 921,600 pixels total, based on typical 1280x720).
@@ -28,6 +34,8 @@ module MuxRuby
28
34
  # Attribute mapping from ruby-style variable name to JSON key.
29
35
  def self.attribute_map
30
36
  {
37
+ :'tier_2160p' => :'tier_2160p',
38
+ :'tier_1440p' => :'tier_1440p',
31
39
  :'tier_1080p' => :'tier_1080p',
32
40
  :'tier_720p' => :'tier_720p',
33
41
  :'tier_audio_only' => :'tier_audio_only'
@@ -42,6 +50,8 @@ module MuxRuby
42
50
  # Attribute type mapping.
43
51
  def self.openapi_types
44
52
  {
53
+ :'tier_2160p' => :'Float',
54
+ :'tier_1440p' => :'Float',
45
55
  :'tier_1080p' => :'Float',
46
56
  :'tier_720p' => :'Float',
47
57
  :'tier_audio_only' => :'Float'
@@ -69,6 +79,14 @@ module MuxRuby
69
79
  h[k.to_sym] = v
70
80
  }
71
81
 
82
+ if attributes.key?(:'tier_2160p')
83
+ self.tier_2160p = attributes[:'tier_2160p']
84
+ end
85
+
86
+ if attributes.key?(:'tier_1440p')
87
+ self.tier_1440p = attributes[:'tier_1440p']
88
+ end
89
+
72
90
  if attributes.key?(:'tier_1080p')
73
91
  self.tier_1080p = attributes[:'tier_1080p']
74
92
  end
@@ -100,6 +118,8 @@ module MuxRuby
100
118
  def ==(o)
101
119
  return true if self.equal?(o)
102
120
  self.class == o.class &&
121
+ tier_2160p == o.tier_2160p &&
122
+ tier_1440p == o.tier_1440p &&
103
123
  tier_1080p == o.tier_1080p &&
104
124
  tier_720p == o.tier_720p &&
105
125
  tier_audio_only == o.tier_audio_only
@@ -114,7 +134,7 @@ module MuxRuby
114
134
  # Calculates hash code according to all attributes.
115
135
  # @return [Integer] Hash code
116
136
  def hash
117
- [tier_1080p, tier_720p, tier_audio_only].hash
137
+ [tier_2160p, tier_1440p, tier_1080p, tier_720p, tier_audio_only].hash
118
138
  end
119
139
 
120
140
  # Builds the object from hash