mux_ruby 1.5.0 → 1.9.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 (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