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,717 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'faraday/retry'
9
+ require 'sorbet-runtime'
10
+ require_relative 'sdk_hooks/hooks'
11
+ require_relative 'utils/retries'
12
+
13
+ module FastpixApiSDK
14
+ extend T::Sig
15
+ class ManageLiveStream
16
+ extend T::Sig
17
+ attr_accessor
18
+
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+
24
+ end
25
+
26
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, String])).returns(String) }
27
+ def get_url(base_url:, url_variables: nil)
28
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
29
+
30
+ if base_url.nil?
31
+ base_url = sd_base_url
32
+ end
33
+
34
+ if url_variables.nil?
35
+ url_variables = sd_options
36
+ end
37
+
38
+ return Utils.template_url base_url, url_variables
39
+ end
40
+
41
+
42
+ sig { params(limit: T.nilable(::String), offset: T.nilable(::String), order_by: T.nilable(Models::Operations::GetAllStreamsOrderBy), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAllStreamsResponse) }
43
+ def get_all_streams(limit: nil, offset: nil, order_by: nil, timeout_ms: nil)
44
+ # get_all_streams - Get all live streams
45
+ # Retrieves a list of all live streams associated with the user's account (workspace). It provides an overview of both current and past live streams, including details like streamId, title, status, and creation time.
46
+ request = Models::Operations::GetAllStreamsRequest.new(
47
+
48
+ limit: limit,
49
+ offset: offset,
50
+ order_by: order_by
51
+ )
52
+ url, params = @sdk_configuration.get_server_details
53
+ base_url = Utils.template_url(url, params)
54
+ url = "#{base_url}/streams"
55
+ headers = {}
56
+ query_params = Utils.get_query_params(Models::Operations::GetAllStreamsRequest, request, nil)
57
+ headers['Accept'] = 'application/json'
58
+ headers['user-agent'] = @sdk_configuration.user_agent
59
+
60
+ security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
61
+
62
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
63
+ timeout ||= @sdk_configuration.timeout
64
+
65
+ connection = @sdk_configuration.client
66
+
67
+ hook_ctx = SDKHooks::HookContext.new(
68
+ config: @sdk_configuration,
69
+ base_url: base_url,
70
+ oauth2_scopes: [],
71
+ operation_id: 'get-all-streams',
72
+ security_source: @sdk_configuration.security_source
73
+ )
74
+
75
+ error = T.let(nil, T.nilable(StandardError))
76
+ http_response = T.let(nil, T.nilable(Faraday::Response))
77
+
78
+
79
+ begin
80
+ http_response = connection.get(url) do |req|
81
+ req.headers.merge!(headers)
82
+ req.options.timeout = timeout unless timeout.nil?
83
+ req.params = query_params
84
+ Utils.configure_request_security(req, security)
85
+
86
+ @sdk_configuration.hooks.before_request(
87
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
88
+ hook_ctx: hook_ctx
89
+ ),
90
+ request: req
91
+ )
92
+ end
93
+ rescue StandardError => e
94
+ error = e
95
+ ensure
96
+ if http_response.nil? || Utils.error_status?(http_response.status)
97
+ http_response = @sdk_configuration.hooks.after_error(
98
+ error: error,
99
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
100
+ hook_ctx: hook_ctx
101
+ ),
102
+ response: http_response
103
+ )
104
+ else
105
+ http_response = @sdk_configuration.hooks.after_success(
106
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
107
+ hook_ctx: hook_ctx
108
+ ),
109
+ response: http_response
110
+ )
111
+ end
112
+
113
+ if http_response.nil?
114
+ raise error if !error.nil?
115
+ raise 'no response'
116
+ end
117
+ end
118
+
119
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
120
+ if Utils.match_status_code(http_response.status, ['200'])
121
+ if Utils.match_content_type(content_type, 'application/json')
122
+ http_response = @sdk_configuration.hooks.after_success(
123
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
124
+ hook_ctx: hook_ctx
125
+ ),
126
+ response: http_response
127
+ )
128
+ response_data = http_response.env.response_body
129
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::GetStreamsResponse)
130
+ response = Models::Operations::GetAllStreamsResponse.new(
131
+ status_code: http_response.status,
132
+ content_type: content_type,
133
+ raw_response: http_response,
134
+ get_streams_response: obj
135
+ )
136
+
137
+ return response
138
+ else
139
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
140
+ end
141
+ elsif Utils.match_status_code(http_response.status, ['401'])
142
+ if Utils.match_content_type(content_type, 'application/json')
143
+ http_response = @sdk_configuration.hooks.after_success(
144
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
145
+ hook_ctx: hook_ctx
146
+ ),
147
+ response: http_response
148
+ )
149
+ response_data = http_response.env.response_body
150
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedError)
151
+ throw obj
152
+ else
153
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
154
+ end
155
+ elsif Utils.match_status_code(http_response.status, ['403'])
156
+ if Utils.match_content_type(content_type, 'application/json')
157
+ http_response = @sdk_configuration.hooks.after_success(
158
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
159
+ hook_ctx: hook_ctx
160
+ ),
161
+ response: http_response
162
+ )
163
+ response_data = http_response.env.response_body
164
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InvalidPermissionError)
165
+ throw obj
166
+ else
167
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
168
+ end
169
+ elsif Utils.match_status_code(http_response.status, ['422'])
170
+ if Utils.match_content_type(content_type, 'application/json')
171
+ http_response = @sdk_configuration.hooks.after_success(
172
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
173
+ hook_ctx: hook_ctx
174
+ ),
175
+ response: http_response
176
+ )
177
+ response_data = http_response.env.response_body
178
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ValidationErrorResponse)
179
+ throw obj
180
+ else
181
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
182
+ end
183
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
184
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
185
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
186
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
187
+ else
188
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
189
+
190
+ end
191
+ end
192
+
193
+
194
+ sig { params(stream_id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetLiveStreamByIdResponse) }
195
+ def get_live_stream_by_id(stream_id:, timeout_ms: nil)
196
+ # get_live_stream_by_id - Get stream by ID
197
+ # This endpoint retrieves detailed information about a specific live stream by its unique streamId. It includes data such as the stream's status (idle, preparing, active, disabled), metadata (title, description), and more.
198
+ #
199
+ # **Practical example:** Suppose a news agency is broadcasting a live event and wants to track the configurations set for the live stream while also checking the stream's status.
200
+ request = Models::Operations::GetLiveStreamByIdRequest.new(
201
+
202
+ stream_id: stream_id
203
+ )
204
+ url, params = @sdk_configuration.get_server_details
205
+ base_url = Utils.template_url(url, params)
206
+ url = Utils.generate_url(
207
+ Models::Operations::GetLiveStreamByIdRequest,
208
+ base_url,
209
+ '/streams/{streamId}',
210
+ request
211
+ )
212
+ headers = {}
213
+ headers['Accept'] = 'application/json'
214
+ headers['user-agent'] = @sdk_configuration.user_agent
215
+
216
+ security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
217
+
218
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
219
+ timeout ||= @sdk_configuration.timeout
220
+
221
+ connection = @sdk_configuration.client
222
+
223
+ hook_ctx = SDKHooks::HookContext.new(
224
+ config: @sdk_configuration,
225
+ base_url: base_url,
226
+ oauth2_scopes: [],
227
+ operation_id: 'get-live-stream-by-id',
228
+ security_source: @sdk_configuration.security_source
229
+ )
230
+
231
+ error = T.let(nil, T.nilable(StandardError))
232
+ http_response = T.let(nil, T.nilable(Faraday::Response))
233
+
234
+
235
+ begin
236
+ http_response = connection.get(url) do |req|
237
+ req.headers.merge!(headers)
238
+ req.options.timeout = timeout unless timeout.nil?
239
+ Utils.configure_request_security(req, security)
240
+
241
+ @sdk_configuration.hooks.before_request(
242
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
243
+ hook_ctx: hook_ctx
244
+ ),
245
+ request: req
246
+ )
247
+ end
248
+ rescue StandardError => e
249
+ error = e
250
+ ensure
251
+ if http_response.nil? || Utils.error_status?(http_response.status)
252
+ http_response = @sdk_configuration.hooks.after_error(
253
+ error: error,
254
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
255
+ hook_ctx: hook_ctx
256
+ ),
257
+ response: http_response
258
+ )
259
+ else
260
+ http_response = @sdk_configuration.hooks.after_success(
261
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
262
+ hook_ctx: hook_ctx
263
+ ),
264
+ response: http_response
265
+ )
266
+ end
267
+
268
+ if http_response.nil?
269
+ raise error if !error.nil?
270
+ raise 'no response'
271
+ end
272
+ end
273
+
274
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
275
+ if Utils.match_status_code(http_response.status, ['200'])
276
+ if Utils.match_content_type(content_type, 'application/json')
277
+ http_response = @sdk_configuration.hooks.after_success(
278
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
279
+ hook_ctx: hook_ctx
280
+ ),
281
+ response: http_response
282
+ )
283
+ response_data = http_response.env.response_body
284
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::LivestreamgetResponse)
285
+ response = Models::Operations::GetLiveStreamByIdResponse.new(
286
+ status_code: http_response.status,
287
+ content_type: content_type,
288
+ raw_response: http_response,
289
+ livestreamget_response: obj
290
+ )
291
+
292
+ return response
293
+ else
294
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
295
+ end
296
+ elsif Utils.match_status_code(http_response.status, ['401'])
297
+ if Utils.match_content_type(content_type, 'application/json')
298
+ http_response = @sdk_configuration.hooks.after_success(
299
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
300
+ hook_ctx: hook_ctx
301
+ ),
302
+ response: http_response
303
+ )
304
+ response_data = http_response.env.response_body
305
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedError)
306
+ throw obj
307
+ else
308
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
309
+ end
310
+ elsif Utils.match_status_code(http_response.status, ['403'])
311
+ if Utils.match_content_type(content_type, 'application/json')
312
+ http_response = @sdk_configuration.hooks.after_success(
313
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
314
+ hook_ctx: hook_ctx
315
+ ),
316
+ response: http_response
317
+ )
318
+ response_data = http_response.env.response_body
319
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InvalidPermissionError)
320
+ throw obj
321
+ else
322
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
323
+ end
324
+ elsif Utils.match_status_code(http_response.status, ['404'])
325
+ if Utils.match_content_type(content_type, 'application/json')
326
+ http_response = @sdk_configuration.hooks.after_success(
327
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
328
+ hook_ctx: hook_ctx
329
+ ),
330
+ response: http_response
331
+ )
332
+ response_data = http_response.env.response_body
333
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
334
+ throw obj
335
+ else
336
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
337
+ end
338
+ elsif Utils.match_status_code(http_response.status, ['422'])
339
+ if Utils.match_content_type(content_type, 'application/json')
340
+ http_response = @sdk_configuration.hooks.after_success(
341
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
342
+ hook_ctx: hook_ctx
343
+ ),
344
+ response: http_response
345
+ )
346
+ response_data = http_response.env.response_body
347
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ValidationErrorResponse)
348
+ throw obj
349
+ else
350
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
351
+ end
352
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
353
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
354
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
355
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
356
+ else
357
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
358
+
359
+ end
360
+ end
361
+
362
+
363
+ sig { params(stream_id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::DeleteLiveStreamResponse) }
364
+ def delete_live_stream(stream_id:, timeout_ms: nil)
365
+ # delete_live_stream - Delete a stream
366
+ # Permanently removes a specified live stream from the workspace. If the stream is still active, the encoder will be disconnected, and the ingestion will stop. This action cannot be undone, and any future playback attempts will fail.
367
+ #
368
+ # By providing the streamId, the API will terminate any active connections to the stream and remove it from the list of available live streams. You can further look for video.live_stream.deleted webhook to notify your system about the status.
369
+ #
370
+ # **Example:** For an online concert platform, a trial stream was mistakenly made public. The event manager deletes the stream before the concert begins to avoid confusion among viewers.
371
+ request = Models::Operations::DeleteLiveStreamRequest.new(
372
+
373
+ stream_id: stream_id
374
+ )
375
+ url, params = @sdk_configuration.get_server_details
376
+ base_url = Utils.template_url(url, params)
377
+ url = Utils.generate_url(
378
+ Models::Operations::DeleteLiveStreamRequest,
379
+ base_url,
380
+ '/streams/{streamId}',
381
+ request
382
+ )
383
+ headers = {}
384
+ headers['Accept'] = 'application/json'
385
+ headers['user-agent'] = @sdk_configuration.user_agent
386
+
387
+ security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
388
+
389
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
390
+ timeout ||= @sdk_configuration.timeout
391
+
392
+ connection = @sdk_configuration.client
393
+
394
+ hook_ctx = SDKHooks::HookContext.new(
395
+ config: @sdk_configuration,
396
+ base_url: base_url,
397
+ oauth2_scopes: [],
398
+ operation_id: 'delete-live-stream',
399
+ security_source: @sdk_configuration.security_source
400
+ )
401
+
402
+ error = T.let(nil, T.nilable(StandardError))
403
+ http_response = T.let(nil, T.nilable(Faraday::Response))
404
+
405
+
406
+ begin
407
+ http_response = connection.delete(url) do |req|
408
+ req.headers.merge!(headers)
409
+ req.options.timeout = timeout unless timeout.nil?
410
+ Utils.configure_request_security(req, security)
411
+
412
+ @sdk_configuration.hooks.before_request(
413
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
414
+ hook_ctx: hook_ctx
415
+ ),
416
+ request: req
417
+ )
418
+ end
419
+ rescue StandardError => e
420
+ error = e
421
+ ensure
422
+ if http_response.nil? || Utils.error_status?(http_response.status)
423
+ http_response = @sdk_configuration.hooks.after_error(
424
+ error: error,
425
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
426
+ hook_ctx: hook_ctx
427
+ ),
428
+ response: http_response
429
+ )
430
+ else
431
+ http_response = @sdk_configuration.hooks.after_success(
432
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
433
+ hook_ctx: hook_ctx
434
+ ),
435
+ response: http_response
436
+ )
437
+ end
438
+
439
+ if http_response.nil?
440
+ raise error if !error.nil?
441
+ raise 'no response'
442
+ end
443
+ end
444
+
445
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
446
+ if Utils.match_status_code(http_response.status, ['200'])
447
+ if Utils.match_content_type(content_type, 'application/json')
448
+ http_response = @sdk_configuration.hooks.after_success(
449
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
450
+ hook_ctx: hook_ctx
451
+ ),
452
+ response: http_response
453
+ )
454
+ response_data = http_response.env.response_body
455
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::LiveStreamDeleteResponse)
456
+ response = Models::Operations::DeleteLiveStreamResponse.new(
457
+ status_code: http_response.status,
458
+ content_type: content_type,
459
+ raw_response: http_response,
460
+ live_stream_delete_response: obj
461
+ )
462
+
463
+ return response
464
+ else
465
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
466
+ end
467
+ elsif Utils.match_status_code(http_response.status, ['401'])
468
+ if Utils.match_content_type(content_type, 'application/json')
469
+ http_response = @sdk_configuration.hooks.after_success(
470
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
471
+ hook_ctx: hook_ctx
472
+ ),
473
+ response: http_response
474
+ )
475
+ response_data = http_response.env.response_body
476
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedError)
477
+ throw obj
478
+ else
479
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
480
+ end
481
+ elsif Utils.match_status_code(http_response.status, ['403'])
482
+ if Utils.match_content_type(content_type, 'application/json')
483
+ http_response = @sdk_configuration.hooks.after_success(
484
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
485
+ hook_ctx: hook_ctx
486
+ ),
487
+ response: http_response
488
+ )
489
+ response_data = http_response.env.response_body
490
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InvalidPermissionError)
491
+ throw obj
492
+ else
493
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
494
+ end
495
+ elsif Utils.match_status_code(http_response.status, ['404'])
496
+ if Utils.match_content_type(content_type, 'application/json')
497
+ http_response = @sdk_configuration.hooks.after_success(
498
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
499
+ hook_ctx: hook_ctx
500
+ ),
501
+ response: http_response
502
+ )
503
+ response_data = http_response.env.response_body
504
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
505
+ throw obj
506
+ else
507
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
508
+ end
509
+ elsif Utils.match_status_code(http_response.status, ['422'])
510
+ if Utils.match_content_type(content_type, 'application/json')
511
+ http_response = @sdk_configuration.hooks.after_success(
512
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
513
+ hook_ctx: hook_ctx
514
+ ),
515
+ response: http_response
516
+ )
517
+ response_data = http_response.env.response_body
518
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ValidationErrorResponse)
519
+ throw obj
520
+ else
521
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
522
+ end
523
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
524
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
525
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
526
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
527
+ else
528
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
529
+
530
+ end
531
+ end
532
+
533
+
534
+ sig { params(stream_id: ::String, patch_live_stream_request: T.nilable(Models::Components::PatchLiveStreamRequest), timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateLiveStreamResponse) }
535
+ def update_live_stream(stream_id:, patch_live_stream_request: nil, timeout_ms: nil)
536
+ # update_live_stream - Update a stream
537
+ # This endpoint allows users to modify the parameters of an existing live stream, such as its metadata (title, description) or the reconnect window. It's useful for making changes to a stream that has already been created but not yet ended. Once the live stream is disabled, you cannot update a stream.
538
+ #
539
+ #
540
+ # The updated stream parameters and the streamId needs to be shared in the request, and FastPix will return the updated stream details. Once updated, video.live_stream.updated webhook event notifies your system.
541
+ #
542
+ # **Practical example:** A host realizes they need to extend the reconnect window for their live stream in case they lose connection temporarily during the event. Or suppose during a multi-day online conference, the event organizers need to update the stream title to reflect the next day's session while keeping the same stream ID for continuity.
543
+ request = Models::Operations::UpdateLiveStreamRequest.new(
544
+
545
+ stream_id: stream_id,
546
+ patch_live_stream_request: patch_live_stream_request
547
+ )
548
+ url, params = @sdk_configuration.get_server_details
549
+ base_url = Utils.template_url(url, params)
550
+ url = Utils.generate_url(
551
+ Models::Operations::UpdateLiveStreamRequest,
552
+ base_url,
553
+ '/streams/{streamId}',
554
+ request
555
+ )
556
+ headers = {}
557
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :patch_live_stream_request, :json)
558
+ headers['content-type'] = req_content_type
559
+
560
+ if form
561
+ body = Utils.encode_form(form)
562
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
563
+ body = URI.encode_www_form(data)
564
+ else
565
+ body = data
566
+ end
567
+ headers['Accept'] = 'application/json'
568
+ headers['user-agent'] = @sdk_configuration.user_agent
569
+
570
+ security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
571
+
572
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
573
+ timeout ||= @sdk_configuration.timeout
574
+
575
+ connection = @sdk_configuration.client
576
+
577
+ hook_ctx = SDKHooks::HookContext.new(
578
+ config: @sdk_configuration,
579
+ base_url: base_url,
580
+ oauth2_scopes: [],
581
+ operation_id: 'update-live-stream',
582
+ security_source: @sdk_configuration.security_source
583
+ )
584
+
585
+ error = T.let(nil, T.nilable(StandardError))
586
+ http_response = T.let(nil, T.nilable(Faraday::Response))
587
+
588
+
589
+ begin
590
+ http_response = connection.patch(url) do |req|
591
+ req.body = body
592
+ req.headers.merge!(headers)
593
+ req.options.timeout = timeout unless timeout.nil?
594
+ Utils.configure_request_security(req, security)
595
+
596
+ @sdk_configuration.hooks.before_request(
597
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
598
+ hook_ctx: hook_ctx
599
+ ),
600
+ request: req
601
+ )
602
+ end
603
+ rescue StandardError => e
604
+ error = e
605
+ ensure
606
+ if http_response.nil? || Utils.error_status?(http_response.status)
607
+ http_response = @sdk_configuration.hooks.after_error(
608
+ error: error,
609
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
610
+ hook_ctx: hook_ctx
611
+ ),
612
+ response: http_response
613
+ )
614
+ else
615
+ http_response = @sdk_configuration.hooks.after_success(
616
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
617
+ hook_ctx: hook_ctx
618
+ ),
619
+ response: http_response
620
+ )
621
+ end
622
+
623
+ if http_response.nil?
624
+ raise error if !error.nil?
625
+ raise 'no response'
626
+ end
627
+ end
628
+
629
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
630
+ if Utils.match_status_code(http_response.status, ['200'])
631
+ if Utils.match_content_type(content_type, 'application/json')
632
+ http_response = @sdk_configuration.hooks.after_success(
633
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
634
+ hook_ctx: hook_ctx
635
+ ),
636
+ response: http_response
637
+ )
638
+ response_data = http_response.env.response_body
639
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::PatchResponseDTO)
640
+ response = Models::Operations::UpdateLiveStreamResponse.new(
641
+ status_code: http_response.status,
642
+ content_type: content_type,
643
+ raw_response: http_response,
644
+ patch_response_dto: obj
645
+ )
646
+
647
+ return response
648
+ else
649
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
650
+ end
651
+ elsif Utils.match_status_code(http_response.status, ['401'])
652
+ if Utils.match_content_type(content_type, 'application/json')
653
+ http_response = @sdk_configuration.hooks.after_success(
654
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
655
+ hook_ctx: hook_ctx
656
+ ),
657
+ response: http_response
658
+ )
659
+ response_data = http_response.env.response_body
660
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedError)
661
+ throw obj
662
+ else
663
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
664
+ end
665
+ elsif Utils.match_status_code(http_response.status, ['403'])
666
+ if Utils.match_content_type(content_type, 'application/json')
667
+ http_response = @sdk_configuration.hooks.after_success(
668
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
669
+ hook_ctx: hook_ctx
670
+ ),
671
+ response: http_response
672
+ )
673
+ response_data = http_response.env.response_body
674
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InvalidPermissionError)
675
+ throw obj
676
+ else
677
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
678
+ end
679
+ elsif Utils.match_status_code(http_response.status, ['404'])
680
+ if Utils.match_content_type(content_type, 'application/json')
681
+ http_response = @sdk_configuration.hooks.after_success(
682
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
683
+ hook_ctx: hook_ctx
684
+ ),
685
+ response: http_response
686
+ )
687
+ response_data = http_response.env.response_body
688
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
689
+ throw obj
690
+ else
691
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
692
+ end
693
+ elsif Utils.match_status_code(http_response.status, ['422'])
694
+ if Utils.match_content_type(content_type, 'application/json')
695
+ http_response = @sdk_configuration.hooks.after_success(
696
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
697
+ hook_ctx: hook_ctx
698
+ ),
699
+ response: http_response
700
+ )
701
+ response_data = http_response.env.response_body
702
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ValidationErrorResponse)
703
+ throw obj
704
+ else
705
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
706
+ end
707
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
708
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
709
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
710
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
711
+ else
712
+ raise ::FastpixApiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
713
+
714
+ end
715
+ end
716
+ end
717
+ end