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.
- checksums.yaml +7 -0
- data/lib/crystalline/metadata_fields.rb +210 -0
- data/lib/crystalline/t.rb +78 -0
- data/lib/crystalline/utils.rb +95 -0
- data/lib/crystalline.rb +12 -0
- data/lib/fastpix_api_sdk/input_video.rb +454 -0
- data/lib/fastpix_api_sdk/manage_live_stream.rb +717 -0
- data/lib/fastpix_api_sdk/manage_videos.rb +960 -0
- data/lib/fastpix_api_sdk/models/components/audioinput.rb +41 -0
- data/lib/fastpix_api_sdk/models/components/audioinput_type.rb +19 -0
- data/lib/fastpix_api_sdk/models/components/createlivestreamrequest.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/createlivestreamrequest_maxresolution.rb +21 -0
- data/lib/fastpix_api_sdk/models/components/createlivestreamrequest_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest.rb +89 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_accesspolicy.rb +22 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_accessrestrictions.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_domains.rb +48 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_domains_defaultpolicy.rb +23 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_languagecode.rb +26 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_maxresolution.rb +25 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_metadata.rb +29 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_mp4support.rb +22 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_type.rb +22 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_useragents.rb +48 -0
- data/lib/fastpix_api_sdk/models/components/createmediarequest_useragents_defaultpolicy.rb +23 -0
- data/lib/fastpix_api_sdk/models/components/createmediaresponse.rb +62 -0
- data/lib/fastpix_api_sdk/models/components/createmediaresponse_maxresolution.rb +24 -0
- data/lib/fastpix_api_sdk/models/components/createmediaresponse_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/directupload.rb +58 -0
- data/lib/fastpix_api_sdk/models/components/directuploadresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/directuploadresponse_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/getcreatelivestreamresponsedto.rb +85 -0
- data/lib/fastpix_api_sdk/models/components/getcreatelivestreamresponsedto_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/getcreatelivestreamresponsedto_srtplaybackresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/getstreamsresponse.rb +41 -0
- data/lib/fastpix_api_sdk/models/components/imposetrack.rb +49 -0
- data/lib/fastpix_api_sdk/models/components/input.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/inputmediasettings.rb +45 -0
- data/lib/fastpix_api_sdk/models/components/livestreamdeleteresponse.rb +33 -0
- data/lib/fastpix_api_sdk/models/components/livestreamgetresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/livestreamresponsedto.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/media.rb +93 -0
- data/lib/fastpix_api_sdk/models/components/media_maxresolution.rb +24 -0
- data/lib/fastpix_api_sdk/models/components/media_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/media_mp4support.rb +22 -0
- data/lib/fastpix_api_sdk/models/components/mediapolicy.rb +20 -0
- data/lib/fastpix_api_sdk/models/components/moderation.rb +34 -0
- data/lib/fastpix_api_sdk/models/components/pagination.rb +41 -0
- data/lib/fastpix_api_sdk/models/components/patchlivestreamrequest.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/patchlivestreamrequest_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/patchresponsedata.rb +85 -0
- data/lib/fastpix_api_sdk/models/components/patchresponsedata_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/patchresponsedata_srtplaybackresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/patchresponsedto.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/placement.rb +45 -0
- data/lib/fastpix_api_sdk/models/components/playbackid.rb +41 -0
- data/lib/fastpix_api_sdk/models/components/playbackid_accesspolicy.rb +21 -0
- data/lib/fastpix_api_sdk/models/components/playbackid_accessrestrictions.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/playbackid_domains.rb +41 -0
- data/lib/fastpix_api_sdk/models/components/playbackid_domains_defaultpolicy.rb +20 -0
- data/lib/fastpix_api_sdk/models/components/playbackid_useragents.rb +41 -0
- data/lib/fastpix_api_sdk/models/components/playbackid_useragents_defaultpolicy.rb +20 -0
- data/lib/fastpix_api_sdk/models/components/playbackidrequest.rb +33 -0
- data/lib/fastpix_api_sdk/models/components/playbackidrequest_accesspolicy.rb +20 -0
- data/lib/fastpix_api_sdk/models/components/playbackidresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/playbackidresponse_data.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/playbackids.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/playbacksettings.rb +33 -0
- data/lib/fastpix_api_sdk/models/components/playbacksettings_accesspolicy.rb +20 -0
- data/lib/fastpix_api_sdk/models/components/security.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/segment_1.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/segment_2.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/segment_union.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/simulcastdeleteresponse.rb +33 -0
- data/lib/fastpix_api_sdk/models/components/simulcastrequest.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/simulcastresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/simulcastresponse_data.rb +49 -0
- data/lib/fastpix_api_sdk/models/components/simulcastresponse_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/simulcastupdaterequest.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/simulcastupdaterequest_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/simulcastupdateresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/components/simulcastupdateresponse_data.rb +49 -0
- data/lib/fastpix_api_sdk/models/components/simulcastupdateresponse_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/components/sourceresolution.rb +24 -0
- data/lib/fastpix_api_sdk/models/components/subtitle.rb +45 -0
- data/lib/fastpix_api_sdk/models/components/subtitle_metadata.rb +29 -0
- data/lib/fastpix_api_sdk/models/components/subtitleinput.rb +47 -0
- data/lib/fastpix_api_sdk/models/components/subtitleinput_languagecode.rb +76 -0
- data/lib/fastpix_api_sdk/models/components/summary.rb +40 -0
- data/lib/fastpix_api_sdk/models/components/track.rb +53 -0
- data/lib/fastpix_api_sdk/models/components/videoinput.rb +68 -0
- data/lib/fastpix_api_sdk/models/components/watermarkinput.rb +53 -0
- data/lib/fastpix_api_sdk/models/components/watermarkinput_type.rb +19 -0
- data/lib/fastpix_api_sdk/models/components/xalign.rb +21 -0
- data/lib/fastpix_api_sdk/models/components/yalign.rb +21 -0
- data/lib/fastpix_api_sdk/models/components.rb +98 -0
- data/lib/fastpix_api_sdk/models/errors/apierror.rb +38 -0
- data/lib/fastpix_api_sdk/models/errors/badrequest_error.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/badrequest_error_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/field.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/forbidden_error.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/forbidden_error_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/invalidpermission_error.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/invalidpermission_error_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/medianotfound_error.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/medianotfound_error_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/mediaorplaybacknotfound_error.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/mediaorplaybacknotfound_error_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/notfounderror.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/notfounderror_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/notfounderrorplaybackid.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/notfounderrorplaybackid_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/notfounderrorsimulcast.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/notfounderrorsimulcast_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/simulcastunavailable_error.rb +38 -0
- data/lib/fastpix_api_sdk/models/errors/simulcastunavailable_error_error.rb +45 -0
- data/lib/fastpix_api_sdk/models/errors/unauthorized_error.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/unauthorized_error_error.rb +42 -0
- data/lib/fastpix_api_sdk/models/errors/validationerrorresponse.rb +37 -0
- data/lib/fastpix_api_sdk/models/errors/validationerrorresponse_error.rb +41 -0
- data/lib/fastpix_api_sdk/models/errors.rb +35 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_accesspolicy.rb +21 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_accessrestrictions.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_domains.rb +48 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_domains_defaultpolicy.rb +23 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_requestbody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_responsebody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_useragents.rb +48 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_playback_id_useragents_defaultpolicy.rb +23 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/create_media_responsebody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_new_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/create_playbackid_of_stream_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_playbackid_of_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/create_simulcast_of_stream_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/create_simulcast_of_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/data.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/delete_live_stream_request.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/delete_live_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/delete_media_playback_id_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/delete_media_playback_id_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/delete_media_playback_id_responsebody.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/delete_media_request.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/delete_media_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/delete_media_responsebody.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/delete_playbackid_of_stream_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/delete_playbackid_of_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/delete_simulcast_of_stream_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/delete_simulcast_of_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_accesspolicy.rb +20 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_accessrestrictions.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_domains.rb +48 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_domains_defaultpolicy.rb +23 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_responsebody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_useragents.rb +48 -0
- data/lib/fastpix_api_sdk/models/operations/direct_upload_video_media_useragents_defaultpolicy.rb +23 -0
- data/lib/fastpix_api_sdk/models/operations/get_all_streams_orderby.rb +20 -0
- data/lib/fastpix_api_sdk/models/operations/get_all_streams_request.rb +41 -0
- data/lib/fastpix_api_sdk/models/operations/get_all_streams_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/get_live_stream_by_id_request.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/get_live_stream_by_id_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/get_live_stream_playback_id_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/get_live_stream_playback_id_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/get_media_request.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/get_media_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/get_media_responsebody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/get_specific_simulcast_of_stream_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/get_specific_simulcast_of_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/input.rb +28 -0
- data/lib/fastpix_api_sdk/models/operations/languagecode.rb +26 -0
- data/lib/fastpix_api_sdk/models/operations/list_media_orderby.rb +20 -0
- data/lib/fastpix_api_sdk/models/operations/list_media_request.rb +41 -0
- data/lib/fastpix_api_sdk/models/operations/list_media_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/list_media_responsebody.rb +41 -0
- data/lib/fastpix_api_sdk/models/operations/maxresolution.rb +25 -0
- data/lib/fastpix_api_sdk/models/operations/moderation.rb +34 -0
- data/lib/fastpix_api_sdk/models/operations/mp4support.rb +22 -0
- data/lib/fastpix_api_sdk/models/operations/push_media_settings.rb +95 -0
- data/lib/fastpix_api_sdk/models/operations/retrievemediainputinfo_request.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/retrievemediainputinfo_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/retrievemediainputinfo_responsebody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/subtitles.rb +43 -0
- data/lib/fastpix_api_sdk/models/operations/subtitles_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/operations/summary.rb +40 -0
- data/lib/fastpix_api_sdk/models/operations/type.rb +22 -0
- data/lib/fastpix_api_sdk/models/operations/update_live_stream_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/update_live_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/update_specific_simulcast_of_stream_request.rb +41 -0
- data/lib/fastpix_api_sdk/models/operations/update_specific_simulcast_of_stream_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/updated_media_metadata.rb +28 -0
- data/lib/fastpix_api_sdk/models/operations/updated_media_request.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations/updated_media_requestbody.rb +33 -0
- data/lib/fastpix_api_sdk/models/operations/updated_media_response.rb +45 -0
- data/lib/fastpix_api_sdk/models/operations/updated_media_responsebody.rb +37 -0
- data/lib/fastpix_api_sdk/models/operations.rb +89 -0
- data/lib/fastpix_api_sdk/playback.rb +941 -0
- data/lib/fastpix_api_sdk/sdk.rb +103 -0
- data/lib/fastpix_api_sdk/sdk_hooks/hooks.rb +96 -0
- data/lib/fastpix_api_sdk/sdk_hooks/types.rb +157 -0
- data/lib/fastpix_api_sdk/sdkconfiguration.rb +77 -0
- data/lib/fastpix_api_sdk/simulcast_stream.rb +767 -0
- data/lib/fastpix_api_sdk/start_live_stream.rb +208 -0
- data/lib/fastpix_api_sdk/utils/forms.rb +210 -0
- data/lib/fastpix_api_sdk/utils/headers.rb +79 -0
- data/lib/fastpix_api_sdk/utils/query_params.rb +133 -0
- data/lib/fastpix_api_sdk/utils/request_bodies.rb +62 -0
- data/lib/fastpix_api_sdk/utils/retries.rb +95 -0
- data/lib/fastpix_api_sdk/utils/security.rb +133 -0
- data/lib/fastpix_api_sdk/utils/url.rb +102 -0
- data/lib/fastpix_api_sdk/utils/utils.rb +186 -0
- data/lib/fastpixapi.rb +29 -0
- 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'
|