mux_ruby 1.5.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +4 -1
  4. data/docs/Asset.md +15 -12
  5. data/docs/AssetErrors.md +2 -2
  6. data/docs/AssetNonStandardInputReasons.md +16 -0
  7. data/docs/AssetRecordingTimes.md +9 -0
  8. data/docs/AssetStaticRenditions.md +1 -1
  9. data/docs/AssetsApi.md +4 -0
  10. data/docs/CreateAssetRequest.md +6 -6
  11. data/docs/CreateLiveStreamRequest.md +1 -0
  12. data/docs/CreateTrackRequest.md +4 -4
  13. data/docs/DimensionValue.md +9 -0
  14. data/docs/DimensionsApi.md +118 -0
  15. data/docs/DisableLiveStreamResponse.md +8 -0
  16. data/docs/EnableLiveStreamResponse.md +8 -0
  17. data/docs/FiltersApi.md +2 -2
  18. data/docs/GetAssetOrLiveStreamIdResponse.md +8 -0
  19. data/docs/GetAssetOrLiveStreamIdResponseData.md +10 -0
  20. data/docs/GetAssetOrLiveStreamIdResponseDataObject.md +9 -0
  21. data/docs/GetRealTimeBreakdownResponse.md +10 -0
  22. data/docs/GetRealTimeHistogramTimeseriesResponse.md +11 -0
  23. data/docs/GetRealTimeHistogramTimeseriesResponseMeta.md +8 -0
  24. data/docs/GetRealTimeTimeseriesResponse.md +10 -0
  25. data/docs/Incident.md +28 -0
  26. data/docs/IncidentBreakdown.md +10 -0
  27. data/docs/IncidentNotification.md +10 -0
  28. data/docs/IncidentNotificationRule.md +12 -0
  29. data/docs/IncidentResponse.md +9 -0
  30. data/docs/IncidentsApi.md +186 -0
  31. data/docs/InputSettings.md +9 -7
  32. data/docs/InputSettingsOverlaySettings.md +7 -7
  33. data/docs/ListDimensionValuesResponse.md +10 -0
  34. data/docs/ListDimensionsResponse.md +10 -0
  35. data/docs/ListIncidentsResponse.md +10 -0
  36. data/docs/ListRealTimeDimensionsResponse.md +10 -0
  37. data/docs/ListRealTimeDimensionsResponseData.md +9 -0
  38. data/docs/ListRealTimeMetricsResponse.md +10 -0
  39. data/docs/ListRelatedIncidentsResponse.md +10 -0
  40. data/docs/LiveStream.md +1 -1
  41. data/docs/LiveStreamsApi.md +104 -0
  42. data/docs/NotificationRule.md +10 -0
  43. data/docs/PlaybackID.md +1 -1
  44. data/docs/PlaybackIDApi.md +60 -0
  45. data/docs/RealTimeApi.md +280 -0
  46. data/docs/RealTimeBreakdownValue.md +12 -0
  47. data/docs/RealTimeHistogramTimeseriesBucket.md +9 -0
  48. data/docs/RealTimeHistogramTimeseriesBucketValues.md +9 -0
  49. data/docs/RealTimeHistogramTimeseriesDatapoint.md +14 -0
  50. data/docs/RealTimeTimeseriesDatapoint.md +10 -0
  51. data/docs/Track.md +13 -13
  52. data/docs/VideoView.md +16 -14
  53. data/examples/data/exercise-dimensions.rb +29 -0
  54. data/examples/data/exercise-incidents.rb +29 -0
  55. data/examples/data/exercise-realtime.rb +60 -0
  56. data/examples/video/exercise-assets.rb +21 -0
  57. data/examples/video/exercise-live-streams.rb +30 -0
  58. data/lib/mux_ruby.rb +34 -0
  59. data/lib/mux_ruby/api/assets_api.rb +4 -0
  60. data/lib/mux_ruby/api/dimensions_api.rb +128 -0
  61. data/lib/mux_ruby/api/filters_api.rb +4 -4
  62. data/lib/mux_ruby/api/incidents_api.rb +217 -0
  63. data/lib/mux_ruby/api/live_streams_api.rb +106 -0
  64. data/lib/mux_ruby/api/playback_id_api.rb +69 -0
  65. data/lib/mux_ruby/api/real_time_api.rb +311 -0
  66. data/lib/mux_ruby/api_client.rb +13 -13
  67. data/lib/mux_ruby/configuration.rb +1 -4
  68. data/lib/mux_ruby/models/asset.rb +70 -3
  69. data/lib/mux_ruby/models/asset_errors.rb +2 -0
  70. data/lib/mux_ruby/models/asset_master.rb +35 -0
  71. data/lib/mux_ruby/models/asset_non_standard_input_reasons.rb +335 -0
  72. data/lib/mux_ruby/models/asset_recording_times.rb +195 -0
  73. data/lib/mux_ruby/models/asset_static_renditions.rb +2 -2
  74. data/lib/mux_ruby/models/asset_static_renditions_files.rb +6 -6
  75. data/lib/mux_ruby/models/create_asset_request.rb +8 -2
  76. data/lib/mux_ruby/models/create_live_stream_request.rb +15 -4
  77. data/lib/mux_ruby/models/create_track_request.rb +6 -2
  78. data/lib/mux_ruby/models/dimension_value.rb +193 -0
  79. data/lib/mux_ruby/models/disable_live_stream_response.rb +184 -0
  80. data/lib/mux_ruby/models/enable_live_stream_response.rb +184 -0
  81. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response.rb +184 -0
  82. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data.rb +203 -0
  83. data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data_object.rb +230 -0
  84. data/lib/mux_ruby/models/get_real_time_breakdown_response.rb +206 -0
  85. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response.rb +215 -0
  86. data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response_meta.rb +186 -0
  87. data/lib/mux_ruby/models/get_real_time_timeseries_response.rb +206 -0
  88. data/lib/mux_ruby/models/incident.rb +370 -0
  89. data/lib/mux_ruby/models/incident_breakdown.rb +202 -0
  90. data/lib/mux_ruby/models/incident_notification.rb +202 -0
  91. data/lib/mux_ruby/models/incident_notification_rule.rb +222 -0
  92. data/lib/mux_ruby/models/incident_response.rb +195 -0
  93. data/lib/mux_ruby/models/input_settings.rb +31 -4
  94. data/lib/mux_ruby/models/input_settings_overlay_settings.rb +10 -2
  95. data/lib/mux_ruby/models/list_dimension_values_response.rb +206 -0
  96. data/lib/mux_ruby/models/list_dimensions_response.rb +204 -0
  97. data/lib/mux_ruby/models/list_incidents_response.rb +206 -0
  98. data/lib/mux_ruby/models/list_real_time_dimensions_response.rb +206 -0
  99. data/lib/mux_ruby/models/list_real_time_dimensions_response_data.rb +193 -0
  100. data/lib/mux_ruby/models/list_real_time_metrics_response.rb +206 -0
  101. data/lib/mux_ruby/models/list_related_incidents_response.rb +206 -0
  102. data/lib/mux_ruby/models/live_stream.rb +1 -1
  103. data/lib/mux_ruby/models/notification_rule.rb +202 -0
  104. data/lib/mux_ruby/models/playback_id.rb +1 -0
  105. data/lib/mux_ruby/models/real_time_breakdown_value.rb +220 -0
  106. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket.rb +193 -0
  107. data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket_values.rb +193 -0
  108. data/lib/mux_ruby/models/real_time_histogram_timeseries_datapoint.rb +240 -0
  109. data/lib/mux_ruby/models/real_time_timeseries_datapoint.rb +202 -0
  110. data/lib/mux_ruby/models/simulcast_target.rb +1 -1
  111. data/lib/mux_ruby/models/track.rb +27 -2
  112. data/lib/mux_ruby/models/update_asset_master_access_request.rb +1 -1
  113. data/lib/mux_ruby/models/update_asset_mp4_support_request.rb +1 -1
  114. data/lib/mux_ruby/models/upload.rb +1 -1
  115. data/lib/mux_ruby/models/video_view.rb +36 -18
  116. data/lib/mux_ruby/version.rb +1 -1
  117. data/mux_ruby.gemspec +2 -0
  118. data/spec/api/assets_api_spec.rb +2 -0
  119. data/spec/api/dimensions_api_spec.rb +55 -0
  120. data/spec/api/filters_api_spec.rb +2 -2
  121. data/spec/api/incidents_api_spec.rb +73 -0
  122. data/spec/api/live_streams_api_spec.rb +24 -0
  123. data/spec/api/playback_id_api_spec.rb +40 -0
  124. data/spec/api/real_time_api_spec.rb +93 -0
  125. data/spec/models/asset_master_spec.rb +4 -0
  126. data/spec/models/asset_non_standard_input_reasons_spec.rb +98 -0
  127. data/spec/models/asset_recording_times_spec.rb +40 -0
  128. data/spec/models/asset_spec.rb +26 -0
  129. data/spec/models/asset_static_renditions_files_spec.rb +2 -2
  130. data/spec/models/create_live_stream_request_spec.rb +6 -0
  131. data/spec/models/dimension_value_spec.rb +40 -0
  132. data/spec/models/disable_live_stream_response_spec.rb +34 -0
  133. data/spec/models/enable_live_stream_response_spec.rb +34 -0
  134. data/spec/models/get_asset_or_live_stream_id_response_data_object_spec.rb +44 -0
  135. data/spec/models/get_asset_or_live_stream_id_response_data_spec.rb +46 -0
  136. data/spec/models/get_asset_or_live_stream_id_response_spec.rb +34 -0
  137. data/spec/models/get_real_time_breakdown_response_spec.rb +46 -0
  138. data/spec/models/get_real_time_histogram_timeseries_response_meta_spec.rb +34 -0
  139. data/spec/models/get_real_time_histogram_timeseries_response_spec.rb +52 -0
  140. data/spec/models/get_real_time_timeseries_response_spec.rb +46 -0
  141. data/spec/models/incident_breakdown_spec.rb +46 -0
  142. data/spec/models/incident_notification_rule_spec.rb +58 -0
  143. data/spec/models/incident_notification_spec.rb +46 -0
  144. data/spec/models/incident_response_spec.rb +40 -0
  145. data/spec/models/incident_spec.rb +154 -0
  146. data/spec/models/input_settings_spec.rb +12 -0
  147. data/spec/models/list_dimension_values_response_spec.rb +46 -0
  148. data/spec/models/list_dimensions_response_spec.rb +46 -0
  149. data/spec/models/list_incidents_response_spec.rb +46 -0
  150. data/spec/models/list_real_time_dimensions_response_data_spec.rb +40 -0
  151. data/spec/models/list_real_time_dimensions_response_spec.rb +46 -0
  152. data/spec/models/list_real_time_metrics_response_spec.rb +46 -0
  153. data/spec/models/list_related_incidents_response_spec.rb +46 -0
  154. data/spec/models/notification_rule_spec.rb +46 -0
  155. data/spec/models/real_time_breakdown_value_spec.rb +58 -0
  156. data/spec/models/real_time_histogram_timeseries_bucket_spec.rb +40 -0
  157. data/spec/models/real_time_histogram_timeseries_bucket_values_spec.rb +40 -0
  158. data/spec/models/real_time_histogram_timeseries_datapoint_spec.rb +70 -0
  159. data/spec/models/real_time_timeseries_datapoint_spec.rb +46 -0
  160. data/spec/models/track_spec.rb +4 -0
  161. data/spec/models/video_view_spec.rb +12 -0
  162. metadata +200 -60
data/docs/VideoView.md CHANGED
@@ -11,22 +11,22 @@ Name | Type | Description | Notes
11
11
  **preroll_requested** | **BOOLEAN** | | [optional]
12
12
  **page_type** | **String** | | [optional]
13
13
  **startup_score** | **String** | | [optional]
14
- **view_seek_duration** | **String** | | [optional]
14
+ **view_seek_duration** | **Integer** | | [optional]
15
15
  **country_name** | **String** | | [optional]
16
16
  **player_source_height** | **Integer** | | [optional]
17
17
  **longitude** | **String** | | [optional]
18
- **buffering_count** | **String** | | [optional]
19
- **video_duration** | **String** | | [optional]
18
+ **buffering_count** | **Integer** | | [optional]
19
+ **video_duration** | **Integer** | | [optional]
20
20
  **player_source_type** | **String** | | [optional]
21
21
  **city** | **String** | | [optional]
22
22
  **view_id** | **String** | | [optional]
23
23
  **platform_description** | **String** | | [optional]
24
- **video_startup_preroll_request_time** | **String** | | [optional]
24
+ **video_startup_preroll_request_time** | **Integer** | | [optional]
25
25
  **viewer_device_name** | **String** | | [optional]
26
26
  **video_series** | **String** | | [optional]
27
27
  **viewer_application_name** | **String** | | [optional]
28
28
  **updated_at** | **String** | | [optional]
29
- **view_total_content_playback_time** | **String** | | [optional]
29
+ **view_total_content_playback_time** | **Integer** | | [optional]
30
30
  **cdn** | **String** | | [optional]
31
31
  **player_instance_id** | **String** | | [optional]
32
32
  **video_language** | **String** | | [optional]
@@ -37,8 +37,8 @@ Name | Type | Description | Notes
37
37
  **playback_score** | **String** | | [optional]
38
38
  **page_url** | **String** | | [optional]
39
39
  **metro** | **String** | | [optional]
40
- **view_max_request_latency** | **String** | | [optional]
41
- **requests_for_first_preroll** | **String** | | [optional]
40
+ **view_max_request_latency** | **Integer** | | [optional]
41
+ **requests_for_first_preroll** | **Integer** | | [optional]
42
42
  **view_total_downscaling** | **String** | | [optional]
43
43
  **latitude** | **String** | | [optional]
44
44
  **player_source_host_name** | **String** | | [optional]
@@ -48,7 +48,7 @@ Name | Type | Description | Notes
48
48
  **player_language** | **String** | | [optional]
49
49
  **page_load_time** | **Integer** | | [optional]
50
50
  **viewer_device_category** | **String** | | [optional]
51
- **video_startup_preroll_load_time** | **String** | | [optional]
51
+ **video_startup_preroll_load_time** | **Integer** | | [optional]
52
52
  **player_version** | **String** | | [optional]
53
53
  **watch_time** | **Integer** | | [optional]
54
54
  **player_source_stream_type** | **String** | | [optional]
@@ -58,14 +58,14 @@ Name | Type | Description | Notes
58
58
  **experiment_name** | **String** | | [optional]
59
59
  **viewer_os_version** | **String** | | [optional]
60
60
  **player_preload** | **BOOLEAN** | | [optional]
61
- **buffering_duration** | **String** | | [optional]
61
+ **buffering_duration** | **Integer** | | [optional]
62
62
  **player_view_count** | **Integer** | | [optional]
63
63
  **player_software** | **String** | | [optional]
64
- **player_load_time** | **String** | | [optional]
64
+ **player_load_time** | **Integer** | | [optional]
65
65
  **platform_summary** | **String** | | [optional]
66
66
  **video_encoding_variant** | **String** | | [optional]
67
67
  **player_width** | **Integer** | | [optional]
68
- **view_seek_count** | **String** | | [optional]
68
+ **view_seek_count** | **Integer** | | [optional]
69
69
  **viewer_experience_score** | **String** | | [optional]
70
70
  **view_error_id** | **Integer** | | [optional]
71
71
  **video_variant_name** | **String** | | [optional]
@@ -77,7 +77,7 @@ Name | Type | Description | Notes
77
77
  **events** | [**Array<VideoViewEvent>**](VideoViewEvent.md) | | [optional]
78
78
  **player_name** | **String** | | [optional]
79
79
  **view_start** | **String** | | [optional]
80
- **view_average_request_throughput** | **String** | | [optional]
80
+ **view_average_request_throughput** | **Integer** | | [optional]
81
81
  **video_producer** | **String** | | [optional]
82
82
  **error_type_id** | **Integer** | | [optional]
83
83
  **mux_viewer_id** | **String** | | [optional]
@@ -88,7 +88,7 @@ Name | Type | Description | Notes
88
88
  **video_content_type** | **String** | | [optional]
89
89
  **viewer_os_family** | **String** | | [optional]
90
90
  **player_poster** | **String** | | [optional]
91
- **view_average_request_latency** | **String** | | [optional]
91
+ **view_average_request_latency** | **Integer** | | [optional]
92
92
  **video_variant_id** | **String** | | [optional]
93
93
  **player_source_duration** | **Integer** | | [optional]
94
94
  **player_source_url** | **String** | | [optional]
@@ -97,7 +97,7 @@ Name | Type | Description | Notes
97
97
  **id** | **String** | | [optional]
98
98
  **short_time** | **String** | | [optional]
99
99
  **rebuffer_percentage** | **String** | | [optional]
100
- **time_to_first_frame** | **String** | | [optional]
100
+ **time_to_first_frame** | **Integer** | | [optional]
101
101
  **viewer_user_id** | **String** | | [optional]
102
102
  **video_stream_type** | **String** | | [optional]
103
103
  **player_startup_time** | **Integer** | | [optional]
@@ -111,7 +111,9 @@ Name | Type | Description | Notes
111
111
  **player_autoplay** | **BOOLEAN** | | [optional]
112
112
  **player_height** | **Integer** | | [optional]
113
113
  **asn** | **Integer** | | [optional]
114
+ **asn_name** | **String** | | [optional]
114
115
  **quality_score** | **String** | | [optional]
115
116
  **player_software_version** | **String** | | [optional]
117
+ **player_mux_plugin_name** | **String** | | [optional]
116
118
 
117
119
 
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'mux_ruby'
4
+ require 'solid_assert'
5
+
6
+ SolidAssert.enable_assertions
7
+
8
+ # Authentication Setup
9
+ openapi = MuxRuby.configure do |config|
10
+ config.username = ENV['MUX_TOKEN_ID']
11
+ config.password = ENV['MUX_TOKEN_SECRET']
12
+ end
13
+
14
+ # API Client Initialization
15
+ dimensions_api = MuxRuby::DimensionsApi.new
16
+
17
+ # ========== list-dimensions ==========
18
+ dimensions = dimensions_api.list_dimensions()
19
+ assert dimensions != nil
20
+ assert dimensions.data != nil
21
+ assert dimensions.data.basic != nil
22
+ assert dimensions.data.advanced != nil
23
+ puts "list-dimensions OK ✅"
24
+
25
+ # ========== list-dimension-values ==========
26
+ dimension_values = dimensions_api.list_dimension_values("browser", {:timeframe => ['7:days']})
27
+ assert dimension_values != nil
28
+ assert dimension_values.data != nil
29
+ puts "list-dimension-values OK ✅"
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'mux_ruby'
4
+ require 'solid_assert'
5
+
6
+ SolidAssert.enable_assertions
7
+
8
+ # Authentication Setup
9
+ openapi = MuxRuby.configure do |config|
10
+ config.username = ENV['MUX_TOKEN_ID']
11
+ config.password = ENV['MUX_TOKEN_SECRET']
12
+ end
13
+
14
+ # API Client Initialization
15
+ incidents_api = MuxRuby::IncidentsApi.new
16
+
17
+ # Test coverage here is poor due to not knowning if the account we're testing against has any incidents.
18
+
19
+ # ========== list-incidents ==========
20
+ incidents = incidents_api.list_incidents
21
+ assert incidents != nil
22
+ assert incidents.data != nil
23
+ puts "list-incidents OK ✅"
24
+
25
+ # ========== get-incident ==========
26
+ puts "get-incident SKIP ⚠️"
27
+
28
+ # ========== list-related-incidents ==========
29
+ puts "list-related-incidents SKIP ⚠️"
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'mux_ruby'
4
+ require 'solid_assert'
5
+
6
+ SolidAssert.enable_assertions
7
+
8
+ # Authentication Setup
9
+ openapi = MuxRuby.configure do |config|
10
+ config.username = ENV['MUX_TOKEN_ID']
11
+ config.password = ENV['MUX_TOKEN_SECRET']
12
+ end
13
+
14
+ # API Client Initialization
15
+ rt_api = MuxRuby::RealTimeApi.new
16
+
17
+ # Test coverage here isn't fantastic due to not knowning if the account we're testing against has
18
+ # any real-time data. The behaviour has been manually verified against real-world data.
19
+
20
+ # ========== list-realtime-dimensions ==========
21
+ dimensions = rt_api.list_realtime_dimensions
22
+ assert dimensions != nil
23
+ assert dimensions.data != nil
24
+ assert dimensions.data.length > 0
25
+ assert dimensions.data.first.name != ''
26
+ assert dimensions.data.first.display_name != ''
27
+ puts "list-realtime-dimensions OK ✅"
28
+
29
+ # ========== list-realtime-metrics ==========
30
+ metrics = rt_api.list_realtime_metrics
31
+ assert metrics != nil
32
+ assert metrics.data != nil
33
+ assert metrics.data.length > 0
34
+ assert metrics.data.first.name != ''
35
+ assert metrics.data.first.display_name != ''
36
+ puts "list-realtime-metrics OK ✅"
37
+
38
+ # ========== get-realtime-breakdown ==========
39
+ breakdown = rt_api.get_realtime_breakdown('current-rebuffering-percentage', {:dimension => 'asn'})
40
+ assert breakdown != nil
41
+ assert breakdown.data != nil
42
+ puts "get-realtime-breakdown OK ✅"
43
+
44
+ # ========== get-realtime-histogram-timeseries ==========
45
+ histogram_timeseries = rt_api.get_realtime_histogram_timeseries('video-startup-time')
46
+ assert histogram_timeseries != nil
47
+ assert histogram_timeseries.meta != nil
48
+ assert histogram_timeseries.meta.buckets != nil
49
+ assert histogram_timeseries.meta.buckets.length > 0
50
+ assert histogram_timeseries.data != nil
51
+ assert histogram_timeseries.data.length > 0
52
+ puts "get-realtime-histogram-timeseries OK ✅"
53
+
54
+ # ========== get-realtime-timeseries ==========
55
+ timeseries = rt_api.get_realtime_timeseries('current-rebuffering-percentage')
56
+ assert timeseries != nil
57
+ assert timeseries.data != nil
58
+ assert timeseries.data.length > 0
59
+ assert timeseries.data.first.date != ''
60
+ puts "get-realtime-timeseries OK ✅"
@@ -13,6 +13,7 @@ end
13
13
 
14
14
  # API Client Initialization
15
15
  assets_api = MuxRuby::AssetsApi.new
16
+ playback_ids_api = MuxRuby::PlaybackIDApi.new
16
17
 
17
18
  # ========== create-asset ==========
18
19
  car = MuxRuby::CreateAssetRequest.new
@@ -52,6 +53,20 @@ end
52
53
  puts "get-asset OK ✅"
53
54
  puts "get-asset-input-info OK ✅"
54
55
 
56
+ # ========== clipping ==========
57
+ clip_request = MuxRuby::CreateAssetRequest.new
58
+ clip_request.input = [
59
+ {
60
+ url: "mux://assets/#{create_response.data.id}",
61
+ start_time: 0.0,
62
+ end_time: 5.0
63
+ }
64
+ ]
65
+ create_clip_response = assets_api.create_asset(clip_request)
66
+ assert create_clip_response != nil
67
+ assert create_clip_response.data.id != nil
68
+ puts "clipping OK ✅"
69
+
55
70
  # ========== create-asset-playback-id ==========
56
71
  cpbr = MuxRuby::CreatePlaybackIDRequest.new
57
72
  cpbr.policy = MuxRuby::PlaybackPolicy::PUBLIC
@@ -67,6 +82,12 @@ assert pb_id.data != nil
67
82
  assert pb_id.data.id == pb_id_c.data.id
68
83
  puts "get-asset-playback-id OK ✅"
69
84
 
85
+ # ========== get-asset-or-livestream-id ==========
86
+ get_playback_id_resp = playback_ids_api.get_asset_or_livestream_id(pb_id.data.id).data
87
+ assert get_playback_id_resp.object.id == create_response.data.id
88
+ assert get_playback_id_resp.object.type == "asset"
89
+ puts "get-asset-or-livestream-id OK ✅"
90
+
70
91
  # ========== update-asset-mp4-support ==========
71
92
  mp4_req = MuxRuby::UpdateAssetMP4SupportRequest.new
72
93
  mp4_req.mp4_support = 'standard'
@@ -13,6 +13,7 @@ end
13
13
 
14
14
  # API Client Initialization
15
15
  live_api = MuxRuby::LiveStreamsApi.new
16
+ playback_ids_api = MuxRuby::PlaybackIDApi.new
16
17
 
17
18
  # ========== create-live-stream ==========
18
19
  create_asset_request = MuxRuby::CreateAssetRequest.new
@@ -41,6 +42,13 @@ assert stream_get.data != nil
41
42
  assert stream_get.data.id == stream.data.id
42
43
  puts "get-live-stream OK ✅"
43
44
 
45
+ # ========== get-asset-or-livestream-id ==========
46
+ playback_id = stream.data.playback_ids.first.id
47
+ get_playback_id_resp = playback_ids_api.get_asset_or_livestream_id(playback_id).data
48
+ assert get_playback_id_resp.object.id == stream.data.id
49
+ assert get_playback_id_resp.object.type == "live_stream"
50
+ puts "get-asset-or-livestream-id OK ✅"
51
+
44
52
  # ========== create-live-stream-simulcast-target ==========
45
53
  create_simulcast_target = MuxRuby::CreateSimulcastTargetRequest.new
46
54
  create_simulcast_target.passthrough = 'foo'
@@ -104,6 +112,28 @@ rescue MuxRuby::ApiError => e
104
112
  end
105
113
  puts "signal-live-stream-complete OK ✅"
106
114
 
115
+ # ========== disable-live-stream ==========
116
+ begin
117
+ live_api.disable_live_stream(stream.data.id)
118
+ disabled_live_stream = live_api.get_live_stream(stream.data.id)
119
+ assert disabled_live_stream.data.status == 'disabled'
120
+ rescue MuxRuby::ApiError => e
121
+ puts "Should not have errored when disabling stream"
122
+ exit 1
123
+ end
124
+ puts "disable-live-stream OK ✅"
125
+
126
+ # ========== enable-live-stream ==========
127
+ begin
128
+ live_api.enable_live_stream(stream.data.id)
129
+ enabled_live_stream = live_api.get_live_stream(stream.data.id)
130
+ assert enabled_live_stream.data.status == 'idle'
131
+ rescue MuxRuby::ApiError => e
132
+ puts "Should not have errored when enabling stream"
133
+ exit 1
134
+ end
135
+ puts "enable-live-stream OK ✅"
136
+
107
137
  # ========== delete-live-stream ==========
108
138
  live_api.delete_live_stream(stream.data.id)
109
139
  begin
data/lib/mux_ruby.rb CHANGED
@@ -14,6 +14,8 @@ require 'mux_ruby/models/abridged_video_view'
14
14
  require 'mux_ruby/models/asset'
15
15
  require 'mux_ruby/models/asset_errors'
16
16
  require 'mux_ruby/models/asset_master'
17
+ require 'mux_ruby/models/asset_non_standard_input_reasons'
18
+ require 'mux_ruby/models/asset_recording_times'
17
19
  require 'mux_ruby/models/asset_response'
18
20
  require 'mux_ruby/models/asset_static_renditions'
19
21
  require 'mux_ruby/models/asset_static_renditions_files'
@@ -27,12 +29,27 @@ require 'mux_ruby/models/create_track_request'
27
29
  require 'mux_ruby/models/create_track_response'
28
30
  require 'mux_ruby/models/create_upload_request'
29
31
  require 'mux_ruby/models/delivery_report'
32
+ require 'mux_ruby/models/dimension_value'
33
+ require 'mux_ruby/models/disable_live_stream_response'
34
+ require 'mux_ruby/models/enable_live_stream_response'
30
35
  require 'mux_ruby/models/error'
31
36
  require 'mux_ruby/models/filter_value'
32
37
  require 'mux_ruby/models/get_asset_input_info_response'
38
+ require 'mux_ruby/models/get_asset_or_live_stream_id_response'
39
+ require 'mux_ruby/models/get_asset_or_live_stream_id_response_data'
40
+ require 'mux_ruby/models/get_asset_or_live_stream_id_response_data_object'
33
41
  require 'mux_ruby/models/get_asset_playback_id_response'
34
42
  require 'mux_ruby/models/get_metric_timeseries_data_response'
35
43
  require 'mux_ruby/models/get_overall_values_response'
44
+ require 'mux_ruby/models/get_real_time_breakdown_response'
45
+ require 'mux_ruby/models/get_real_time_histogram_timeseries_response'
46
+ require 'mux_ruby/models/get_real_time_histogram_timeseries_response_meta'
47
+ require 'mux_ruby/models/get_real_time_timeseries_response'
48
+ require 'mux_ruby/models/incident'
49
+ require 'mux_ruby/models/incident_breakdown'
50
+ require 'mux_ruby/models/incident_notification'
51
+ require 'mux_ruby/models/incident_notification_rule'
52
+ require 'mux_ruby/models/incident_response'
36
53
  require 'mux_ruby/models/input_file'
37
54
  require 'mux_ruby/models/input_info'
38
55
  require 'mux_ruby/models/input_settings'
@@ -43,22 +60,35 @@ require 'mux_ruby/models/list_all_metric_values_response'
43
60
  require 'mux_ruby/models/list_assets_response'
44
61
  require 'mux_ruby/models/list_breakdown_values_response'
45
62
  require 'mux_ruby/models/list_delivery_usage_response'
63
+ require 'mux_ruby/models/list_dimension_values_response'
64
+ require 'mux_ruby/models/list_dimensions_response'
46
65
  require 'mux_ruby/models/list_errors_response'
47
66
  require 'mux_ruby/models/list_exports_response'
48
67
  require 'mux_ruby/models/list_filter_values_response'
49
68
  require 'mux_ruby/models/list_filters_response'
50
69
  require 'mux_ruby/models/list_filters_response_data'
70
+ require 'mux_ruby/models/list_incidents_response'
51
71
  require 'mux_ruby/models/list_insights_response'
52
72
  require 'mux_ruby/models/list_live_streams_response'
73
+ require 'mux_ruby/models/list_real_time_dimensions_response'
74
+ require 'mux_ruby/models/list_real_time_dimensions_response_data'
75
+ require 'mux_ruby/models/list_real_time_metrics_response'
76
+ require 'mux_ruby/models/list_related_incidents_response'
53
77
  require 'mux_ruby/models/list_signing_keys_response'
54
78
  require 'mux_ruby/models/list_uploads_response'
55
79
  require 'mux_ruby/models/list_video_views_response'
56
80
  require 'mux_ruby/models/live_stream'
57
81
  require 'mux_ruby/models/live_stream_response'
58
82
  require 'mux_ruby/models/metric'
83
+ require 'mux_ruby/models/notification_rule'
59
84
  require 'mux_ruby/models/overall_values'
60
85
  require 'mux_ruby/models/playback_id'
61
86
  require 'mux_ruby/models/playback_policy'
87
+ require 'mux_ruby/models/real_time_breakdown_value'
88
+ require 'mux_ruby/models/real_time_histogram_timeseries_bucket'
89
+ require 'mux_ruby/models/real_time_histogram_timeseries_bucket_values'
90
+ require 'mux_ruby/models/real_time_histogram_timeseries_datapoint'
91
+ require 'mux_ruby/models/real_time_timeseries_datapoint'
62
92
  require 'mux_ruby/models/score'
63
93
  require 'mux_ruby/models/signal_live_stream_complete_response'
64
94
  require 'mux_ruby/models/signing_key'
@@ -78,12 +108,16 @@ require 'mux_ruby/models/video_view_response'
78
108
  # APIs
79
109
  require 'mux_ruby/api/assets_api'
80
110
  require 'mux_ruby/api/delivery_usage_api'
111
+ require 'mux_ruby/api/dimensions_api'
81
112
  require 'mux_ruby/api/direct_uploads_api'
82
113
  require 'mux_ruby/api/errors_api'
83
114
  require 'mux_ruby/api/exports_api'
84
115
  require 'mux_ruby/api/filters_api'
116
+ require 'mux_ruby/api/incidents_api'
85
117
  require 'mux_ruby/api/live_streams_api'
86
118
  require 'mux_ruby/api/metrics_api'
119
+ require 'mux_ruby/api/playback_id_api'
120
+ require 'mux_ruby/api/real_time_api'
87
121
  require 'mux_ruby/api/url_signing_keys_api'
88
122
  require 'mux_ruby/api/video_views_api'
89
123
 
@@ -186,6 +186,7 @@ module MuxRuby
186
186
  end
187
187
 
188
188
  # Delete an asset
189
+ # Deletes a video asset and all its data
189
190
  # @param asset_id The asset ID.
190
191
  # @param [Hash] opts the optional parameters
191
192
  # @return [nil]
@@ -195,6 +196,7 @@ module MuxRuby
195
196
  end
196
197
 
197
198
  # Delete an asset
199
+ # Deletes a video asset and all its data
198
200
  # @param asset_id The asset ID.
199
201
  # @param [Hash] opts the optional parameters
200
202
  # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
@@ -505,6 +507,7 @@ module MuxRuby
505
507
  end
506
508
 
507
509
  # List assets
510
+ # List all Mux assets.
508
511
  # @param [Hash] opts the optional parameters
509
512
  # @option opts [Integer] :limit Number of items to include in the response (default to 25)
510
513
  # @option opts [Integer] :page Offset by this many pages, of the size of &#x60;limit&#x60; (default to 1)
@@ -515,6 +518,7 @@ module MuxRuby
515
518
  end
516
519
 
517
520
  # List assets
521
+ # List all Mux assets.
518
522
  # @param [Hash] opts the optional parameters
519
523
  # @option opts [Integer] :limit Number of items to include in the response
520
524
  # @option opts [Integer] :page Offset by this many pages, of the size of &#x60;limit&#x60;
@@ -0,0 +1,128 @@
1
+ =begin
2
+ # Mux Ruby - Copyright 2019 Mux Inc.
3
+ # NOTE: This file is auto generated. Do not edit this file manually.
4
+ =end
5
+
6
+ require 'uri'
7
+
8
+ module MuxRuby
9
+ class DimensionsApi
10
+ attr_accessor :api_client
11
+
12
+ def initialize(api_client = ApiClient.default)
13
+ @api_client = api_client
14
+ end
15
+ # Lists the values for a specific dimension
16
+ # Lists the values for a dimension along with a total count of related views. Note: This API replaces the list-filter-values API call.
17
+ # @param dimension_id ID of the Dimension
18
+ # @param [Hash] opts the optional parameters
19
+ # @option opts [Integer] :limit Number of items to include in the response (default to 25)
20
+ # @option opts [Integer] :page Offset by this many pages, of the size of &#x60;limit&#x60; (default to 1)
21
+ # @option opts [Array<String>] :filters Filter key:value pairs. Must be provided as an array query string parameter (e.g. filters[]&#x3D;operating_system:windows&amp;filters[]&#x3D;country:US). Possible filter names are the same as returned by the List Filters endpoint.
22
+ # @option opts [Array<String>] :timeframe Timeframe window to limit results by. Must be provided as an array query string parameter (e.g. timeframe[]&#x3D;). Accepted formats are... * array of epoch timestamps e.g. timeframe[]&#x3D;1498867200&amp;timeframe[]&#x3D;1498953600 * duration string e.g. timeframe[]&#x3D;24:hours or timeframe[]&#x3D;7:days.
23
+ # @return [ListDimensionValuesResponse]
24
+ def list_dimension_values(dimension_id, opts = {})
25
+ data, _status_code, _headers = list_dimension_values_with_http_info(dimension_id, opts)
26
+ data
27
+ end
28
+
29
+ # Lists the values for a specific dimension
30
+ # Lists the values for a dimension along with a total count of related views. Note: This API replaces the list-filter-values API call.
31
+ # @param dimension_id ID of the Dimension
32
+ # @param [Hash] opts the optional parameters
33
+ # @option opts [Integer] :limit Number of items to include in the response
34
+ # @option opts [Integer] :page Offset by this many pages, of the size of &#x60;limit&#x60;
35
+ # @option opts [Array<String>] :filters Filter key:value pairs. Must be provided as an array query string parameter (e.g. filters[]&#x3D;operating_system:windows&amp;filters[]&#x3D;country:US). Possible filter names are the same as returned by the List Filters endpoint.
36
+ # @option opts [Array<String>] :timeframe Timeframe window to limit results by. Must be provided as an array query string parameter (e.g. timeframe[]&#x3D;). Accepted formats are... * array of epoch timestamps e.g. timeframe[]&#x3D;1498867200&amp;timeframe[]&#x3D;1498953600 * duration string e.g. timeframe[]&#x3D;24:hours or timeframe[]&#x3D;7:days.
37
+ # @return [Array<(ListDimensionValuesResponse, Fixnum, Hash)>] ListDimensionValuesResponse data, response status code and response headers
38
+ def list_dimension_values_with_http_info(dimension_id, opts = {})
39
+ if @api_client.config.debugging
40
+ @api_client.config.logger.debug 'Calling API: DimensionsApi.list_dimension_values ...'
41
+ end
42
+ # verify the required parameter 'dimension_id' is set
43
+ if @api_client.config.client_side_validation && dimension_id.nil?
44
+ fail ArgumentError, "Missing the required parameter 'dimension_id' when calling DimensionsApi.list_dimension_values"
45
+ end
46
+ # resource path
47
+ local_var_path = '/data/v1/dimensions/{DIMENSION_ID}'.sub('{' + 'DIMENSION_ID' + '}', dimension_id.to_s)
48
+
49
+ # query parameters
50
+ query_params = {}
51
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
52
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
53
+ query_params[:'filters[]'] = @api_client.build_collection_param(opts[:'filters'], :multi) if !opts[:'filters'].nil?
54
+ query_params[:'timeframe[]'] = @api_client.build_collection_param(opts[:'timeframe'], :multi) if !opts[:'timeframe'].nil?
55
+
56
+ # header parameters
57
+ header_params = {}
58
+ # HTTP header 'Accept' (if needed)
59
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
60
+
61
+ # form parameters
62
+ form_params = {}
63
+
64
+ # http body (model)
65
+ post_body = nil
66
+ auth_names = ['accessToken']
67
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
68
+ :header_params => header_params,
69
+ :query_params => query_params,
70
+ :form_params => form_params,
71
+ :body => post_body,
72
+ :auth_names => auth_names,
73
+ :return_type => 'ListDimensionValuesResponse')
74
+ if @api_client.config.debugging
75
+ @api_client.config.logger.debug "API called: DimensionsApi#list_dimension_values\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
76
+ end
77
+ return data, status_code, headers
78
+ end
79
+
80
+ # List Dimensions
81
+ # List all available dimensions. Note: This API replaces the list-filters API call.
82
+ # @param [Hash] opts the optional parameters
83
+ # @return [ListDimensionsResponse]
84
+ def list_dimensions(opts = {})
85
+ data, _status_code, _headers = list_dimensions_with_http_info(opts)
86
+ data
87
+ end
88
+
89
+ # List Dimensions
90
+ # List all available dimensions. Note: This API replaces the list-filters API call.
91
+ # @param [Hash] opts the optional parameters
92
+ # @return [Array<(ListDimensionsResponse, Fixnum, Hash)>] ListDimensionsResponse data, response status code and response headers
93
+ def list_dimensions_with_http_info(opts = {})
94
+ if @api_client.config.debugging
95
+ @api_client.config.logger.debug 'Calling API: DimensionsApi.list_dimensions ...'
96
+ end
97
+ # resource path
98
+ local_var_path = '/data/v1/dimensions'
99
+
100
+ # query parameters
101
+ query_params = {}
102
+
103
+ # header parameters
104
+ header_params = {}
105
+ # HTTP header 'Accept' (if needed)
106
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
107
+
108
+ # form parameters
109
+ form_params = {}
110
+
111
+ # http body (model)
112
+ post_body = nil
113
+ auth_names = ['accessToken']
114
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
115
+ :header_params => header_params,
116
+ :query_params => query_params,
117
+ :form_params => form_params,
118
+ :body => post_body,
119
+ :auth_names => auth_names,
120
+ :return_type => 'ListDimensionsResponse')
121
+ if @api_client.config.debugging
122
+ @api_client.config.logger.debug "API called: DimensionsApi#list_dimensions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
123
+ end
124
+ return data, status_code, headers
125
+ end
126
+
127
+ end
128
+ end