mux_ruby 3.8.0 → 3.11.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 (115) 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 +5 -1
  13. data/docs/DeliveryReportDeliveredSecondsByResolution.md +26 -0
  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 +411 -318
  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/broadcast_layout.rb +1 -0
  43. data/lib/mux_ruby/models/create_asset_request.rb +48 -4
  44. data/lib/mux_ruby/models/create_live_stream_request.rb +3 -3
  45. data/lib/mux_ruby/models/create_track_request.rb +4 -3
  46. data/lib/mux_ruby/models/delivery_report.rb +35 -4
  47. data/lib/mux_ruby/models/delivery_report_delivered_seconds_by_resolution.rb +260 -0
  48. data/lib/mux_ruby/models/get_monitoring_breakdown_timeseries_response.rb +240 -0
  49. data/lib/mux_ruby/models/input_settings.rb +18 -6
  50. data/lib/mux_ruby/models/live_stream.rb +4 -4
  51. data/lib/mux_ruby/models/live_stream_embedded_subtitle_settings.rb +2 -2
  52. data/lib/mux_ruby/models/monitoring_breakdown_timeseries_datapoint.rb +236 -0
  53. data/lib/mux_ruby/models/monitoring_breakdown_timeseries_values.rb +229 -0
  54. data/lib/mux_ruby/models/track.rb +6 -6
  55. data/lib/mux_ruby/models/update_live_stream_request.rb +1 -1
  56. data/lib/mux_ruby/models/video_view.rb +162 -5
  57. data/lib/mux_ruby/version.rb +1 -1
  58. data/lib/mux_ruby.rb +6 -0
  59. data/spec/api/signing_keys_api_spec.rb +83 -0
  60. data/spec/models/asset_generated_subtitle_settings_spec.rb +50 -0
  61. data/spec/models/delivery_report_delivered_seconds_by_resolution_spec.rb +46 -0
  62. data/spec/models/get_monitoring_breakdown_timeseries_response_spec.rb +46 -0
  63. data/spec/models/monitoring_breakdown_timeseries_datapoint_spec.rb +46 -0
  64. data/spec/models/monitoring_breakdown_timeseries_values_spec.rb +40 -0
  65. data/test.sh +2 -2
  66. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-11.1.3/byebug/byebug.so +0 -0
  67. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-11.1.3/gem_make.out +6 -6
  68. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/ffi-1.15.5/ffi_c.so +0 -0
  69. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/ffi-1.15.5/gem_make.out +6 -6
  70. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/ffi-1.15.5/mkmf.log +15 -15
  71. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/jaro_winkler-1.5.4/gem_make.out +14 -14
  72. 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
  73. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-4.0.4/gem_make.out +6 -6
  74. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-4.0.4/mkmf.log +4 -4
  75. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-4.0.4/psych.so +0 -0
  76. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.0.2/gem_make.out +6 -6
  77. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.0.2/mkmf.log +2 -2
  78. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.0.2/stringio.so +0 -0
  79. data/vendor/bundle/ruby/3.2.0/gems/byebug-11.1.3/ext/byebug/Makefile +6 -6
  80. data/vendor/bundle/ruby/3.2.0/gems/byebug-11.1.3/lib/byebug/byebug.so +0 -0
  81. data/vendor/bundle/ruby/3.2.0/gems/ffi-1.15.5/ext/ffi_c/Makefile +6 -6
  82. data/vendor/bundle/ruby/3.2.0/gems/ffi-1.15.5/lib/ffi_c.so +0 -0
  83. data/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.4/ext/jaro_winkler/Makefile +6 -6
  84. data/vendor/bundle/ruby/3.2.0/gems/jaro_winkler-1.5.4/lib/jaro_winkler/jaro_winkler_ext.so +0 -0
  85. data/vendor/bundle/ruby/3.2.0/gems/psych-4.0.4/ext/psych/Makefile +6 -6
  86. data/vendor/bundle/ruby/3.2.0/gems/psych-4.0.4/lib/psych.so +0 -0
  87. data/vendor/bundle/ruby/3.2.0/gems/stringio-3.0.2/ext/stringio/Makefile +6 -6
  88. data/vendor/bundle/ruby/3.2.0/gems/stringio-3.0.2/lib/stringio.so +0 -0
  89. data/vendor/bundle/ruby/3.2.0/specifications/ast-2.4.2.gemspec +2 -2
  90. data/vendor/bundle/ruby/3.2.0/specifications/byebug-11.1.3.gemspec +2 -2
  91. data/vendor/bundle/ruby/3.2.0/specifications/coderay-1.1.3.gemspec +2 -2
  92. data/vendor/bundle/ruby/3.2.0/specifications/diff-lcs-1.5.0.gemspec +2 -2
  93. data/vendor/bundle/ruby/3.2.0/specifications/ethon-0.16.0.gemspec +2 -2
  94. data/vendor/bundle/ruby/3.2.0/specifications/ffi-1.15.5.gemspec +2 -2
  95. data/vendor/bundle/ruby/3.2.0/specifications/jaro_winkler-1.5.4.gemspec +2 -2
  96. data/vendor/bundle/ruby/3.2.0/specifications/method_source-1.0.0.gemspec +2 -2
  97. data/vendor/bundle/ruby/3.2.0/specifications/parallel-1.22.1.gemspec +2 -2
  98. data/vendor/bundle/ruby/3.2.0/specifications/parser-3.1.2.0.gemspec +2 -2
  99. data/vendor/bundle/ruby/3.2.0/specifications/pry-0.13.1.gemspec +2 -2
  100. data/vendor/bundle/ruby/3.2.0/specifications/pry-byebug-3.9.0.gemspec +2 -2
  101. data/vendor/bundle/ruby/3.2.0/specifications/psych-4.0.4.gemspec +2 -2
  102. data/vendor/bundle/ruby/3.2.0/specifications/rainbow-3.1.1.gemspec +2 -2
  103. data/vendor/bundle/ruby/3.2.0/specifications/rake-13.0.6.gemspec +2 -2
  104. data/vendor/bundle/ruby/3.2.0/specifications/rspec-3.11.0.gemspec +2 -2
  105. data/vendor/bundle/ruby/3.2.0/specifications/rspec-core-3.11.0.gemspec +2 -2
  106. data/vendor/bundle/ruby/3.2.0/specifications/rspec-expectations-3.11.0.gemspec +2 -2
  107. data/vendor/bundle/ruby/3.2.0/specifications/rspec-mocks-3.11.1.gemspec +2 -2
  108. data/vendor/bundle/ruby/3.2.0/specifications/rspec-support-3.11.0.gemspec +2 -2
  109. data/vendor/bundle/ruby/3.2.0/specifications/rubocop-0.66.0.gemspec +2 -2
  110. data/vendor/bundle/ruby/3.2.0/specifications/ruby-progressbar-1.11.0.gemspec +2 -2
  111. data/vendor/bundle/ruby/3.2.0/specifications/solid_assert-1.1.0.gemspec +2 -2
  112. data/vendor/bundle/ruby/3.2.0/specifications/stringio-3.0.2.gemspec +2 -2
  113. data/vendor/bundle/ruby/3.2.0/specifications/typhoeus-1.4.0.gemspec +2 -2
  114. data/vendor/bundle/ruby/3.2.0/specifications/unicode-display_width-1.5.0.gemspec +2 -2
  115. metadata +164 -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
@@ -17,6 +17,7 @@ module MuxRuby
17
17
  class BroadcastLayout
18
18
  GALLERY = "gallery".freeze
19
19
  ACTIVE_SPEAKER = "active-speaker".freeze
20
+ CROP = "crop".freeze
20
21
 
21
22
  # Builds the enum from string
22
23
  # @param [String] The enum value in the form of the string
@@ -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,9 +36,14 @@ 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
 
45
+ attr_accessor :delivered_seconds_by_resolution
46
+
42
47
  class EnumAttributeValidator
43
48
  attr_reader :datatype
44
49
  attr_reader :allowable_values
@@ -71,7 +76,9 @@ module MuxRuby
71
76
  :'deleted_at' => :'deleted_at',
72
77
  :'asset_state' => :'asset_state',
73
78
  :'asset_duration' => :'asset_duration',
74
- :'delivered_seconds' => :'delivered_seconds'
79
+ :'asset_resolution_tier' => :'asset_resolution_tier',
80
+ :'delivered_seconds' => :'delivered_seconds',
81
+ :'delivered_seconds_by_resolution' => :'delivered_seconds_by_resolution'
75
82
  }
76
83
  end
77
84
 
@@ -90,7 +97,9 @@ module MuxRuby
90
97
  :'deleted_at' => :'String',
91
98
  :'asset_state' => :'String',
92
99
  :'asset_duration' => :'Float',
93
- :'delivered_seconds' => :'Float'
100
+ :'asset_resolution_tier' => :'String',
101
+ :'delivered_seconds' => :'Float',
102
+ :'delivered_seconds_by_resolution' => :'DeliveryReportDeliveredSecondsByResolution'
94
103
  }
95
104
  end
96
105
 
@@ -143,9 +152,17 @@ module MuxRuby
143
152
  self.asset_duration = attributes[:'asset_duration']
144
153
  end
145
154
 
155
+ if attributes.key?(:'asset_resolution_tier')
156
+ self.asset_resolution_tier = attributes[:'asset_resolution_tier']
157
+ end
158
+
146
159
  if attributes.key?(:'delivered_seconds')
147
160
  self.delivered_seconds = attributes[:'delivered_seconds']
148
161
  end
162
+
163
+ if attributes.key?(:'delivered_seconds_by_resolution')
164
+ self.delivered_seconds_by_resolution = attributes[:'delivered_seconds_by_resolution']
165
+ end
149
166
  end
150
167
 
151
168
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -160,6 +177,8 @@ module MuxRuby
160
177
  def valid?
161
178
  asset_state_validator = EnumAttributeValidator.new('String', ["ready", "errored", "deleted"])
162
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)
163
182
  true
164
183
  end
165
184
 
@@ -173,6 +192,16 @@ module MuxRuby
173
192
  @asset_state = asset_state
174
193
  end
175
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
+
176
205
  # Checks equality by comparing each attribute.
177
206
  # @param [Object] Object to be compared
178
207
  def ==(o)
@@ -185,7 +214,9 @@ module MuxRuby
185
214
  deleted_at == o.deleted_at &&
186
215
  asset_state == o.asset_state &&
187
216
  asset_duration == o.asset_duration &&
188
- delivered_seconds == o.delivered_seconds
217
+ asset_resolution_tier == o.asset_resolution_tier &&
218
+ delivered_seconds == o.delivered_seconds &&
219
+ delivered_seconds_by_resolution == o.delivered_seconds_by_resolution
189
220
  end
190
221
 
191
222
  # @see the `==` method
@@ -197,7 +228,7 @@ module MuxRuby
197
228
  # Calculates hash code according to all attributes.
198
229
  # @return [Integer] Hash code
199
230
  def hash
200
- [live_stream_id, asset_id, passthrough, created_at, deleted_at, asset_state, asset_duration, delivered_seconds].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
201
232
  end
202
233
 
203
234
  # Builds the object from hash