fastpixapi 0.0.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 (217) hide show
  1. checksums.yaml +7 -0
  2. data/lib/crystalline/metadata_fields.rb +210 -0
  3. data/lib/crystalline/t.rb +78 -0
  4. data/lib/crystalline/utils.rb +95 -0
  5. data/lib/crystalline.rb +12 -0
  6. data/lib/fastpix_api_sdk/input_video.rb +454 -0
  7. data/lib/fastpix_api_sdk/manage_live_stream.rb +717 -0
  8. data/lib/fastpix_api_sdk/manage_videos.rb +960 -0
  9. data/lib/fastpix_api_sdk/models/components/audioinput.rb +41 -0
  10. data/lib/fastpix_api_sdk/models/components/audioinput_type.rb +19 -0
  11. data/lib/fastpix_api_sdk/models/components/createlivestreamrequest.rb +37 -0
  12. data/lib/fastpix_api_sdk/models/components/createlivestreamrequest_maxresolution.rb +21 -0
  13. data/lib/fastpix_api_sdk/models/components/createlivestreamrequest_metadata.rb +28 -0
  14. data/lib/fastpix_api_sdk/models/components/createmediarequest.rb +89 -0
  15. data/lib/fastpix_api_sdk/models/components/createmediarequest_accesspolicy.rb +22 -0
  16. data/lib/fastpix_api_sdk/models/components/createmediarequest_accessrestrictions.rb +37 -0
  17. data/lib/fastpix_api_sdk/models/components/createmediarequest_domains.rb +48 -0
  18. data/lib/fastpix_api_sdk/models/components/createmediarequest_domains_defaultpolicy.rb +23 -0
  19. data/lib/fastpix_api_sdk/models/components/createmediarequest_languagecode.rb +26 -0
  20. data/lib/fastpix_api_sdk/models/components/createmediarequest_maxresolution.rb +25 -0
  21. data/lib/fastpix_api_sdk/models/components/createmediarequest_metadata.rb +29 -0
  22. data/lib/fastpix_api_sdk/models/components/createmediarequest_mp4support.rb +22 -0
  23. data/lib/fastpix_api_sdk/models/components/createmediarequest_type.rb +22 -0
  24. data/lib/fastpix_api_sdk/models/components/createmediarequest_useragents.rb +48 -0
  25. data/lib/fastpix_api_sdk/models/components/createmediarequest_useragents_defaultpolicy.rb +23 -0
  26. data/lib/fastpix_api_sdk/models/components/createmediaresponse.rb +62 -0
  27. data/lib/fastpix_api_sdk/models/components/createmediaresponse_maxresolution.rb +24 -0
  28. data/lib/fastpix_api_sdk/models/components/createmediaresponse_metadata.rb +28 -0
  29. data/lib/fastpix_api_sdk/models/components/directupload.rb +58 -0
  30. data/lib/fastpix_api_sdk/models/components/directuploadresponse.rb +37 -0
  31. data/lib/fastpix_api_sdk/models/components/directuploadresponse_metadata.rb +28 -0
  32. data/lib/fastpix_api_sdk/models/components/getcreatelivestreamresponsedto.rb +85 -0
  33. data/lib/fastpix_api_sdk/models/components/getcreatelivestreamresponsedto_metadata.rb +28 -0
  34. data/lib/fastpix_api_sdk/models/components/getcreatelivestreamresponsedto_srtplaybackresponse.rb +37 -0
  35. data/lib/fastpix_api_sdk/models/components/getstreamsresponse.rb +41 -0
  36. data/lib/fastpix_api_sdk/models/components/imposetrack.rb +49 -0
  37. data/lib/fastpix_api_sdk/models/components/input.rb +28 -0
  38. data/lib/fastpix_api_sdk/models/components/inputmediasettings.rb +45 -0
  39. data/lib/fastpix_api_sdk/models/components/livestreamdeleteresponse.rb +33 -0
  40. data/lib/fastpix_api_sdk/models/components/livestreamgetresponse.rb +37 -0
  41. data/lib/fastpix_api_sdk/models/components/livestreamresponsedto.rb +37 -0
  42. data/lib/fastpix_api_sdk/models/components/media.rb +93 -0
  43. data/lib/fastpix_api_sdk/models/components/media_maxresolution.rb +24 -0
  44. data/lib/fastpix_api_sdk/models/components/media_metadata.rb +28 -0
  45. data/lib/fastpix_api_sdk/models/components/media_mp4support.rb +22 -0
  46. data/lib/fastpix_api_sdk/models/components/mediapolicy.rb +20 -0
  47. data/lib/fastpix_api_sdk/models/components/moderation.rb +34 -0
  48. data/lib/fastpix_api_sdk/models/components/pagination.rb +41 -0
  49. data/lib/fastpix_api_sdk/models/components/patchlivestreamrequest.rb +37 -0
  50. data/lib/fastpix_api_sdk/models/components/patchlivestreamrequest_metadata.rb +28 -0
  51. data/lib/fastpix_api_sdk/models/components/patchresponsedata.rb +85 -0
  52. data/lib/fastpix_api_sdk/models/components/patchresponsedata_metadata.rb +28 -0
  53. data/lib/fastpix_api_sdk/models/components/patchresponsedata_srtplaybackresponse.rb +37 -0
  54. data/lib/fastpix_api_sdk/models/components/patchresponsedto.rb +37 -0
  55. data/lib/fastpix_api_sdk/models/components/placement.rb +45 -0
  56. data/lib/fastpix_api_sdk/models/components/playbackid.rb +41 -0
  57. data/lib/fastpix_api_sdk/models/components/playbackid_accesspolicy.rb +21 -0
  58. data/lib/fastpix_api_sdk/models/components/playbackid_accessrestrictions.rb +37 -0
  59. data/lib/fastpix_api_sdk/models/components/playbackid_domains.rb +41 -0
  60. data/lib/fastpix_api_sdk/models/components/playbackid_domains_defaultpolicy.rb +20 -0
  61. data/lib/fastpix_api_sdk/models/components/playbackid_useragents.rb +41 -0
  62. data/lib/fastpix_api_sdk/models/components/playbackid_useragents_defaultpolicy.rb +20 -0
  63. data/lib/fastpix_api_sdk/models/components/playbackidrequest.rb +33 -0
  64. data/lib/fastpix_api_sdk/models/components/playbackidrequest_accesspolicy.rb +20 -0
  65. data/lib/fastpix_api_sdk/models/components/playbackidresponse.rb +37 -0
  66. data/lib/fastpix_api_sdk/models/components/playbackidresponse_data.rb +37 -0
  67. data/lib/fastpix_api_sdk/models/components/playbackids.rb +37 -0
  68. data/lib/fastpix_api_sdk/models/components/playbacksettings.rb +33 -0
  69. data/lib/fastpix_api_sdk/models/components/playbacksettings_accesspolicy.rb +20 -0
  70. data/lib/fastpix_api_sdk/models/components/security.rb +37 -0
  71. data/lib/fastpix_api_sdk/models/components/segment_1.rb +37 -0
  72. data/lib/fastpix_api_sdk/models/components/segment_2.rb +37 -0
  73. data/lib/fastpix_api_sdk/models/components/segment_union.rb +28 -0
  74. data/lib/fastpix_api_sdk/models/components/simulcastdeleteresponse.rb +33 -0
  75. data/lib/fastpix_api_sdk/models/components/simulcastrequest.rb +37 -0
  76. data/lib/fastpix_api_sdk/models/components/simulcastresponse.rb +37 -0
  77. data/lib/fastpix_api_sdk/models/components/simulcastresponse_data.rb +49 -0
  78. data/lib/fastpix_api_sdk/models/components/simulcastresponse_metadata.rb +28 -0
  79. data/lib/fastpix_api_sdk/models/components/simulcastupdaterequest.rb +37 -0
  80. data/lib/fastpix_api_sdk/models/components/simulcastupdaterequest_metadata.rb +28 -0
  81. data/lib/fastpix_api_sdk/models/components/simulcastupdateresponse.rb +37 -0
  82. data/lib/fastpix_api_sdk/models/components/simulcastupdateresponse_data.rb +49 -0
  83. data/lib/fastpix_api_sdk/models/components/simulcastupdateresponse_metadata.rb +28 -0
  84. data/lib/fastpix_api_sdk/models/components/sourceresolution.rb +24 -0
  85. data/lib/fastpix_api_sdk/models/components/subtitle.rb +45 -0
  86. data/lib/fastpix_api_sdk/models/components/subtitle_metadata.rb +29 -0
  87. data/lib/fastpix_api_sdk/models/components/subtitleinput.rb +47 -0
  88. data/lib/fastpix_api_sdk/models/components/subtitleinput_languagecode.rb +76 -0
  89. data/lib/fastpix_api_sdk/models/components/summary.rb +40 -0
  90. data/lib/fastpix_api_sdk/models/components/track.rb +53 -0
  91. data/lib/fastpix_api_sdk/models/components/videoinput.rb +68 -0
  92. data/lib/fastpix_api_sdk/models/components/watermarkinput.rb +53 -0
  93. data/lib/fastpix_api_sdk/models/components/watermarkinput_type.rb +19 -0
  94. data/lib/fastpix_api_sdk/models/components/xalign.rb +21 -0
  95. data/lib/fastpix_api_sdk/models/components/yalign.rb +21 -0
  96. data/lib/fastpix_api_sdk/models/components.rb +98 -0
  97. data/lib/fastpix_api_sdk/models/errors/apierror.rb +38 -0
  98. data/lib/fastpix_api_sdk/models/errors/badrequest_error.rb +37 -0
  99. data/lib/fastpix_api_sdk/models/errors/badrequest_error_error.rb +42 -0
  100. data/lib/fastpix_api_sdk/models/errors/field.rb +37 -0
  101. data/lib/fastpix_api_sdk/models/errors/forbidden_error.rb +37 -0
  102. data/lib/fastpix_api_sdk/models/errors/forbidden_error_error.rb +42 -0
  103. data/lib/fastpix_api_sdk/models/errors/invalidpermission_error.rb +37 -0
  104. data/lib/fastpix_api_sdk/models/errors/invalidpermission_error_error.rb +42 -0
  105. data/lib/fastpix_api_sdk/models/errors/medianotfound_error.rb +37 -0
  106. data/lib/fastpix_api_sdk/models/errors/medianotfound_error_error.rb +42 -0
  107. data/lib/fastpix_api_sdk/models/errors/mediaorplaybacknotfound_error.rb +37 -0
  108. data/lib/fastpix_api_sdk/models/errors/mediaorplaybacknotfound_error_error.rb +42 -0
  109. data/lib/fastpix_api_sdk/models/errors/notfounderror.rb +37 -0
  110. data/lib/fastpix_api_sdk/models/errors/notfounderror_error.rb +42 -0
  111. data/lib/fastpix_api_sdk/models/errors/notfounderrorplaybackid.rb +37 -0
  112. data/lib/fastpix_api_sdk/models/errors/notfounderrorplaybackid_error.rb +42 -0
  113. data/lib/fastpix_api_sdk/models/errors/notfounderrorsimulcast.rb +37 -0
  114. data/lib/fastpix_api_sdk/models/errors/notfounderrorsimulcast_error.rb +42 -0
  115. data/lib/fastpix_api_sdk/models/errors/simulcastunavailable_error.rb +38 -0
  116. data/lib/fastpix_api_sdk/models/errors/simulcastunavailable_error_error.rb +45 -0
  117. data/lib/fastpix_api_sdk/models/errors/unauthorized_error.rb +37 -0
  118. data/lib/fastpix_api_sdk/models/errors/unauthorized_error_error.rb +42 -0
  119. data/lib/fastpix_api_sdk/models/errors/validationerrorresponse.rb +37 -0
  120. data/lib/fastpix_api_sdk/models/errors/validationerrorresponse_error.rb +41 -0
  121. data/lib/fastpix_api_sdk/models/errors.rb +35 -0
  122. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_accesspolicy.rb +21 -0
  123. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_accessrestrictions.rb +37 -0
  124. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_domains.rb +48 -0
  125. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_domains_defaultpolicy.rb +23 -0
  126. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_request.rb +37 -0
  127. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_requestbody.rb +37 -0
  128. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_response.rb +45 -0
  129. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_responsebody.rb +37 -0
  130. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_useragents.rb +48 -0
  131. data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_useragents_defaultpolicy.rb +23 -0
  132. data/lib/fastpix_api_sdk/models/operations/create_media_response.rb +45 -0
  133. data/lib/fastpix_api_sdk/models/operations/create_media_responsebody.rb +37 -0
  134. data/lib/fastpix_api_sdk/models/operations/create_new_stream_response.rb +45 -0
  135. data/lib/fastpix_api_sdk/models/operations/create_playbackid_of_stream_request.rb +37 -0
  136. data/lib/fastpix_api_sdk/models/operations/create_playbackid_of_stream_response.rb +45 -0
  137. data/lib/fastpix_api_sdk/models/operations/create_simulcast_of_stream_request.rb +37 -0
  138. data/lib/fastpix_api_sdk/models/operations/create_simulcast_of_stream_response.rb +45 -0
  139. data/lib/fastpix_api_sdk/models/operations/data.rb +33 -0
  140. data/lib/fastpix_api_sdk/models/operations/delete_live_stream_request.rb +33 -0
  141. data/lib/fastpix_api_sdk/models/operations/delete_live_stream_response.rb +45 -0
  142. data/lib/fastpix_api_sdk/models/operations/delete_media_playback_id_request.rb +37 -0
  143. data/lib/fastpix_api_sdk/models/operations/delete_media_playback_id_response.rb +45 -0
  144. data/lib/fastpix_api_sdk/models/operations/delete_media_playback_id_responsebody.rb +33 -0
  145. data/lib/fastpix_api_sdk/models/operations/delete_media_request.rb +33 -0
  146. data/lib/fastpix_api_sdk/models/operations/delete_media_response.rb +45 -0
  147. data/lib/fastpix_api_sdk/models/operations/delete_media_responsebody.rb +33 -0
  148. data/lib/fastpix_api_sdk/models/operations/delete_playbackid_of_stream_request.rb +37 -0
  149. data/lib/fastpix_api_sdk/models/operations/delete_playbackid_of_stream_response.rb +45 -0
  150. data/lib/fastpix_api_sdk/models/operations/delete_simulcast_of_stream_request.rb +37 -0
  151. data/lib/fastpix_api_sdk/models/operations/delete_simulcast_of_stream_response.rb +45 -0
  152. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_accesspolicy.rb +20 -0
  153. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_accessrestrictions.rb +37 -0
  154. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_domains.rb +48 -0
  155. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_domains_defaultpolicy.rb +23 -0
  156. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_metadata.rb +28 -0
  157. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_request.rb +37 -0
  158. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_response.rb +45 -0
  159. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_responsebody.rb +37 -0
  160. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_useragents.rb +48 -0
  161. data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_useragents_defaultpolicy.rb +23 -0
  162. data/lib/fastpix_api_sdk/models/operations/get_all_streams_orderby.rb +20 -0
  163. data/lib/fastpix_api_sdk/models/operations/get_all_streams_request.rb +41 -0
  164. data/lib/fastpix_api_sdk/models/operations/get_all_streams_response.rb +45 -0
  165. data/lib/fastpix_api_sdk/models/operations/get_live_stream_by_id_request.rb +33 -0
  166. data/lib/fastpix_api_sdk/models/operations/get_live_stream_by_id_response.rb +45 -0
  167. data/lib/fastpix_api_sdk/models/operations/get_live_stream_playback_id_request.rb +37 -0
  168. data/lib/fastpix_api_sdk/models/operations/get_live_stream_playback_id_response.rb +45 -0
  169. data/lib/fastpix_api_sdk/models/operations/get_media_request.rb +33 -0
  170. data/lib/fastpix_api_sdk/models/operations/get_media_response.rb +45 -0
  171. data/lib/fastpix_api_sdk/models/operations/get_media_responsebody.rb +37 -0
  172. data/lib/fastpix_api_sdk/models/operations/get_specific_simulcast_of_stream_request.rb +37 -0
  173. data/lib/fastpix_api_sdk/models/operations/get_specific_simulcast_of_stream_response.rb +45 -0
  174. data/lib/fastpix_api_sdk/models/operations/input.rb +28 -0
  175. data/lib/fastpix_api_sdk/models/operations/languagecode.rb +26 -0
  176. data/lib/fastpix_api_sdk/models/operations/list_media_orderby.rb +20 -0
  177. data/lib/fastpix_api_sdk/models/operations/list_media_request.rb +41 -0
  178. data/lib/fastpix_api_sdk/models/operations/list_media_response.rb +45 -0
  179. data/lib/fastpix_api_sdk/models/operations/list_media_responsebody.rb +41 -0
  180. data/lib/fastpix_api_sdk/models/operations/maxresolution.rb +25 -0
  181. data/lib/fastpix_api_sdk/models/operations/moderation.rb +34 -0
  182. data/lib/fastpix_api_sdk/models/operations/mp4support.rb +22 -0
  183. data/lib/fastpix_api_sdk/models/operations/push_media_settings.rb +95 -0
  184. data/lib/fastpix_api_sdk/models/operations/retrievemediainputinfo_request.rb +33 -0
  185. data/lib/fastpix_api_sdk/models/operations/retrievemediainputinfo_response.rb +45 -0
  186. data/lib/fastpix_api_sdk/models/operations/retrievemediainputinfo_responsebody.rb +37 -0
  187. data/lib/fastpix_api_sdk/models/operations/subtitles.rb +43 -0
  188. data/lib/fastpix_api_sdk/models/operations/subtitles_metadata.rb +28 -0
  189. data/lib/fastpix_api_sdk/models/operations/summary.rb +40 -0
  190. data/lib/fastpix_api_sdk/models/operations/type.rb +22 -0
  191. data/lib/fastpix_api_sdk/models/operations/update_live_stream_request.rb +37 -0
  192. data/lib/fastpix_api_sdk/models/operations/update_live_stream_response.rb +45 -0
  193. data/lib/fastpix_api_sdk/models/operations/update_specific_simulcast_of_stream_request.rb +41 -0
  194. data/lib/fastpix_api_sdk/models/operations/update_specific_simulcast_of_stream_response.rb +45 -0
  195. data/lib/fastpix_api_sdk/models/operations/updated_media_metadata.rb +28 -0
  196. data/lib/fastpix_api_sdk/models/operations/updated_media_request.rb +37 -0
  197. data/lib/fastpix_api_sdk/models/operations/updated_media_requestbody.rb +33 -0
  198. data/lib/fastpix_api_sdk/models/operations/updated_media_response.rb +45 -0
  199. data/lib/fastpix_api_sdk/models/operations/updated_media_responsebody.rb +37 -0
  200. data/lib/fastpix_api_sdk/models/operations.rb +89 -0
  201. data/lib/fastpix_api_sdk/playback.rb +941 -0
  202. data/lib/fastpix_api_sdk/sdk.rb +103 -0
  203. data/lib/fastpix_api_sdk/sdk_hooks/hooks.rb +96 -0
  204. data/lib/fastpix_api_sdk/sdk_hooks/types.rb +157 -0
  205. data/lib/fastpix_api_sdk/sdkconfiguration.rb +77 -0
  206. data/lib/fastpix_api_sdk/simulcast_stream.rb +767 -0
  207. data/lib/fastpix_api_sdk/start_live_stream.rb +208 -0
  208. data/lib/fastpix_api_sdk/utils/forms.rb +210 -0
  209. data/lib/fastpix_api_sdk/utils/headers.rb +79 -0
  210. data/lib/fastpix_api_sdk/utils/query_params.rb +133 -0
  211. data/lib/fastpix_api_sdk/utils/request_bodies.rb +62 -0
  212. data/lib/fastpix_api_sdk/utils/retries.rb +95 -0
  213. data/lib/fastpix_api_sdk/utils/security.rb +133 -0
  214. data/lib/fastpix_api_sdk/utils/url.rb +102 -0
  215. data/lib/fastpix_api_sdk/utils/utils.rb +186 -0
  216. data/lib/fastpixapi.rb +29 -0
  217. metadata +442 -0
@@ -0,0 +1,49 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Displays the result of the request.
12
+ class SimulcastResponseData
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
17
+ field :simulcast_id, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('simulcastId') } }
18
+ # The RTMP hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
19
+ field :url, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('url') } }
20
+ # A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
21
+ field :stream_key, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('streamKey') } }
22
+ # When the value is true, the simulcast will be enabled for the given stream
23
+ field :is_enabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('isEnabled') } }
24
+ # Arbitrary user-supplied metadata that will be included in the simulcast details. Can be used to store your own ID for a video along with the simulcast. Max:255 characters, Upto 10 entries are allowed.
25
+ field :metadata, T.nilable(Models::Components::SimulcastResponseMetadata), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('metadata') } }
26
+
27
+ sig { params(simulcast_id: T.nilable(::String), url: T.nilable(::String), stream_key: T.nilable(::String), is_enabled: T.nilable(T::Boolean), metadata: T.nilable(Models::Components::SimulcastResponseMetadata)).void }
28
+ def initialize(simulcast_id: nil, url: nil, stream_key: nil, is_enabled: nil, metadata: nil)
29
+ @simulcast_id = simulcast_id
30
+ @url = url
31
+ @stream_key = stream_key
32
+ @is_enabled = is_enabled
33
+ @metadata = metadata
34
+ end
35
+
36
+ sig { params(other: T.untyped).returns(T::Boolean) }
37
+ def ==(other)
38
+ return false unless other.is_a? self.class
39
+ return false unless @simulcast_id == other.simulcast_id
40
+ return false unless @url == other.url
41
+ return false unless @stream_key == other.stream_key
42
+ return false unless @is_enabled == other.is_enabled
43
+ return false unless @metadata == other.metadata
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,28 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Arbitrary user-supplied metadata that will be included in the simulcast details. Can be used to store your own ID for a video along with the simulcast. Max:255 characters, Upto 10 entries are allowed.
12
+ class SimulcastResponseMetadata
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+
18
+ def initialize; end
19
+
20
+ sig { params(other: T.untyped).returns(T::Boolean) }
21
+ def ==(other)
22
+ return false unless other.is_a? self.class
23
+ true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,37 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+
12
+ class SimulcastUpdateRequest
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # When the value is set to false, the simulcast will be disabled for the given stream.
17
+ field :is_enabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('isEnabled') } }
18
+ # Arbitrary user-supplied metadata that will be included in the simulcast details. Can be used to store your own ID for a video along with the simulcast. Max:255 characters, Upto 10 entries are allowed.
19
+ field :metadata, T.nilable(Models::Components::SimulcastUpdateRequestMetadata), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('metadata') } }
20
+
21
+ sig { params(is_enabled: T.nilable(T::Boolean), metadata: T.nilable(Models::Components::SimulcastUpdateRequestMetadata)).void }
22
+ def initialize(is_enabled: nil, metadata: nil)
23
+ @is_enabled = is_enabled
24
+ @metadata = metadata
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @is_enabled == other.is_enabled
31
+ return false unless @metadata == other.metadata
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,28 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Arbitrary user-supplied metadata that will be included in the simulcast details. Can be used to store your own ID for a video along with the simulcast. Max:255 characters, Upto 10 entries are allowed.
12
+ class SimulcastUpdateRequestMetadata
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+
18
+ def initialize; end
19
+
20
+ sig { params(other: T.untyped).returns(T::Boolean) }
21
+ def ==(other)
22
+ return false unless other.is_a? self.class
23
+ true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,37 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Displays the result of the request.
12
+ class SimulcastUpdateResponse
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # It demonstrates whether the request is successful or not.
17
+ field :success, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('success') } }
18
+ # Displays the result of the request.
19
+ field :data, T.nilable(Models::Components::SimulcastUpdateResponseData), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('data') } }
20
+
21
+ sig { params(success: T.nilable(T::Boolean), data: T.nilable(Models::Components::SimulcastUpdateResponseData)).void }
22
+ def initialize(success: nil, data: nil)
23
+ @success = success
24
+ @data = data
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @success == other.success
31
+ return false unless @data == other.data
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,49 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Displays the result of the request.
12
+ class SimulcastUpdateResponseData
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # When you create the new simulcast, FastPix assign a universal unique identifier which can contain a maximum of 255 characters.
17
+ field :simulcast_id, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('simulcastId') } }
18
+ # The RTMP hostname, combined with the application name, is crucial for connecting to third-party live streaming services and transmitting the live stream.
19
+ field :url, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('url') } }
20
+ # A unique stream key is generated for streaming, allowing the user to start streaming on any third-party platform using this key.
21
+ field :stream_key, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('streamKey') } }
22
+ # When the value is set to false, the simulcast will be disabled for the given stream
23
+ field :is_enabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('isEnabled') } }
24
+ # Arbitrary user-supplied metadata that will be included in the simulcast details. Can be used to store your own ID for a video along with the simulcast. Max:255 characters, Upto 10 entries are allowed.
25
+ field :metadata, T.nilable(Models::Components::SimulcastUpdateResponseMetadata), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('metadata') } }
26
+
27
+ sig { params(simulcast_id: T.nilable(::String), url: T.nilable(::String), stream_key: T.nilable(::String), is_enabled: T.nilable(T::Boolean), metadata: T.nilable(Models::Components::SimulcastUpdateResponseMetadata)).void }
28
+ def initialize(simulcast_id: nil, url: nil, stream_key: nil, is_enabled: nil, metadata: nil)
29
+ @simulcast_id = simulcast_id
30
+ @url = url
31
+ @stream_key = stream_key
32
+ @is_enabled = is_enabled
33
+ @metadata = metadata
34
+ end
35
+
36
+ sig { params(other: T.untyped).returns(T::Boolean) }
37
+ def ==(other)
38
+ return false unless other.is_a? self.class
39
+ return false unless @simulcast_id == other.simulcast_id
40
+ return false unless @url == other.url
41
+ return false unless @stream_key == other.stream_key
42
+ return false unless @is_enabled == other.is_enabled
43
+ return false unless @metadata == other.metadata
44
+ true
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,28 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Arbitrary user-supplied metadata that will be included in the simulcast details. Can be used to store your own ID for a video along with the simulcast. Max:255 characters, Upto 10 entries are allowed.
12
+ class SimulcastUpdateResponseMetadata
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+
18
+ def initialize; end
19
+
20
+ sig { params(other: T.untyped).returns(T::Boolean) }
21
+ def ==(other)
22
+ return false unless other.is_a? self.class
23
+ true
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,24 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # SourceResolution - The actual resolution of the uploaded media. This represents the native quality of the source media.
12
+ class SourceResolution < T::Enum
13
+ enums do
14
+ TWO_THOUSAND_ONE_HUNDRED_AND_SIXTYP = new('2160p')
15
+ ONE_THOUSAND_FOUR_HUNDRED_AND_FORTYP = new('1440p')
16
+ ONE_THOUSAND_AND_EIGHTYP = new('1080p')
17
+ SEVEN_HUNDRED_AND_TWENTYP = new('720p')
18
+ FOUR_HUNDRED_AND_EIGHTYP = new('480p')
19
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,45 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Generates subtitle files for audio/video files.
12
+ #
13
+ class Subtitle
14
+ extend T::Sig
15
+ include Crystalline::MetadataFields
16
+
17
+ # Name of the language in which the subtitles will be generated.
18
+ #
19
+ field :language_name, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('languageName') } }
20
+ # You can search for videos with specific key-value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have a maximum of 255 characters and up to 10 entries are allowed.
21
+ #
22
+ field :metadata, T.nilable(Models::Components::SubtitleMetadata), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('metadata') } }
23
+ # Language codes are concise, standardized symbols that denote languages, utilizing either two or three characters for identification. The language code must be compliant with the BCP 47 standard to ensure compatibility. (for text only).
24
+ #
25
+ field :language_code, T.nilable(Models::Components::CreateMediaRequestLanguageCode), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('languageCode'), 'decoder': Utils.enum_from_string(Models::Components::CreateMediaRequestLanguageCode, true) } }
26
+
27
+ sig { params(language_name: T.nilable(::String), metadata: T.nilable(Models::Components::SubtitleMetadata), language_code: T.nilable(Models::Components::CreateMediaRequestLanguageCode)).void }
28
+ def initialize(language_name: nil, metadata: nil, language_code: nil)
29
+ @language_name = language_name
30
+ @metadata = metadata
31
+ @language_code = language_code
32
+ end
33
+
34
+ sig { params(other: T.untyped).returns(T::Boolean) }
35
+ def ==(other)
36
+ return false unless other.is_a? self.class
37
+ return false unless @language_name == other.language_name
38
+ return false unless @metadata == other.metadata
39
+ return false unless @language_code == other.language_code
40
+ true
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,29 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # You can search for videos with specific key-value pairs using metadata, when you tag a video in "key" : "value" pairs. Dynamic Metadata allows you to define a key that allows any value pair. You can have a maximum of 255 characters and up to 10 entries are allowed.
12
+ #
13
+ class SubtitleMetadata
14
+ extend T::Sig
15
+ include Crystalline::MetadataFields
16
+
17
+
18
+
19
+ def initialize; end
20
+
21
+ sig { params(other: T.untyped).returns(T::Boolean) }
22
+ def ==(other)
23
+ return false unless other.is_a? self.class
24
+ true
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,47 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # Generates subtitle files for audio/video files.
12
+ class SubtitleInput
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Defines the type of input.
17
+ #
18
+ field :type, ::String, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('type'), required: true } }
19
+ # The direct URL of the subtitle file.
20
+ field :url, ::String, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('url'), required: true } }
21
+ # Name of the language in which the subtitles will be generated.
22
+ field :language_name, ::String, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('languageName'), required: true } }
23
+ # The BCP 47 language code representing the language of the generated track.
24
+ #
25
+ field :language_code, Models::Components::SubtitleInputLanguageCode, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('languageCode'), required: true, 'decoder': Utils.enum_from_string(Models::Components::SubtitleInputLanguageCode, false) } }
26
+
27
+ sig { params(type: ::String, url: ::String, language_name: ::String, language_code: Models::Components::SubtitleInputLanguageCode).void }
28
+ def initialize(type:, url:, language_name:, language_code:)
29
+ @type = type
30
+ @url = url
31
+ @language_name = language_name
32
+ @language_code = language_code
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @url == other.url
40
+ return false unless @language_name == other.language_name
41
+ return false unless @language_code == other.language_code
42
+ true
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,76 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # SubtitleInputLanguageCode - The BCP 47 language code representing the language of the generated track.
12
+ #
13
+ class SubtitleInputLanguageCode < T::Enum
14
+ enums do
15
+ AR_SA = new('ar-SA')
16
+ BN_BD = new('bn-BD')
17
+ BN_IN = new('bn-IN')
18
+ CA_ES = new('ca-ES')
19
+ CS_CZ = new('cs-CZ')
20
+ DA_DK = new('da-DK')
21
+ DE_AT = new('de-AT')
22
+ DE_CH = new('de-CH')
23
+ DE_DE = new('de-DE')
24
+ EL_GR = new('el-GR')
25
+ EN_AU = new('en-AU')
26
+ EN_CA = new('en-CA')
27
+ EN_GB = new('en-GB')
28
+ EN_IE = new('en-IE')
29
+ EN_IN = new('en-IN')
30
+ EN_NZ = new('en-NZ')
31
+ EN_US = new('en-US')
32
+ EN_ZA = new('en-ZA')
33
+ ES_AR = new('es-AR')
34
+ ES_CL = new('es-CL')
35
+ ES_CO = new('es-CO')
36
+ ES_ES = new('es-ES')
37
+ ES_MX = new('es-MX')
38
+ ES_US = new('es-US')
39
+ FI_FI = new('fi-FI')
40
+ FR_BE = new('fr-BE')
41
+ FR_CA = new('fr-CA')
42
+ FR_CH = new('fr-CH')
43
+ FR_FR = new('fr-FR')
44
+ HE_IL = new('he-IL')
45
+ HI_IN = new('hi-IN')
46
+ HR_HR = new('hr-HR')
47
+ HU_HU = new('hu-HU')
48
+ ID_ID = new('id-ID')
49
+ IT_CH = new('it-CH')
50
+ IT_IT = new('it-IT')
51
+ JA_JP = new('ja-JP')
52
+ KO_KR = new('ko-KR')
53
+ NL_BE = new('nl-BE')
54
+ NL_NL = new('nl-NL')
55
+ NO_NO = new('no-NO')
56
+ PL_PL = new('pl-PL')
57
+ PT_BR = new('pt-BR')
58
+ PT_PT = new('pt-PT')
59
+ RO_RO = new('ro-RO')
60
+ RU_RU = new('ru-RU')
61
+ SK_SK = new('sk-SK')
62
+ SV_SE = new('sv-SE')
63
+ TA_IN = new('ta-IN')
64
+ TA_LK = new('ta-LK')
65
+ TH_TH = new('th-TH')
66
+ TR_TR = new('tr-TR')
67
+ UK_UA = new('uk-UA')
68
+ BG_BG = new('bg-BG')
69
+ ZH_CN = new('zh-CN')
70
+ ZH_HK = new('zh-HK')
71
+ ZH_TW = new('zh-TW')
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,40 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+
12
+ class Summary
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Enable or disable the summary feature for the media. Set to true to enable summary or false to disable.
17
+ #
18
+ field :generate, T::Boolean, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('generate'), required: true } }
19
+ # Specifies the desired word count for the generated summary.
20
+ # - The value must be between **30** and **250** words.
21
+ #
22
+ field :summary_length, T.nilable(::Integer), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('summaryLength') } }
23
+
24
+ sig { params(generate: T::Boolean, summary_length: T.nilable(::Integer)).void }
25
+ def initialize(generate:, summary_length: 100)
26
+ @generate = generate
27
+ @summary_length = summary_length
28
+ end
29
+
30
+ sig { params(other: T.untyped).returns(T::Boolean) }
31
+ def ==(other)
32
+ return false unless other.is_a? self.class
33
+ return false unless @generate == other.generate
34
+ return false unless @summary_length == other.summary_length
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,53 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+ # A media consists of different media tracks, like video, audio, and subtitle, all combined.
12
+ class Track
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Defines the type of input. This option is mandatory.
17
+ field :type, ::String, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('type'), required: true } }
18
+ # FastPix generates a unique identifier for each track.
19
+ field :id, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('id') } }
20
+ # Track width denotes the range of widths applicable to a specific track. Currently, this setting can be modified only for video tracks
21
+ field :width, T.nilable(::Float), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('width') } }
22
+ # Track height denotes the range of height applicable to a specific track. Currently, this setting can be modified only for video tracks.
23
+ field :height, T.nilable(::Float), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('height') } }
24
+ # Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. If the frame rate of the input file is indeterminable, it will be indicated by a value of -1.
25
+ field :frame_rate, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('frameRate') } }
26
+ # Indicates if the track contains closed captions.
27
+ field :closed_captions, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('closedCaptions') } }
28
+
29
+ sig { params(type: ::String, id: T.nilable(::String), width: T.nilable(::Float), height: T.nilable(::Float), frame_rate: T.nilable(::String), closed_captions: T.nilable(T::Boolean)).void }
30
+ def initialize(type:, id: nil, width: nil, height: nil, frame_rate: nil, closed_captions: nil)
31
+ @type = type
32
+ @id = id
33
+ @width = width
34
+ @height = height
35
+ @frame_rate = frame_rate
36
+ @closed_captions = closed_captions
37
+ end
38
+
39
+ sig { params(other: T.untyped).returns(T::Boolean) }
40
+ def ==(other)
41
+ return false unless other.is_a? self.class
42
+ return false unless @type == other.type
43
+ return false unless @id == other.id
44
+ return false unless @width == other.width
45
+ return false unless @height == other.height
46
+ return false unless @frame_rate == other.frame_rate
47
+ return false unless @closed_captions == other.closed_captions
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,68 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module FastpixApiSDK
8
+ module Models
9
+ module Components
10
+
11
+
12
+ class VideoInput
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # Defines the type of input.
17
+ #
18
+ field :type, ::String, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('type'), required: true } }
19
+ # The url hosts the media file for FastPix, which needs to be downloaded to use further. It supports formats like MP3, MP4, MOV, MKV, or TS, and includes text tracks for subtitles/CC (SRT file/VTT file). While FastPix can handle various audio and video formats and codecs, using standard inputs can help with optimal processing speed.
20
+ #
21
+ field :url, ::String, { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('url'), required: true } }
22
+ # Start time indicates where encoding should begin within the video file. For example, if you want to encode a segment from 3 minutes (180 seconds) to 6 minutes (360 seconds) in a 10-minute (600 seconds) video, the start time is 3 minutes (180 seconds). Note: Start time is always mentioned in seconds.
23
+ #
24
+ field :start_time, T.nilable(::Float), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('startTime') } }
25
+ # End time indicates where encoding should end within the video file. For example, if you want to encode a segment from 3 minutes (180 seconds) to 6 minutes (360 seconds) in a 10-minute (600 seconds) video, the end time is 6 minutes (360 seconds). Note: End time is always mentioned in seconds.
26
+ #
27
+ field :end_time, T.nilable(::Float), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('endTime') } }
28
+ # The url of the intro video which is to be added at the start of the video.
29
+ #
30
+ field :intro_url, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('introUrl') } }
31
+ # The url of the outro video which is to be added at the end of the video.
32
+ #
33
+ field :outro_url, T.nilable(::String), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('outroUrl') } }
34
+ # The list of the startTime-endTime of the segments to be removed from the actual video.
35
+ #
36
+ field :expunge_segments, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('expungeSegments') } }
37
+ # A list of media segments to be added or processed. Each segment includes details such as the URL of the media file and instructions on where it should be inserted in the final media composition. A segment can either specify an exact timestamp (`insertAt`) or indicate that it should be added at the end (`insertAtEnd`).
38
+ field :segments, T.nilable(T::Array[T.any(Models::Components::Segment1, Models::Components::Segment2)]), { 'format_json': { 'letter_case': ::FastpixApiSDK::Utils.field_name('segments') } }
39
+
40
+ sig { params(type: ::String, url: ::String, start_time: T.nilable(::Float), end_time: T.nilable(::Float), intro_url: T.nilable(::String), outro_url: T.nilable(::String), expunge_segments: T.nilable(T::Array[::String]), segments: T.nilable(T::Array[T.any(Models::Components::Segment1, Models::Components::Segment2)])).void }
41
+ def initialize(type:, url:, start_time: nil, end_time: nil, intro_url: nil, outro_url: nil, expunge_segments: nil, segments: nil)
42
+ @type = type
43
+ @url = url
44
+ @start_time = start_time
45
+ @end_time = end_time
46
+ @intro_url = intro_url
47
+ @outro_url = outro_url
48
+ @expunge_segments = expunge_segments
49
+ @segments = segments
50
+ end
51
+
52
+ sig { params(other: T.untyped).returns(T::Boolean) }
53
+ def ==(other)
54
+ return false unless other.is_a? self.class
55
+ return false unless @type == other.type
56
+ return false unless @url == other.url
57
+ return false unless @start_time == other.start_time
58
+ return false unless @end_time == other.end_time
59
+ return false unless @intro_url == other.intro_url
60
+ return false unless @outro_url == other.outro_url
61
+ return false unless @expunge_segments == other.expunge_segments
62
+ return false unless @segments == other.segments
63
+ true
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end