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,95 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday/retry'
7
+ require 'sorbet-runtime'
8
+
9
+ module FastpixApiSDK
10
+ module Utils
11
+ class BackoffStrategy
12
+ extend T::Sig
13
+
14
+ sig { returns(T.nilable(::Float)) }
15
+ attr_accessor :exponent
16
+
17
+ sig { returns(T.nilable(::Integer)) }
18
+ attr_accessor :initial_interval
19
+
20
+ sig { returns(T.nilable(::Integer)) }
21
+ attr_accessor :max_elapsed_time
22
+
23
+ sig { returns(T.nilable(::Integer)) }
24
+ attr_accessor :max_interval
25
+
26
+ sig do
27
+ params(
28
+ exponent: T.nilable(::Float),
29
+ initial_interval: T.nilable(::Integer),
30
+ max_elapsed_time: T.nilable(::Integer),
31
+ max_interval: T.nilable(::Integer)
32
+ ).void
33
+ end
34
+ def initialize(exponent: nil, initial_interval: nil, max_elapsed_time: nil, max_interval: nil)
35
+ @exponent = T.let(exponent, T.nilable(::Float))
36
+ @initial_interval = T.let(initial_interval, T.nilable(::Integer))
37
+ @max_elapsed_time = T.let(max_elapsed_time, T.nilable(::Integer))
38
+ @max_interval = T.let(max_interval, T.nilable(::Integer))
39
+ end
40
+ end
41
+
42
+ class RetryConfig
43
+ extend T::Sig
44
+
45
+ sig { returns(T.nilable(BackoffStrategy)) }
46
+ attr_accessor :backoff
47
+
48
+ sig { returns(T.nilable(T::Boolean)) }
49
+ attr_accessor :retry_connection_errors
50
+
51
+ sig { returns(T.nilable(::String)) }
52
+ attr_accessor :strategy
53
+
54
+ sig do
55
+ params(
56
+ backoff: T.nilable(BackoffStrategy),
57
+ retry_connection_errors: T.nilable(T::Boolean),
58
+ strategy: T.nilable(::String)
59
+ ).void
60
+ end
61
+ def initialize(backoff: nil, retry_connection_errors: nil, strategy: nil)
62
+ @backoff = T.let(backoff, T.nilable(BackoffStrategy))
63
+ @retry_connection_errors = T.let(retry_connection_errors, T.nilable(T::Boolean))
64
+ @strategy = T.let(strategy, T.nilable(::String))
65
+ end
66
+
67
+ sig { params(initial_time: ::Time).returns(::Hash) }
68
+ def to_faraday_retry_options(initial_time:)
69
+ retry_options = {
70
+ # must overwrite default max of 2 retries and it must be positive
71
+ max: 1_000_000_000,
72
+ # ensure all HTTP methods are retried, especially via retry_if
73
+ methods: [],
74
+ }
75
+
76
+ if @retry_connection_errors
77
+ retry_options[:exceptions] = Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Faraday::ConnectionFailed]
78
+ end
79
+
80
+ if @strategy == 'backoff' && @backoff
81
+ retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
82
+ retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
83
+ retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
84
+
85
+ unless @backoff.max_elapsed_time.nil?
86
+ stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
87
+ retry_options[:retry_if] = ->(_env, _exc) { Time.now < stop_time }
88
+ end
89
+ end
90
+
91
+ retry_options
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,133 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'cgi'
7
+ require 'date'
8
+ require 'sorbet-runtime'
9
+ require 'base64'
10
+
11
+ module FastpixApiSDK
12
+ module Utils
13
+ extend T::Sig
14
+
15
+ sig { params(req: Faraday::Request, security: Object).void }
16
+ def self.configure_request_security(req, security)
17
+ return if security.nil?
18
+ sec_fields = security.fields
19
+ sec_fields.each do |sec_field|
20
+ value = security.send(sec_field.name)
21
+ next if value.nil?
22
+
23
+ metadata = sec_field.metadata[:security]
24
+ next if metadata.nil?
25
+
26
+ _parse_security_option(req, value) if metadata[:option]
27
+
28
+ if metadata[:scheme]
29
+ # Special case for basic auth which could be a flattened struct
30
+ if metadata[:sub_type] == 'basic' && !value.respond_to?(:fields)
31
+ _parse_security_scheme(req, metadata, security)
32
+ else
33
+ _parse_security_scheme(req, metadata, value)
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ sig { params(req: Faraday::Request, option: Object).void }
40
+ def self._parse_security_option(req, option)
41
+ opt_fields = option.fields
42
+ opt_fields.each do |opt_field|
43
+ metadata = opt_field.metadata[:security]
44
+ next if metadata.nil? || !metadata.include?(:scheme)
45
+
46
+ _parse_security_scheme(req, metadata, option.send(opt_field.name))
47
+ end
48
+ end
49
+
50
+ sig { params(req: Faraday::Request, scheme_metadata: T::Hash[Symbol, String], scheme: Object).void }
51
+ def self._parse_security_scheme(req, scheme_metadata, scheme)
52
+ scheme_type = scheme_metadata[:type]
53
+ sub_type = scheme_metadata[:sub_type]
54
+
55
+ if scheme.respond_to? :fields
56
+ if scheme_type == 'http' && sub_type == 'basic'
57
+ _parse_basic_auth_scheme(req, scheme)
58
+ return
59
+ end
60
+
61
+ scheme_fields = scheme.fields
62
+ scheme_fields.each do |field|
63
+ metadata = field.metadata[:security]
64
+ next if metadata.nil? || metadata[:field_name].nil?
65
+
66
+ value = scheme.send(field.name)
67
+ _parse_security_scheme_value(req, scheme_metadata, metadata, value)
68
+ end
69
+ else
70
+ _parse_security_scheme_value(req, scheme_metadata, scheme_metadata, scheme)
71
+ end
72
+ end
73
+
74
+ sig do
75
+ params(req: Faraday::Request, scheme_metadata: T::Hash[Symbol, String],
76
+ security_metadata: T::Hash[Symbol, String], value: Object).void
77
+ end
78
+ def self._parse_security_scheme_value(req, scheme_metadata, security_metadata, value)
79
+ scheme_type = scheme_metadata[:type]
80
+ sub_type = scheme_metadata[:sub_type]
81
+
82
+ header_name = security_metadata[:field_name]
83
+
84
+ case scheme_type
85
+ when 'apiKey'
86
+ case sub_type
87
+ when 'header'
88
+ req.headers[header_name] = value
89
+ when 'query'
90
+ req.params[header_name] = value
91
+ when 'cookie'
92
+ req.cookies[header_name] = value
93
+ else
94
+ raise StandardError, 'not supported'
95
+ end
96
+ when 'openIdConnect'
97
+ req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
98
+ when 'oauth2'
99
+ req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
100
+ when 'http'
101
+ if sub_type == 'bearer'
102
+ req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
103
+ elsif sub_type != 'custom'
104
+ raise StandardError, 'not supported'
105
+ end
106
+ else
107
+ raise StandardError, 'not supported'
108
+ end
109
+ end
110
+
111
+ sig { params(req: Faraday::Request, scheme: Object).void }
112
+ def self._parse_basic_auth_scheme(req, scheme)
113
+ username, password = ''
114
+
115
+ scheme_fields = scheme.fields
116
+ scheme_fields.each do |scheme_field|
117
+ metadata = scheme_field.metadata[:security]
118
+ next if metadata.nil? || !metadata.include?(:field_name)
119
+
120
+ field_name = metadata[:field_name]
121
+ value = scheme.send(scheme_field.name)
122
+
123
+ username = value if field_name == 'username'
124
+ password = value if field_name == 'password'
125
+ end
126
+
127
+ data = "#{username}:#{password}".encode
128
+ # Use strict_encode, because encode adds newlines after 60 chars
129
+ # https://docs.ruby-lang.org/en/3.0/Base64.html#method-i-encode64
130
+ req.headers['Authorization'] = "Basic #{Base64.strict_encode64(data)}"
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,102 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday/retry'
7
+ require 'sorbet-runtime'
8
+
9
+ module FastpixApiSDK
10
+ module Utils
11
+ sig { params(clazz: Class, server_url: String, path: String, path_params: Object, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(String) }
12
+ def self.generate_url(clazz, server_url, path, path_params, gbls = nil)
13
+ clazz.fields.each do |f|
14
+ param_metadata = f.metadata[:path_param]
15
+ next if param_metadata.nil?
16
+
17
+ if param_metadata.fetch(:style, 'simple') == 'simple'
18
+ param = path_params.send(f.name) if !path_params.nil?
19
+ param = _populate_from_globals(f.name, param, 'pathParam', gbls)
20
+ end
21
+
22
+ f_name = param_metadata.fetch(:field_name, f.name)
23
+ serialization = param_metadata.fetch(:serialization, '')
24
+ if serialization != ''
25
+ serialized_params = _get_serialized_params(param_metadata, f_name, param)
26
+ serialized_params.each do |k, v|
27
+ path = path.sub("{#{k}}", v)
28
+ end
29
+ else
30
+ if param.is_a? Array
31
+ pp_vals = []
32
+ param.each do |pp_val|
33
+ pp_vals.append(pp_val.to_s)
34
+ end
35
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
36
+ elsif param.is_a? Hash
37
+ pp_vals = []
38
+ param.each do |pp_key, pp_val|
39
+ value = val_to_string(pp_val)
40
+
41
+ if param_metadata.fetch(:explode, false)
42
+ pp_vals.append("#{pp_key}=#{value}")
43
+ else
44
+ pp_vals.append("#{pp_key},#{value}")
45
+ end
46
+ end
47
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
48
+ elsif !(param.is_a?(String) || param.is_a?(Integer) ||
49
+ param.is_a?(Float) || param.is_a?(Complex) || param.is_a?(TrueClass) ||
50
+ param.is_a?(FalseClass))
51
+ pp_vals = []
52
+ attrs = param.fields.filter { |field| field.name && param.respond_to?(field.name.to_sym) }.map(&:name)
53
+ attrs.each do |attr|
54
+ field = param.field(attr)
55
+
56
+ param_value_metadata = field.metadata[:path_param]
57
+
58
+ next if param_value_metadata.nil?
59
+
60
+ parm_name = param_value_metadata.fetch(:field_name, f.name)
61
+
62
+ param_field_val = param.send(attr)
63
+
64
+ if param_field_val.is_a? T::Enum
65
+ param_field_val = param_field_val.serialize
66
+ elsif param_field_val.is_a? DateTime
67
+ param_field_val = param_field_val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
68
+ end
69
+ if !field.nil? && T::Utils::Nilable.is_union_with_nilclass(field.type) && param_field_val.nil?
70
+ next
71
+ elsif param_metadata.fetch(:explode, false)
72
+ pp_vals.append("#{parm_name}=#{param_field_val}")
73
+ else
74
+ pp_vals.append("#{parm_name},#{param_field_val}")
75
+ end
76
+ end
77
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
78
+ else
79
+ path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", param.to_s)
80
+ end
81
+ end
82
+ end
83
+
84
+ server_url.delete_suffix('/') + path
85
+ end
86
+
87
+ sig { params(url_with_params: String, params: T::Hash[Symbol, String]).returns(String) }
88
+ def self.template_url(url_with_params, params)
89
+ params.each do |key, value|
90
+ if value.respond_to? :serialize
91
+ val_str = value.serialize
92
+ else
93
+ val_str = value
94
+ end
95
+ url_with_params = url_with_params.gsub("{#{key}}", val_str)
96
+ end
97
+
98
+ url_with_params
99
+ end
100
+
101
+ end
102
+ end
@@ -0,0 +1,186 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'cgi'
7
+ require 'date'
8
+ require 'sorbet-runtime'
9
+ require 'base64'
10
+ require 'stringio'
11
+
12
+ module FastpixApiSDK
13
+ module Utils
14
+ extend T::Sig
15
+
16
+ sig { params(val: Object, primitives: T::Boolean).returns(Object) }
17
+ def self.val_to_string(val, primitives: true)
18
+ if val.is_a? T::Enum
19
+ val.serialize
20
+ elsif val.is_a? DateTime
21
+ val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
22
+ elsif primitives
23
+ val.to_s
24
+ else
25
+ val
26
+ end
27
+ end
28
+
29
+ sig do
30
+ params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
31
+ .returns(T::Hash[Symbol, T::Array[String]])
32
+ end
33
+ def self._get_serialized_params(metadata, field_name, obj)
34
+ params = {}
35
+
36
+ serialization = metadata.fetch(:serialization, '')
37
+ params[metadata.fetch(:field_name, field_name)] = obj.to_json if serialization == 'json'
38
+
39
+ params
40
+ end
41
+
42
+
43
+ sig { params(status: Integer).returns(T::Boolean) }
44
+ def self.error_status?(status)
45
+ status_major = status / 100
46
+ return true if status_major == 4
47
+ return true if status_major == 5
48
+
49
+ false
50
+ end
51
+
52
+ sig { params(content_type: String, pattern: String).returns(T::Boolean) }
53
+ def self.match_content_type(content_type, pattern)
54
+ return true if content_type == pattern || ['*', '*/*'].include?(pattern)
55
+
56
+ pieces = content_type.split(';')
57
+ pieces.each do |piece|
58
+ return true if pattern == piece.strip
59
+ end
60
+
61
+ false
62
+ end
63
+
64
+ sig { params(status_code: Integer, status_codes: T::Array[String]).returns(T::Boolean) }
65
+ def self.match_status_code(status_code, status_codes)
66
+ return true if status_codes.include? 'default'
67
+ status_code = status_code.to_s
68
+ status_codes.each do |code|
69
+ return true if code == status_code
70
+ return true if code.downcase.end_with?('xx') && status_code[0] == code[0]
71
+ end
72
+ false
73
+ end
74
+
75
+ sig { params(optional: T::Boolean).returns(T.proc.params(s: String).returns(DateTime)) }
76
+ def self.datetime_from_iso_format(optional)
77
+ lambda do |s|
78
+ return nil if optional && s.nil?
79
+
80
+ return DateTime.strptime(s, '%Y-%m-%dT%H:%M:%S.%NZ')
81
+ end
82
+ end
83
+
84
+ sig { params(optional: T::Boolean).returns(T.proc.params(s: String).returns(Date)) }
85
+ def self.date_from_iso_format(optional)
86
+ lambda do |s|
87
+ return nil if optional && s.nil?
88
+
89
+ return Date.iso8601(s)
90
+ end
91
+ end
92
+
93
+ sig do
94
+ params(enum_type: T.class_of(T::Enum), optional: T::Boolean)
95
+ .returns(T.proc.params(s: String).returns(T::Enum))
96
+ end
97
+ def self.enum_from_string(enum_type, optional)
98
+ lambda do |s|
99
+ return nil if optional && s.nil?
100
+
101
+ return enum_type.deserialize(s)
102
+ end
103
+ end
104
+
105
+ sig { params(name: String).returns(T.proc.returns(String)) }
106
+ def self.field_name(name)
107
+ proc { |_, field_name = name| field_name }
108
+ end
109
+
110
+
111
+ sig { params(field: ::Crystalline::MetadataFields::Field, data_class: Object).returns(Object) }
112
+ def self.parse_field(field, data_class)
113
+ field_metadata = field.metadata[:metadata_string]
114
+ return nil if field_metadata.nil?
115
+
116
+ field_value = data_class.send(field.name)
117
+ return nil if field_value.nil?
118
+
119
+ field_value
120
+ end
121
+
122
+ sig do
123
+ params(form: T::Array[T::Array[T.any(String, T::Array[T.nilable(String)])]])
124
+ .returns(T::Hash[Symbol, Object])
125
+ end
126
+ def self.encode_form(form)
127
+ payload = {}
128
+ form.each do |field_name, field|
129
+ if field.length == 2
130
+ if field[0].nil?
131
+ # Handle multiple values for the same field name (arrays)
132
+ if payload.key?(field_name)
133
+ # Convert to array if not already
134
+ unless payload[field_name].is_a?(Array)
135
+ payload[field_name] = [payload[field_name]]
136
+ end
137
+ payload[field_name] << field[1]
138
+ else
139
+ payload[field_name] = field[1]
140
+ end
141
+ else
142
+ # Handle file uploads
143
+ file_part = Faraday::Multipart::FilePart.new(
144
+ StringIO.new(field[1]),
145
+ 'application/octet-stream',
146
+ field[0]
147
+ )
148
+
149
+ # Handle multiple files for the same field name (arrays)
150
+ if payload.key?(field_name)
151
+ unless payload[field_name].is_a?(Array)
152
+ payload[field_name] = [payload[field_name]]
153
+ end
154
+ payload[field_name] << file_part
155
+ else
156
+ payload[field_name] = file_part
157
+ end
158
+ end
159
+ elsif field.length == 3
160
+ param_part = Faraday::Multipart::ParamPart.new(field[1].to_json, field[2])
161
+
162
+ # Handle multiple values for the same field name (arrays)
163
+ if payload.key?(field_name)
164
+ unless payload[field_name].is_a?(Array)
165
+ payload[field_name] = [payload[field_name]]
166
+ end
167
+ payload[field_name] << param_part
168
+ else
169
+ payload[field_name] = param_part
170
+ end
171
+ end
172
+ end
173
+ payload
174
+ end
175
+
176
+ sig { params(param_name: Symbol, value: Object, param_type: String, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(Object) }
177
+ def self._populate_from_globals(param_name, value, param_type, gbls)
178
+ if value.nil? && !gbls.nil?
179
+ global_value = gbls.dig(:parameters, param_type.to_sym, param_name.to_sym)
180
+ value = global_value if !global_value.nil?
181
+ end
182
+ value
183
+ end
184
+
185
+ end
186
+ end
data/lib/fastpixapi.rb ADDED
@@ -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
+ module FastpixApiSDK
7
+ autoload :SDK, 'fastpix_api_sdk/sdk'
8
+ autoload :StartLiveStream, 'fastpix_api_sdk/start_live_stream'
9
+ autoload :ManageLiveStream, 'fastpix_api_sdk/manage_live_stream'
10
+ autoload :Playback, 'fastpix_api_sdk/playback'
11
+ autoload :SimulcastStream, 'fastpix_api_sdk/simulcast_stream'
12
+ autoload :InputVideo, 'fastpix_api_sdk/input_video'
13
+ autoload :ManageVideos, 'fastpix_api_sdk/manage_videos'
14
+ module Models
15
+ autoload :Components, 'fastpix_api_sdk/models/components'
16
+ autoload :Operations, 'fastpix_api_sdk/models/operations'
17
+ autoload :Errors, 'fastpix_api_sdk/models/errors'
18
+ end
19
+ end
20
+
21
+ require_relative 'fastpix_api_sdk/utils/utils'
22
+ require_relative 'fastpix_api_sdk/utils/request_bodies'
23
+ require_relative 'fastpix_api_sdk/utils/query_params'
24
+ require_relative 'fastpix_api_sdk/utils/forms'
25
+ require_relative 'fastpix_api_sdk/utils/headers'
26
+ require_relative 'fastpix_api_sdk/utils/url'
27
+ require_relative 'fastpix_api_sdk/utils/security'
28
+ require_relative 'crystalline'
29
+ require_relative 'fastpix_api_sdk/sdkconfiguration'