wsc_sdk 1.3.1

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 (265) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +146 -0
  3. data/.circleci/docker/build/Dockerfile +3 -0
  4. data/.circleci/helpers/add_preamble.rb +29 -0
  5. data/.circleci/helpers/build_docs.sh +5 -0
  6. data/.circleci/helpers/build_gem.sh +5 -0
  7. data/.circleci/helpers/debundle-context.sh +14 -0
  8. data/.circleci/helpers/finalize_release.sh +24 -0
  9. data/.circleci/helpers/publish_docs.sh +10 -0
  10. data/.circleci/helpers/release_gem.sh +8 -0
  11. data/.circleci/helpers/setup.sh +11 -0
  12. data/.circleci/helpers/setup_aws.sh +13 -0
  13. data/.circleci/helpers/setup_gem.sh +2 -0
  14. data/.circleci/helpers/setup_git.sh +27 -0
  15. data/.circleci/helpers/setup_rubygems.sh +15 -0
  16. data/.circleci/helpers/test_integration.sh +12 -0
  17. data/.circleci/helpers/test_unit.sh +6 -0
  18. data/.circleci/jobs/publish-production.sh +17 -0
  19. data/.circleci/jobs/publish-staging.sh +17 -0
  20. data/.circleci/jobs/release-production.sh +21 -0
  21. data/.circleci/jobs/test-integration.sh +9 -0
  22. data/.circleci/jobs/test-unit.sh +9 -0
  23. data/.circleci/tag_repo.rb +46 -0
  24. data/.gitignore +28 -0
  25. data/.rspec +2 -0
  26. data/.yard/config +2 -0
  27. data/.yard/template/default/fulldoc/html/css/custom.css +151 -0
  28. data/.yard/template/default/layout/html/footer.erb +0 -0
  29. data/.yard/template/default/layout/html/headers.erb +10 -0
  30. data/.yard/template/default/layout/html/layout.erb +45 -0
  31. data/.yard/template/default/layout/html/setup.rb +24 -0
  32. data/.yardopts +1 -0
  33. data/CODE_OF_CONDUCT.md +74 -0
  34. data/Gemfile +6 -0
  35. data/Gemfile.lock +99 -0
  36. data/LICENSE.txt +28 -0
  37. data/README.md +397 -0
  38. data/Rakefile +2 -0
  39. data/bin/console +14 -0
  40. data/bin/setup +8 -0
  41. data/doc/Hash.html +291 -0
  42. data/doc/WscSdk.html +570 -0
  43. data/doc/WscSdk/ApiResponse.html +242 -0
  44. data/doc/WscSdk/Attributes.html +128 -0
  45. data/doc/WscSdk/Attributes/Mode.html +191 -0
  46. data/doc/WscSdk/Attributes/Type.html +389 -0
  47. data/doc/WscSdk/Client.html +2677 -0
  48. data/doc/WscSdk/Configuration.html +595 -0
  49. data/doc/WscSdk/Endpoint.html +2974 -0
  50. data/doc/WscSdk/Endpoints.html +141 -0
  51. data/doc/WscSdk/Endpoints/CustomStreamTargets.html +383 -0
  52. data/doc/WscSdk/Endpoints/LiveStreams.html +197 -0
  53. data/doc/WscSdk/Endpoints/OutputStreamTargets.html +180 -0
  54. data/doc/WscSdk/Endpoints/Outputs.html +180 -0
  55. data/doc/WscSdk/Endpoints/StreamTargets.html +446 -0
  56. data/doc/WscSdk/Endpoints/Transcoders.html +197 -0
  57. data/doc/WscSdk/Endpoints/UllStreamTargets.html +383 -0
  58. data/doc/WscSdk/Endpoints/WowzaStreamTargets.html +383 -0
  59. data/doc/WscSdk/Enum.html +225 -0
  60. data/doc/WscSdk/Enums.html +321 -0
  61. data/doc/WscSdk/Enums/BillingMode.html +188 -0
  62. data/doc/WscSdk/Enums/BroadcastLocation.html +396 -0
  63. data/doc/WscSdk/Enums/BufferSize.html +301 -0
  64. data/doc/WscSdk/Enums/ClosedCaptionType.html +221 -0
  65. data/doc/WscSdk/Enums/CustomProvider.html +252 -0
  66. data/doc/WscSdk/Enums/DeliveryMethod.html +188 -0
  67. data/doc/WscSdk/Enums/DeliveryType.html +188 -0
  68. data/doc/WscSdk/Enums/Encoder.html +460 -0
  69. data/doc/WscSdk/Enums/Errors.html +555 -0
  70. data/doc/WscSdk/Enums/IdleTimeout.html +398 -0
  71. data/doc/WscSdk/Enums/ImagePosition.html +220 -0
  72. data/doc/WscSdk/Enums/ModelMode.html +175 -0
  73. data/doc/WscSdk/Enums/ModelType.html +373 -0
  74. data/doc/WscSdk/Enums/PlayerType.html +188 -0
  75. data/doc/WscSdk/Enums/Protocol.html +204 -0
  76. data/doc/WscSdk/Enums/TargetDeliveryProtocol.html +188 -0
  77. data/doc/WscSdk/Enums/TranscoderType.html +188 -0
  78. data/doc/WscSdk/Enums/UserRegion.html +383 -0
  79. data/doc/WscSdk/Enums/WowzaProvider.html +188 -0
  80. data/doc/WscSdk/Errors.html +683 -0
  81. data/doc/WscSdk/Loggable.html +346 -0
  82. data/doc/WscSdk/Model.html +3316 -0
  83. data/doc/WscSdk/ModelList.html +442 -0
  84. data/doc/WscSdk/ModelTemplate.html +267 -0
  85. data/doc/WscSdk/Models.html +141 -0
  86. data/doc/WscSdk/Models/CustomStreamTarget.html +192 -0
  87. data/doc/WscSdk/Models/Error.html +351 -0
  88. data/doc/WscSdk/Models/LiveStream.html +601 -0
  89. data/doc/WscSdk/Models/LiveStreamConnectionCode.html +192 -0
  90. data/doc/WscSdk/Models/LiveStreamState.html +200 -0
  91. data/doc/WscSdk/Models/LiveStreamStats.html +200 -0
  92. data/doc/WscSdk/Models/LiveStreamThumbnailUrl.html +200 -0
  93. data/doc/WscSdk/Models/Output.html +294 -0
  94. data/doc/WscSdk/Models/OutputStreamTarget.html +274 -0
  95. data/doc/WscSdk/Models/StreamTarget.html +273 -0
  96. data/doc/WscSdk/Models/Transcoder.html +793 -0
  97. data/doc/WscSdk/Models/TranscoderBooleanStat.html +278 -0
  98. data/doc/WscSdk/Models/TranscoderConnectionCode.html +192 -0
  99. data/doc/WscSdk/Models/TranscoderFloatStat.html +278 -0
  100. data/doc/WscSdk/Models/TranscoderIntegerStat.html +278 -0
  101. data/doc/WscSdk/Models/TranscoderState.html +196 -0
  102. data/doc/WscSdk/Models/TranscoderStats.html +196 -0
  103. data/doc/WscSdk/Models/TranscoderStreamTargetState.html +192 -0
  104. data/doc/WscSdk/Models/TranscoderStringStat.html +278 -0
  105. data/doc/WscSdk/Models/TranscoderThumbnailUrl.html +196 -0
  106. data/doc/WscSdk/Models/UllStreamTarget.html +360 -0
  107. data/doc/WscSdk/Models/WowzaStreamTarget.html +380 -0
  108. data/doc/WscSdk/Pagination.html +1277 -0
  109. data/doc/WscSdk/Schema.html +861 -0
  110. data/doc/WscSdk/SchemaAttribute.html +2400 -0
  111. data/doc/WscSdk/Templates.html +141 -0
  112. data/doc/WscSdk/Templates/CustomStreamTarget.html +1045 -0
  113. data/doc/WscSdk/Templates/LiveStream.html +1432 -0
  114. data/doc/WscSdk/Templates/Output.html +829 -0
  115. data/doc/WscSdk/Templates/Transcoder.html +699 -0
  116. data/doc/WscSdk/Templates/UllStreamTarget.html +411 -0
  117. data/doc/WscSdk/Templates/WowzaStreamTarget.html +447 -0
  118. data/doc/WscSdk/TranscoderSharedMethods.html +1113 -0
  119. data/doc/_index.html +705 -0
  120. data/doc/class_list.html +51 -0
  121. data/doc/css/bootstrap.css +5 -0
  122. data/doc/css/common.css +1 -0
  123. data/doc/css/custom.css +151 -0
  124. data/doc/css/full_list.css +58 -0
  125. data/doc/css/style.css +496 -0
  126. data/doc/file.README.html +570 -0
  127. data/doc/file_list.html +56 -0
  128. data/doc/frames.html +17 -0
  129. data/doc/images/wsc-ruby-1800x400.png +0 -0
  130. data/doc/index.html +570 -0
  131. data/doc/js/app.js +292 -0
  132. data/doc/js/full_list.js +216 -0
  133. data/doc/js/jquery.js +4 -0
  134. data/doc/method_list.html +1731 -0
  135. data/doc/top-level-namespace.html +182 -0
  136. data/examples/client.rb +40 -0
  137. data/examples/helpers.rb +100 -0
  138. data/examples/live_streams/create.rb +39 -0
  139. data/examples/live_streams/delete.rb +32 -0
  140. data/examples/live_streams/find.rb +22 -0
  141. data/examples/live_streams/flood.rb +126 -0
  142. data/examples/live_streams/list.rb +24 -0
  143. data/examples/live_streams/regenerate_connection_code.rb +29 -0
  144. data/examples/live_streams/reset.rb +32 -0
  145. data/examples/live_streams/reset_and_wait.rb +51 -0
  146. data/examples/live_streams/start.rb +33 -0
  147. data/examples/live_streams/start_and_wait.rb +51 -0
  148. data/examples/live_streams/state.rb +33 -0
  149. data/examples/live_streams/stats.rb +43 -0
  150. data/examples/live_streams/stop.rb +33 -0
  151. data/examples/live_streams/stop_and_wait.rb +51 -0
  152. data/examples/live_streams/thumbnail_url.rb +46 -0
  153. data/examples/live_streams/update.rb +43 -0
  154. data/examples/live_streams/workflow.rb +165 -0
  155. data/examples/output_stream_targets/create.rb +56 -0
  156. data/examples/output_stream_targets/delete.rb +45 -0
  157. data/examples/output_stream_targets/find.rb +37 -0
  158. data/examples/output_stream_targets/list.rb +36 -0
  159. data/examples/output_stream_targets/update.rb +56 -0
  160. data/examples/outputs/create.rb +49 -0
  161. data/examples/outputs/delete.rb +39 -0
  162. data/examples/outputs/find.rb +31 -0
  163. data/examples/outputs/list.rb +29 -0
  164. data/examples/outputs/update.rb +50 -0
  165. data/examples/stream_targets/custom/create.rb +42 -0
  166. data/examples/stream_targets/custom/delete.rb +31 -0
  167. data/examples/stream_targets/custom/find.rb +23 -0
  168. data/examples/stream_targets/custom/list.rb +24 -0
  169. data/examples/stream_targets/custom/update.rb +43 -0
  170. data/examples/stream_targets/list.rb +24 -0
  171. data/examples/stream_targets/ull/create.rb +41 -0
  172. data/examples/stream_targets/ull/delete.rb +31 -0
  173. data/examples/stream_targets/ull/find.rb +23 -0
  174. data/examples/stream_targets/ull/list.rb +24 -0
  175. data/examples/stream_targets/ull/update.rb +43 -0
  176. data/examples/stream_targets/wowza/create.rb +42 -0
  177. data/examples/stream_targets/wowza/delete.rb +31 -0
  178. data/examples/stream_targets/wowza/find.rb +23 -0
  179. data/examples/stream_targets/wowza/list.rb +23 -0
  180. data/examples/stream_targets/wowza/update.rb +43 -0
  181. data/examples/transcoders/create.rb +39 -0
  182. data/examples/transcoders/delete.rb +31 -0
  183. data/examples/transcoders/find.rb +23 -0
  184. data/examples/transcoders/list.rb +24 -0
  185. data/examples/transcoders/reset.rb +32 -0
  186. data/examples/transcoders/reset_and_wait.rb +48 -0
  187. data/examples/transcoders/start.rb +33 -0
  188. data/examples/transcoders/start_and_wait.rb +50 -0
  189. data/examples/transcoders/state.rb +33 -0
  190. data/examples/transcoders/stats.rb +43 -0
  191. data/examples/transcoders/stop.rb +33 -0
  192. data/examples/transcoders/stop_and_wait.rb +50 -0
  193. data/examples/transcoders/thumbnail_url.rb +46 -0
  194. data/examples/transcoders/update.rb +43 -0
  195. data/images/wsc-ruby-1800x400.png +0 -0
  196. data/lib/wsc_sdk.rb +81 -0
  197. data/lib/wsc_sdk/client.rb +417 -0
  198. data/lib/wsc_sdk/configuration.rb +21 -0
  199. data/lib/wsc_sdk/constants.rb +29 -0
  200. data/lib/wsc_sdk/endpoint.rb +492 -0
  201. data/lib/wsc_sdk/endpoints/custom_stream_targets.rb +44 -0
  202. data/lib/wsc_sdk/endpoints/live_streams.rb +34 -0
  203. data/lib/wsc_sdk/endpoints/output_stream_targets.rb +17 -0
  204. data/lib/wsc_sdk/endpoints/outputs.rb +17 -0
  205. data/lib/wsc_sdk/endpoints/stream_targets.rb +45 -0
  206. data/lib/wsc_sdk/endpoints/transcoders.rb +38 -0
  207. data/lib/wsc_sdk/endpoints/ull_stream_targets.rb +44 -0
  208. data/lib/wsc_sdk/endpoints/wowza_stream_targets.rb +44 -0
  209. data/lib/wsc_sdk/enums.rb +31 -0
  210. data/lib/wsc_sdk/enums/billing_mode.rb +20 -0
  211. data/lib/wsc_sdk/enums/broadcast_location.rb +58 -0
  212. data/lib/wsc_sdk/enums/buffer_size.rb +41 -0
  213. data/lib/wsc_sdk/enums/closed_caption_type.rb +26 -0
  214. data/lib/wsc_sdk/enums/custom_provider.rb +32 -0
  215. data/lib/wsc_sdk/enums/delivery_method.rb +20 -0
  216. data/lib/wsc_sdk/enums/delivery_type.rb +20 -0
  217. data/lib/wsc_sdk/enums/encoder.rb +71 -0
  218. data/lib/wsc_sdk/enums/idle_timeout.rb +50 -0
  219. data/lib/wsc_sdk/enums/image_position.rb +26 -0
  220. data/lib/wsc_sdk/enums/player_type.rb +20 -0
  221. data/lib/wsc_sdk/enums/protocol.rb +23 -0
  222. data/lib/wsc_sdk/enums/target_delivery_protocol.rb +20 -0
  223. data/lib/wsc_sdk/enums/transcoder_type.rb +20 -0
  224. data/lib/wsc_sdk/enums/wowza_provider.rb +20 -0
  225. data/lib/wsc_sdk/errors.rb +115 -0
  226. data/lib/wsc_sdk/model.rb +515 -0
  227. data/lib/wsc_sdk/model_list.rb +42 -0
  228. data/lib/wsc_sdk/model_template.rb +27 -0
  229. data/lib/wsc_sdk/models/custom_stream_target.rb +34 -0
  230. data/lib/wsc_sdk/models/error.rb +53 -0
  231. data/lib/wsc_sdk/models/live_stream.rb +130 -0
  232. data/lib/wsc_sdk/models/live_stream_connection_code.rb +31 -0
  233. data/lib/wsc_sdk/models/live_stream_state.rb +20 -0
  234. data/lib/wsc_sdk/models/live_stream_stats.rb +20 -0
  235. data/lib/wsc_sdk/models/live_stream_thumbnail_url.rb +20 -0
  236. data/lib/wsc_sdk/models/output.rb +61 -0
  237. data/lib/wsc_sdk/models/output_stream_target.rb +37 -0
  238. data/lib/wsc_sdk/models/stream_target.rb +29 -0
  239. data/lib/wsc_sdk/models/transcoder.rb +135 -0
  240. data/lib/wsc_sdk/models/transcoder_boolean_stat.rb +41 -0
  241. data/lib/wsc_sdk/models/transcoder_connection_code.rb +29 -0
  242. data/lib/wsc_sdk/models/transcoder_float_stat.rb +40 -0
  243. data/lib/wsc_sdk/models/transcoder_integer_stat.rb +40 -0
  244. data/lib/wsc_sdk/models/transcoder_state.rb +31 -0
  245. data/lib/wsc_sdk/models/transcoder_stats.rb +51 -0
  246. data/lib/wsc_sdk/models/transcoder_stream_target_state.rb +29 -0
  247. data/lib/wsc_sdk/models/transcoder_string_stat.rb +40 -0
  248. data/lib/wsc_sdk/models/transcoder_thumbnail_url.rb +29 -0
  249. data/lib/wsc_sdk/models/ull_stream_target.rb +54 -0
  250. data/lib/wsc_sdk/models/wowza_stream_target.rb +60 -0
  251. data/lib/wsc_sdk/modules/api_response.rb +24 -0
  252. data/lib/wsc_sdk/modules/loggable.rb +44 -0
  253. data/lib/wsc_sdk/modules/transcoder_shared_methods.rb +221 -0
  254. data/lib/wsc_sdk/pagination.rb +89 -0
  255. data/lib/wsc_sdk/schema.rb +140 -0
  256. data/lib/wsc_sdk/schema_attribute.rb +349 -0
  257. data/lib/wsc_sdk/templates/custom_stream_target.rb +154 -0
  258. data/lib/wsc_sdk/templates/live_stream.rb +234 -0
  259. data/lib/wsc_sdk/templates/output.rb +133 -0
  260. data/lib/wsc_sdk/templates/transcoder.rb +97 -0
  261. data/lib/wsc_sdk/templates/ull_stream_target.rb +49 -0
  262. data/lib/wsc_sdk/templates/wowza_stream_target.rb +57 -0
  263. data/lib/wsc_sdk/version.rb +7 -0
  264. data/wsc_sdk.gemspec +48 -0
  265. metadata +460 -0
@@ -0,0 +1,42 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ module WscSdk
5
+
6
+ # A class to manage lists of models
7
+ #
8
+ class ModelList < Hash
9
+ include WscSdk::ApiResponse
10
+
11
+ # Add a model to the list
12
+ #
13
+ # @param model [WscSdk::Model]
14
+ # The model to add to the list
15
+ #
16
+ def add(model)
17
+ self[model.primary_key] = model
18
+ end
19
+
20
+ # Assign pagination data to the list
21
+ #
22
+ # @param pagination [Hash,WscSdk::Pagination]
23
+ # A hash of pagination options or an instance of WscSdk::Pagination
24
+ #
25
+ def pagination= pagination
26
+ if pagination.is_a?(Hash)
27
+ @pagination = WscSdk::Pagination.new(pagination)
28
+ elsif pagination.is_a?(WscSdk::Pagination)
29
+ @pagination = pagination
30
+ end
31
+ end
32
+
33
+ # Get pagination data for the list
34
+ #
35
+ # @return [Hash] A hash of pagination data
36
+ #
37
+ def pagination
38
+ @pagination ||= WscSdk::Pagination.new()
39
+ end
40
+ end
41
+
42
+ end
@@ -0,0 +1,27 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ module WscSdk
5
+
6
+ # A module that contains the various templates
7
+ module Templates
8
+
9
+ end
10
+
11
+ # A base class for the model templates.
12
+ #
13
+ class ModelTemplate
14
+
15
+ # Modifies a hash with a hash of modifiers
16
+ #
17
+ # @param [Hash] data
18
+ # The initial hash to be modified
19
+ #
20
+ # @param [Hash] modifiers
21
+ # A hash of modifiers for the final template output.
22
+ #
23
+ def self.merge(data, modifiers)
24
+ data.deep_merge(modifiers)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+ require 'wsc_sdk/models/stream_target'
6
+
7
+ module WscSdk
8
+ module Models
9
+
10
+ # A model to represent a Custom Stream Target in the Wowza Streaming Cloud API.
11
+ #
12
+ class CustomStreamTarget < WscSdk::Model
13
+
14
+ model_name_singular :stream_target_custom
15
+ model_name_plural :stream_targets_custom
16
+
17
+ attribute :id, :string, access: :read
18
+ attribute :name, :string, required: true
19
+ attribute :type, :string, access: :read
20
+ attribute :provider, :string
21
+ attribute :use_https, :boolean
22
+ attribute :stream_name, :string
23
+ attribute :username, :string
24
+ attribute :password, :string
25
+ attribute :primary_url, :string
26
+ attribute :backup_url, :string
27
+ attribute :hds_playback_url, :string
28
+ attribute :hls_playback_url, :string
29
+ attribute :rtmp_playback_url, :string
30
+ attribute :created_at, :datetime, access: :read
31
+ attribute :updated_at, :datetime, access: :read
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,53 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+
6
+ module WscSdk
7
+ module Models
8
+
9
+ # A model to represent an error returned from the API.
10
+ #
11
+ class Error < WscSdk::Model
12
+
13
+ model_name_singular :meta
14
+ model_name_plural :meta
15
+
16
+ #---------------------------------------------------------------------------
17
+ # ___ _
18
+ # / __| __| |_ ___ _ __ __ _
19
+ # \__ \/ _| ' \/ -_) ' \/ _` |
20
+ # |___/\__|_||_\___|_|_|_\__,_|
21
+ #
22
+ #---------------------------------------------------------------------------
23
+
24
+ attribute :status, :integer, access: :read
25
+ attribute :code, :string, access: :read
26
+ attribute :title, :string, access: :read
27
+ attribute :message, :string, access: :read
28
+ attribute :description, :string, access: :read
29
+
30
+ #---------------------------------------------------------------------------
31
+ # ___ _ _
32
+ # / __| |_ __ _| |_ ___
33
+ # \__ \ _/ _` | _/ -_)
34
+ # |___/\__\__,_|\__\___|
35
+ #
36
+ #---------------------------------------------------------------------------
37
+
38
+ # Since this is an error response the success is always false.
39
+ #
40
+ # @return [Boolean] An indication of the status of the API call.
41
+ #
42
+ def success?
43
+ @success = false
44
+ end
45
+
46
+ # Generates a string with the details of the error.
47
+ #
48
+ def to_s
49
+ "#{code} | #{title} | #{message} | #{description}"
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,130 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+
6
+ module WscSdk
7
+ module Models
8
+
9
+ # A model to represent a Live Stream in the Wowza Streaming Cloud API.
10
+ #
11
+ class LiveStream < WscSdk::Model
12
+ include WscSdk::TranscoderSharedMethods
13
+
14
+ model_name_singular :live_stream
15
+ model_name_plural :live_streams
16
+
17
+ #---------------------------------------------------------------------------
18
+ # ___ _
19
+ # / __| __| |_ ___ _ __ __ _
20
+ # \__ \/ _| ' \/ -_) ' \/ _` |
21
+ # |___/\__|_||_\___|_|_|_\__,_|
22
+ #
23
+ #---------------------------------------------------------------------------
24
+
25
+ attribute :id, :string, access: :read
26
+ attribute :name, :string, required: true
27
+ attribute :transcoder_type, :string, required: true, validate: Enums::TranscoderType.values, default: Enums::TranscoderType::TRANSCODED
28
+ attribute :billing_mode, :string, required: true, validate: Enums::BillingMode.values, default: Enums::BillingMode::PAY_AS_YOU_GO
29
+ attribute :broadcast_location, :string, required: true, validate: Enums::BroadcastLocation.values
30
+ # attribute :protocol, :string, required: true, validate: Enums::Protocol.values
31
+ attribute :encoder, :string, required: true, validate: Enums::Encoder.values
32
+ attribute :delivery_method, :string, required: true, validate: Enums::DeliveryMethod.values, default: Enums::DeliveryMethod::PUSH
33
+ attribute :delivery_type, :string, required: :delivery_type_is_required?, validate: Enums::DeliveryType.values, default: Enums::DeliveryType::SINGLE_BITRATE
34
+ attribute :recording, :boolean
35
+ attribute :closed_caption_type, :string, validate: Enums::ClosedCaptionType.values
36
+ attribute :target_delivery_protocol, :string, default: Enums::TargetDeliveryProtocol::HLS_HTTPS
37
+ attribute :use_stream_source, :boolean
38
+ attribute :stream_source_id, :string, access: :read
39
+ attribute :aspect_ratio_width, :integer, required: true
40
+ attribute :aspect_ratio_height, :integer, required: true
41
+ attribute :source_url, :string, access: :write, required: :source_url_is_required?, default: :default_source_url
42
+ attribute :connection_code, :string, access: :read
43
+ attribute :connection_code_expires_at, :datetime, access: :read
44
+ attribute :disable_authentication, :boolean, access: :write
45
+ attribute :username, :string, access: :write
46
+ attribute :password, :string, access: :write
47
+ attribute :delivery_protocols, :array
48
+ attribute :source_connection_information, :hash, access: :read
49
+ attribute :direct_playback_urls, :hash, access: :read
50
+
51
+ attribute :player_id, :string, access: :read
52
+ attribute :player_type, :string, validate: Enums::PlayerType.values
53
+ attribute :player_responsive, :boolean
54
+ attribute :player_width, :integer
55
+ attribute :player_video_poster_image_url, :string, access: :read
56
+ attribute :player_video_poster_image, :string, access: :write
57
+ attribute :remove_player_video_poster_image, :boolean, access: :write
58
+ attribute :player_countdown, :boolean
59
+ attribute :player_countdown_at, :datetime
60
+ attribute :player_logo_image_url, :string, access: :read
61
+ attribute :player_logo_image, :string, access: :write
62
+ attribute :remove_player_logo_image, :boolean, access: :write
63
+ attribute :player_logo_position, :string, validate: Enums::ImagePosition.values
64
+ attribute :player_embed_code, :string, access: :read
65
+ attribute :player_hds_playback_url, :string, access: :read
66
+ attribute :player_hls_playback_url, :string, access: :read
67
+
68
+ attribute :hosted_page, :boolean, access: :hosted_page_access
69
+ attribute :hosted_page_title, :string
70
+ attribute :hosted_page_description, :string
71
+ attribute :hosted_page_url, :string, access: :read
72
+ attribute :hosted_page_logo_image_url, :string, access: :read
73
+ attribute :hosted_page_logo_image, :string, access: :write
74
+ attribute :remove_hosted_page_logo_image, :boolean, access: :write
75
+ attribute :hosted_page_sharing_icons, :boolean
76
+
77
+
78
+ attribute :created_at, :datetime, access: :read
79
+ attribute :updated_at, :datetime, access: :read
80
+
81
+ # Determine if the source_url attribute is required
82
+ #
83
+ def source_url_is_required?
84
+ delivery_method == Enums::DeliveryMethod::PULL
85
+ end
86
+
87
+ # Determine if the delivery type opitons is required
88
+ #
89
+ def delivery_type_is_required?
90
+ encoder == Enums::Encoder::WOWZA_STREAMING_ENGINE
91
+ end
92
+
93
+ # Determine if the hosted page option can be set
94
+ #
95
+ def hosted_page_access
96
+ self.new_model? ? :read_write : :read
97
+ end
98
+
99
+ # Since the source_url is a write only attribute, when we update the
100
+ # live stream the value is no longer present, so we will default it to
101
+ # the value returned in the source_connection_information attribute, if it
102
+ # is present.
103
+ #
104
+ def default_source_url
105
+ sci = (self.attributes[:source_connection_information] || {})
106
+ return sci[:source_url] if sci.has_key?(:source_url)
107
+ return nil
108
+ end
109
+
110
+ #---------------------------------------------------------------------------
111
+ # _ _ _
112
+ # /_\ __| |_(_)___ _ _ ___
113
+ # / _ \/ _| _| / _ \ ' \(_-<
114
+ # /_/ \_\__|\__|_\___/_||_/__/
115
+ #
116
+ #---------------------------------------------------------------------------
117
+
118
+
119
+ # Regenerates the connection code for the transcoder.
120
+ #
121
+ # @return [WscSdk::Models::TranscoderConnectionCode]
122
+ # The regenerated connection code information.
123
+ #
124
+ def regenerate_connection_code
125
+ return self.endpoint.regenerate_connection_code(self.id)
126
+ end
127
+
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,31 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+ require 'wsc_sdk/models/transcoder_connection_code'
6
+
7
+ module WscSdk
8
+ module Models
9
+
10
+ # A model to represent the connection code of a Live Stream in the Wowza Streaming
11
+ # Cloud API.
12
+ #
13
+ class LiveStreamConnectionCode < WscSdk::Model
14
+
15
+ model_name_singular :live_stream
16
+ model_name_plural :live_streams
17
+
18
+
19
+ #---------------------------------------------------------------------------
20
+ # ___ _
21
+ # / __| __| |_ ___ _ __ __ _
22
+ # \__ \/ _| ' \/ -_) ' \/ _` |
23
+ # |___/\__|_||_\___|_|_|_\__,_|
24
+ #
25
+ #---------------------------------------------------------------------------
26
+
27
+ attribute :connection_code, :string, access: :read
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,20 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+ require 'wsc_sdk/models/transcoder_state'
6
+
7
+ module WscSdk
8
+ module Models
9
+
10
+ # A model to represent the State of a Live Stream in the Wowza Streaming
11
+ # Cloud API.
12
+ #
13
+ class LiveStreamState < TranscoderState
14
+
15
+ model_name_singular :live_stream
16
+ model_name_plural :live_streams
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+ require 'wsc_sdk/models/transcoder_stats'
6
+
7
+ module WscSdk
8
+ module Models
9
+
10
+ # A model to represent the Stats of a Live Stream in the Wowza Streaming
11
+ # Cloud API.
12
+ #
13
+ class LiveStreamStats < TranscoderStats
14
+
15
+ model_name_singular :live_stream
16
+ model_name_plural :live_streams
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ require 'wsc_sdk/model'
5
+ require 'wsc_sdk/models/transcoder_thumbnail_url'
6
+
7
+ module WscSdk
8
+ module Models
9
+
10
+ # A model to represent the Thumbnail URL of a Live Stream in the Wowza Streaming
11
+ # Cloud API.
12
+ #
13
+ class LiveStreamThumbnailUrl < TranscoderThumbnailUrl
14
+
15
+ model_name_singular :live_stream
16
+ model_name_plural :live_streams
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,61 @@
1
+ ####> This code and all components © 2015 – 2019 Wowza Media Systems, LLC. All rights reserved.
2
+ ####> This code is licensed pursuant to the BSD 3-Clause License.
3
+
4
+ module WscSdk
5
+ module Models
6
+
7
+ # A model to repesent an Ouput in the Wowza Streaming Cloud API.
8
+ #
9
+ class Output < WscSdk::Model
10
+
11
+ model_name_singular :output
12
+ model_name_plural :outputs
13
+
14
+
15
+ #---------------------------------------------------------------------------
16
+ # ___ _
17
+ # / __| __| |_ ___ _ __ __ _
18
+ # \__ \/ _| ' \/ -_) ' \/ _` |
19
+ # |___/\__|_||_\___|_|_|_\__,_|
20
+ #
21
+ #---------------------------------------------------------------------------
22
+
23
+ attribute :id, :string, access: :read
24
+ attribute :name, :string, access: :read
25
+ attribute :transcoder_id, :string, access: :read
26
+ attribute :stream_format, :string
27
+ attribute :passthrough_video, :boolean
28
+ attribute :passthrough_audio, :boolean
29
+ attribute :aspect_ratio_height, :integer
30
+ attribute :aspect_ratio_width, :integer
31
+ attribute :bitrate_audio, :integer
32
+ attribute :bitrate_video, :integer
33
+ attribute :h264_profile, :string
34
+ attribute :framerate_reduction, :string
35
+ attribute :keyframes, :string
36
+ attribute :created_at, :datetime, access: :read
37
+ attribute :updated_at, :datetime, access: :read
38
+
39
+ #---------------------------------------------------------------------------
40
+ # _ _ _ _
41
+ # /_\ ______ ___ __(_)__ _| |_(_)___ _ _ ___
42
+ # / _ \ (_-<_-</ _ \/ _| / _` | _| / _ \ ' \(_-<
43
+ # /_/ \_\/__/__/\___/\__|_\__,_|\__|_\___/_||_/__/
44
+ #
45
+ #---------------------------------------------------------------------------
46
+
47
+
48
+ # Output Stream Targets endpoint for stream targets associated with the
49
+ # output.
50
+ #
51
+ # @return [WscSdk::Endpoints::OutputStreamTargets]
52
+ # An instance of the OutputStreamTargets endpoint, with the results
53
+ # limited to the outputs stream targets associted with this output.
54
+ #
55
+ def output_stream_targets
56
+ @output_stream_targets ||= WscSdk::Endpoints::OutputStreamTargets.new(endpoint.client, parent_path: endpoint.find_path(self.primary_key))
57
+ end
58
+
59
+ end
60
+ end
61
+ end