livepeer 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/livepeer.rb +96 -0
- data/lib/sdk/access_control.rb +195 -0
- data/lib/sdk/asset.rb +248 -0
- data/lib/sdk/metrics.rb +158 -0
- data/lib/sdk/models/operations/createmultistreamtarget.rb +34 -0
- data/lib/sdk/models/operations/createsigningkey.rb +35 -0
- data/lib/sdk/models/operations/createstream.rb +34 -0
- data/lib/sdk/models/operations/createwebhook.rb +35 -0
- data/lib/sdk/models/operations/deleteasset.rb +45 -0
- data/lib/sdk/models/operations/deletemultistreamtarget.rb +45 -0
- data/lib/sdk/models/operations/deletesigningkey.rb +45 -0
- data/lib/sdk/models/operations/deletestream.rb +45 -0
- data/lib/sdk/models/operations/deletewebhook.rb +49 -0
- data/lib/sdk/models/operations/get_session_id_clips.rb +48 -0
- data/lib/sdk/models/operations/get_stream_id_clips.rb +48 -0
- data/lib/sdk/models/operations/getasset.rb +49 -0
- data/lib/sdk/models/operations/getassets.rb +34 -0
- data/lib/sdk/models/operations/getcreatormetrics.rb +98 -0
- data/lib/sdk/models/operations/getmultistreamtarget.rb +49 -0
- data/lib/sdk/models/operations/getmultistreamtargets.rb +34 -0
- data/lib/sdk/models/operations/getplaybackinfo.rb +53 -0
- data/lib/sdk/models/operations/getpublictotalviewsmetrics.rb +76 -0
- data/lib/sdk/models/operations/getrecordedsessions.rb +53 -0
- data/lib/sdk/models/operations/getsession.rb +49 -0
- data/lib/sdk/models/operations/getsessions.rb +34 -0
- data/lib/sdk/models/operations/getsigningkey.rb +49 -0
- data/lib/sdk/models/operations/getsigningkeys.rb +34 -0
- data/lib/sdk/models/operations/getstream.rb +49 -0
- data/lib/sdk/models/operations/getstreams.rb +48 -0
- data/lib/sdk/models/operations/gettask.rb +49 -0
- data/lib/sdk/models/operations/gettasks.rb +34 -0
- data/lib/sdk/models/operations/getusagemetrics.rb +72 -0
- data/lib/sdk/models/operations/getviewershipsmetrics.rb +107 -0
- data/lib/sdk/models/operations/getwebhook.rb +49 -0
- data/lib/sdk/models/operations/getwebhooks.rb +34 -0
- data/lib/sdk/models/operations/patch_asset_assetid_.rb +53 -0
- data/lib/sdk/models/operations/post_clip.rb +66 -0
- data/lib/sdk/models/operations/requestupload.rb +72 -0
- data/lib/sdk/models/operations/transcode.rb +35 -0
- data/lib/sdk/models/operations/updatemultistreamtarget.rb +49 -0
- data/lib/sdk/models/operations/updatesigningkey.rb +65 -0
- data/lib/sdk/models/operations/updatestream.rb +49 -0
- data/lib/sdk/models/operations/updatewebhook.rb +49 -0
- data/lib/sdk/models/operations/uploadassetviaurl.rb +66 -0
- data/lib/sdk/models/shared/asset.rb +312 -0
- data/lib/sdk/models/shared/asset_patch_payload.rb +38 -0
- data/lib/sdk/models/shared/attestation.rb +178 -0
- data/lib/sdk/models/shared/clip_payload.rb +37 -0
- data/lib/sdk/models/shared/encryption.rb +25 -0
- data/lib/sdk/models/shared/encryption_output.rb +21 -0
- data/lib/sdk/models/shared/error.rb +25 -0
- data/lib/sdk/models/shared/ffmpeg_profile.rb +71 -0
- data/lib/sdk/models/shared/ipfs_export_params.rb +41 -0
- data/lib/sdk/models/shared/ipfs_file_info.rb +31 -0
- data/lib/sdk/models/shared/multistream.rb +75 -0
- data/lib/sdk/models/shared/multistream_target.rb +36 -0
- data/lib/sdk/models/shared/multistream_target_input.rb +33 -0
- data/lib/sdk/models/shared/multistream_target_patch_payload.rb +33 -0
- data/lib/sdk/models/shared/new_asset_payload.rb +79 -0
- data/lib/sdk/models/shared/new_stream_payload.rb +44 -0
- data/lib/sdk/models/shared/nftmetadata.rb +24 -0
- data/lib/sdk/models/shared/nftmetadatatemplate.rb +23 -0
- data/lib/sdk/models/shared/playback_info.rb +115 -0
- data/lib/sdk/models/shared/playback_policy.rb +41 -0
- data/lib/sdk/models/shared/security.rb +25 -0
- data/lib/sdk/models/shared/session.rb +99 -0
- data/lib/sdk/models/shared/signing_key.rb +40 -0
- data/lib/sdk/models/shared/signing_key_response_payload.rb +43 -0
- data/lib/sdk/models/shared/storage.rb +28 -0
- data/lib/sdk/models/shared/storage_status.rb +70 -0
- data/lib/sdk/models/shared/stream.rb +142 -0
- data/lib/sdk/models/shared/stream_patch_payload.rb +41 -0
- data/lib/sdk/models/shared/task.rb +626 -0
- data/lib/sdk/models/shared/upload.rb +34 -0
- data/lib/sdk/models/shared/upload_output.rb +34 -0
- data/lib/sdk/models/shared/usage_metric.rb +38 -0
- data/lib/sdk/models/shared/viewership_metric.rb +97 -0
- data/lib/sdk/models/shared/webhook.rb +112 -0
- data/lib/sdk/multistream_target.rb +205 -0
- data/lib/sdk/playback.rb +63 -0
- data/lib/sdk/sdk.rb +89 -0
- data/lib/sdk/sdkconfiguration.rb +54 -0
- data/lib/sdk/session.rb +166 -0
- data/lib/sdk/stream.rb +290 -0
- data/lib/sdk/task.rb +87 -0
- data/lib/sdk/transcode.rb +59 -0
- data/lib/sdk/utils/metadata_fields.rb +154 -0
- data/lib/sdk/utils/utils.rb +774 -0
- data/lib/sdk/webhook.rb +192 -0
- metadata +260 -0
@@ -0,0 +1,626 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'sorbet-runtime'
|
7
|
+
require 'faraday'
|
8
|
+
require_relative '../shared/encryption'
|
9
|
+
require_relative '../shared/ipfs_export_params'
|
10
|
+
require_relative '../shared/ffmpeg_profile'
|
11
|
+
require_relative '../shared/upload'
|
12
|
+
|
13
|
+
module Livepeer
|
14
|
+
module Shared
|
15
|
+
# TaskType - Type of the task
|
16
|
+
class TaskType < T::Enum
|
17
|
+
enums do
|
18
|
+
UPLOAD = new('upload')
|
19
|
+
IMPORT = new('import')
|
20
|
+
EXPORT = new('export')
|
21
|
+
EXPORT_DATA = new('export-data')
|
22
|
+
TRANSCODE = new('transcode')
|
23
|
+
TRANSCODE_FILE = new('transcode-file')
|
24
|
+
CLIP = new('clip')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# Parameters for the upload task
|
30
|
+
class TaskUploadOutput < Livepeer::Utils::FieldAugmented
|
31
|
+
extend T::Sig
|
32
|
+
|
33
|
+
|
34
|
+
field :encryption, T.nilable(Shared::EncryptionOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
|
35
|
+
# ID of the original recorded session to avoid re-transcoding
|
36
|
+
# of the same content. Only used for import task.
|
37
|
+
#
|
38
|
+
field :recorded_session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordedSessionId') } }
|
39
|
+
# URL of the asset to "upload"
|
40
|
+
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
41
|
+
|
42
|
+
|
43
|
+
sig { params(encryption: T.nilable(Shared::EncryptionOutput), recorded_session_id: T.nilable(String), url: T.nilable(String)).void }
|
44
|
+
def initialize(encryption: nil, recorded_session_id: nil, url: nil)
|
45
|
+
@encryption = encryption
|
46
|
+
@recorded_session_id = recorded_session_id
|
47
|
+
@url = url
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# File content to store into IPFS
|
52
|
+
class Content < Livepeer::Utils::FieldAugmented
|
53
|
+
extend T::Sig
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
def initialize; end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Parameters for the export-data task
|
62
|
+
class ExportData < Livepeer::Utils::FieldAugmented
|
63
|
+
extend T::Sig
|
64
|
+
|
65
|
+
# File content to store into IPFS
|
66
|
+
field :content, Shared::Content, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('content') } }
|
67
|
+
# Optional ID of the content
|
68
|
+
field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
|
69
|
+
|
70
|
+
field :ipfs, T.nilable(Shared::IpfsExportParams), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
|
71
|
+
# Optional type of content
|
72
|
+
field :type, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type') } }
|
73
|
+
|
74
|
+
|
75
|
+
sig { params(content: Shared::Content, id: T.nilable(String), ipfs: T.nilable(Shared::IpfsExportParams), type: T.nilable(String)).void }
|
76
|
+
def initialize(content: nil, id: nil, ipfs: nil, type: nil)
|
77
|
+
@content = content
|
78
|
+
@id = id
|
79
|
+
@ipfs = ipfs
|
80
|
+
@type = type
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# Parameters for the transcode task
|
85
|
+
class Transcode < Livepeer::Utils::FieldAugmented
|
86
|
+
extend T::Sig
|
87
|
+
|
88
|
+
# LMPS ffmpeg profile
|
89
|
+
field :profile, T.nilable(Shared::FfmpegProfile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
|
90
|
+
|
91
|
+
|
92
|
+
sig { params(profile: T.nilable(Shared::FfmpegProfile)).void }
|
93
|
+
def initialize(profile: nil)
|
94
|
+
@profile = profile
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
# Input video file to transcode
|
99
|
+
class Input < Livepeer::Utils::FieldAugmented
|
100
|
+
extend T::Sig
|
101
|
+
|
102
|
+
# URL of a video to transcode, accepts object-store format
|
103
|
+
# "s3+https"
|
104
|
+
#
|
105
|
+
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
106
|
+
|
107
|
+
|
108
|
+
sig { params(url: T.nilable(String)).void }
|
109
|
+
def initialize(url: nil)
|
110
|
+
@url = url
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# Storage for the output files
|
115
|
+
class TaskStorage < Livepeer::Utils::FieldAugmented
|
116
|
+
extend T::Sig
|
117
|
+
|
118
|
+
# URL of the output storage, accepts object-store format
|
119
|
+
# "s3+https"
|
120
|
+
#
|
121
|
+
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
122
|
+
|
123
|
+
|
124
|
+
sig { params(url: T.nilable(String)).void }
|
125
|
+
def initialize(url: nil)
|
126
|
+
@url = url
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# HLS output format
|
131
|
+
class Hls < Livepeer::Utils::FieldAugmented
|
132
|
+
extend T::Sig
|
133
|
+
|
134
|
+
# Path for the HLS output
|
135
|
+
field :path, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
|
136
|
+
|
137
|
+
|
138
|
+
sig { params(path: T.nilable(String)).void }
|
139
|
+
def initialize(path: nil)
|
140
|
+
@path = path
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
# MP4 output format
|
145
|
+
class Mp4 < Livepeer::Utils::FieldAugmented
|
146
|
+
extend T::Sig
|
147
|
+
|
148
|
+
# Path for the MP4 output
|
149
|
+
field :path, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
|
150
|
+
|
151
|
+
|
152
|
+
sig { params(path: T.nilable(String)).void }
|
153
|
+
def initialize(path: nil)
|
154
|
+
@path = path
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
# Output formats
|
159
|
+
class Outputs < Livepeer::Utils::FieldAugmented
|
160
|
+
extend T::Sig
|
161
|
+
|
162
|
+
# HLS output format
|
163
|
+
field :hls, T.nilable(Shared::Hls), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hls') } }
|
164
|
+
# MP4 output format
|
165
|
+
field :mp4, T.nilable(Shared::Mp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4') } }
|
166
|
+
|
167
|
+
|
168
|
+
sig { params(hls: T.nilable(Shared::Hls), mp4: T.nilable(Shared::Mp4)).void }
|
169
|
+
def initialize(hls: nil, mp4: nil)
|
170
|
+
@hls = hls
|
171
|
+
@mp4 = mp4
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
# Parameters for the transcode-file task
|
176
|
+
class TranscodeFile < Livepeer::Utils::FieldAugmented
|
177
|
+
extend T::Sig
|
178
|
+
|
179
|
+
|
180
|
+
field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
|
181
|
+
# Input video file to transcode
|
182
|
+
field :input, T.nilable(Shared::Input), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('input') } }
|
183
|
+
# Output formats
|
184
|
+
field :outputs, T.nilable(Shared::Outputs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputs') } }
|
185
|
+
|
186
|
+
field :profiles, T.nilable(T::Array[Shared::FfmpegProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
|
187
|
+
# Storage for the output files
|
188
|
+
field :storage, T.nilable(Shared::TaskStorage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
|
189
|
+
# How many seconds the duration of each output segment should
|
190
|
+
# be
|
191
|
+
#
|
192
|
+
field :target_segment_size_secs, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targetSegmentSizeSecs') } }
|
193
|
+
|
194
|
+
|
195
|
+
sig { params(creator_id: T.nilable(Object), input: T.nilable(Shared::Input), outputs: T.nilable(Shared::Outputs), profiles: T.nilable(T::Array[Shared::FfmpegProfile]), storage: T.nilable(Shared::TaskStorage), target_segment_size_secs: T.nilable(Float)).void }
|
196
|
+
def initialize(creator_id: nil, input: nil, outputs: nil, profiles: nil, storage: nil, target_segment_size_secs: nil)
|
197
|
+
@creator_id = creator_id
|
198
|
+
@input = input
|
199
|
+
@outputs = outputs
|
200
|
+
@profiles = profiles
|
201
|
+
@storage = storage
|
202
|
+
@target_segment_size_secs = target_segment_size_secs
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
# Parameters of the task
|
207
|
+
class TaskParams < Livepeer::Utils::FieldAugmented
|
208
|
+
extend T::Sig
|
209
|
+
|
210
|
+
# Parameters for the export task
|
211
|
+
field :export, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
212
|
+
# Parameters for the export-data task
|
213
|
+
field :export_data, T.nilable(Shared::ExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
214
|
+
# Parameters for the upload task
|
215
|
+
field :import, T.nilable(Shared::UploadOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
216
|
+
# Parameters for the transcode task
|
217
|
+
field :transcode, T.nilable(Shared::Transcode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
218
|
+
# Parameters for the transcode-file task
|
219
|
+
field :transcode_file, T.nilable(Shared::TranscodeFile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode-file') } }
|
220
|
+
# Parameters for the upload task
|
221
|
+
field :upload, T.nilable(Shared::TaskUploadOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
222
|
+
|
223
|
+
|
224
|
+
sig { params(export: T.nilable(Object), export_data: T.nilable(Shared::ExportData), import: T.nilable(Shared::UploadOutput), transcode: T.nilable(Shared::Transcode), transcode_file: T.nilable(Shared::TranscodeFile), upload: T.nilable(Shared::TaskUploadOutput)).void }
|
225
|
+
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, transcode_file: nil, upload: nil)
|
226
|
+
@export = export
|
227
|
+
@export_data = export_data
|
228
|
+
@import = import
|
229
|
+
@transcode = transcode
|
230
|
+
@transcode_file = transcode_file
|
231
|
+
@upload = upload
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
# Strategy to use for clipping the asset. If not specified, the default strategy that Catalyst is configured for will be used. This field only available for admin users, and is only used for E2E testing.
|
236
|
+
class ClipStrategy < Livepeer::Utils::FieldAugmented
|
237
|
+
extend T::Sig
|
238
|
+
|
239
|
+
# End time of the clip in milliseconds
|
240
|
+
field :end_time, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('endTime') } }
|
241
|
+
# Playback ID of the stream or asset to clip
|
242
|
+
field :playback_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
|
243
|
+
# Start time of the clip in milliseconds
|
244
|
+
field :start_time, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('startTime') } }
|
245
|
+
|
246
|
+
|
247
|
+
sig { params(end_time: T.nilable(Float), playback_id: T.nilable(String), start_time: T.nilable(Float)).void }
|
248
|
+
def initialize(end_time: nil, playback_id: nil, start_time: nil)
|
249
|
+
@end_time = end_time
|
250
|
+
@playback_id = playback_id
|
251
|
+
@start_time = start_time
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
# CatalystPipelineStrategy - Force to use a specific strategy in the Catalyst pipeline. If not specified, the default strategy that Catalyst is configured for will be used. This field only available for admin users, and is only used for E2E testing.
|
256
|
+
class CatalystPipelineStrategy < T::Enum
|
257
|
+
enums do
|
258
|
+
CATALYST = new('catalyst')
|
259
|
+
CATALYST_FFMPEG = new('catalyst_ffmpeg')
|
260
|
+
BACKGROUND_EXTERNAL = new('background_external')
|
261
|
+
BACKGROUND_MIST = new('background_mist')
|
262
|
+
FALLBACK_EXTERNAL = new('fallback_external')
|
263
|
+
EXTERNAL = new('external')
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
class Clip < Livepeer::Utils::FieldAugmented
|
270
|
+
extend T::Sig
|
271
|
+
|
272
|
+
# Force to use a specific strategy in the Catalyst pipeline. If not specified, the default strategy that Catalyst is configured for will be used. This field only available for admin users, and is only used for E2E testing.
|
273
|
+
field :catalyst_pipeline_strategy, T.nilable(Shared::CatalystPipelineStrategy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('catalystPipelineStrategy'), 'decoder': Utils.enum_from_string(Shared::CatalystPipelineStrategy, true) } }
|
274
|
+
# Strategy to use for clipping the asset. If not specified, the default strategy that Catalyst is configured for will be used. This field only available for admin users, and is only used for E2E testing.
|
275
|
+
field :clip_strategy, T.nilable(Shared::ClipStrategy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clipStrategy') } }
|
276
|
+
# ID of the input asset or stream
|
277
|
+
field :input_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('inputId') } }
|
278
|
+
# ID of the session
|
279
|
+
field :session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sessionId') } }
|
280
|
+
# URL of the asset to "clip"
|
281
|
+
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
282
|
+
|
283
|
+
|
284
|
+
sig { params(catalyst_pipeline_strategy: T.nilable(Shared::CatalystPipelineStrategy), clip_strategy: T.nilable(Shared::ClipStrategy), input_id: T.nilable(String), session_id: T.nilable(String), url: T.nilable(String)).void }
|
285
|
+
def initialize(catalyst_pipeline_strategy: nil, clip_strategy: nil, input_id: nil, session_id: nil, url: nil)
|
286
|
+
@catalyst_pipeline_strategy = catalyst_pipeline_strategy
|
287
|
+
@clip_strategy = clip_strategy
|
288
|
+
@input_id = input_id
|
289
|
+
@session_id = session_id
|
290
|
+
@url = url
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
# TaskPhase - Phase of the task
|
295
|
+
class TaskPhase < T::Enum
|
296
|
+
enums do
|
297
|
+
PENDING = new('pending')
|
298
|
+
WAITING = new('waiting')
|
299
|
+
RUNNING = new('running')
|
300
|
+
FAILED = new('failed')
|
301
|
+
COMPLETED = new('completed')
|
302
|
+
CANCELLED = new('cancelled')
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
306
|
+
|
307
|
+
# Status of the task
|
308
|
+
class TaskStatus < Livepeer::Utils::FieldAugmented
|
309
|
+
extend T::Sig
|
310
|
+
|
311
|
+
# Phase of the task
|
312
|
+
field :phase, Shared::TaskPhase, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('phase'), 'decoder': Utils.enum_from_string(Shared::TaskPhase, false) } }
|
313
|
+
# Timestamp (in milliseconds) at which task was updated
|
314
|
+
field :updated_at, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updatedAt') } }
|
315
|
+
# Error message if the task failed
|
316
|
+
field :error_message, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('errorMessage') } }
|
317
|
+
# Current progress of the task in a 0-1 ratio
|
318
|
+
field :progress, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('progress') } }
|
319
|
+
# Number of retries done on the task
|
320
|
+
field :retries, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('retries') } }
|
321
|
+
|
322
|
+
|
323
|
+
sig { params(phase: Shared::TaskPhase, updated_at: Float, error_message: T.nilable(String), progress: T.nilable(Float), retries: T.nilable(Float)).void }
|
324
|
+
def initialize(phase: nil, updated_at: nil, error_message: nil, progress: nil, retries: nil)
|
325
|
+
@phase = phase
|
326
|
+
@updated_at = updated_at
|
327
|
+
@error_message = error_message
|
328
|
+
@progress = progress
|
329
|
+
@retries = retries
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
|
334
|
+
class TaskIpfs < Livepeer::Utils::FieldAugmented
|
335
|
+
extend T::Sig
|
336
|
+
|
337
|
+
# IPFS CID of the exported video file
|
338
|
+
field :video_file_cid, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoFileCid') } }
|
339
|
+
# IPFS CID of the default metadata exported for the video
|
340
|
+
field :nft_metadata_cid, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataCid') } }
|
341
|
+
# URL to access metadata file via HTTP through an IPFS
|
342
|
+
# gateway
|
343
|
+
#
|
344
|
+
field :nft_metadata_gateway_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataGatewayUrl') } }
|
345
|
+
# URL for the metadata file with the IPFS protocol
|
346
|
+
field :nft_metadata_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataUrl') } }
|
347
|
+
# URL to access file via HTTP through an IPFS gateway
|
348
|
+
field :video_file_gateway_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoFileGatewayUrl') } }
|
349
|
+
# URL for the file with the IPFS protocol
|
350
|
+
field :video_file_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoFileUrl') } }
|
351
|
+
|
352
|
+
|
353
|
+
sig { params(video_file_cid: String, nft_metadata_cid: T.nilable(String), nft_metadata_gateway_url: T.nilable(String), nft_metadata_url: T.nilable(String), video_file_gateway_url: T.nilable(String), video_file_url: T.nilable(String)).void }
|
354
|
+
def initialize(video_file_cid: nil, nft_metadata_cid: nil, nft_metadata_gateway_url: nil, nft_metadata_url: nil, video_file_gateway_url: nil, video_file_url: nil)
|
355
|
+
@video_file_cid = video_file_cid
|
356
|
+
@nft_metadata_cid = nft_metadata_cid
|
357
|
+
@nft_metadata_gateway_url = nft_metadata_gateway_url
|
358
|
+
@nft_metadata_url = nft_metadata_url
|
359
|
+
@video_file_gateway_url = video_file_gateway_url
|
360
|
+
@video_file_url = video_file_url
|
361
|
+
end
|
362
|
+
end
|
363
|
+
|
364
|
+
# Output of the export task
|
365
|
+
class Export < Livepeer::Utils::FieldAugmented
|
366
|
+
extend T::Sig
|
367
|
+
|
368
|
+
|
369
|
+
field :ipfs, T.nilable(Shared::TaskIpfs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
|
370
|
+
|
371
|
+
|
372
|
+
sig { params(ipfs: T.nilable(Shared::TaskIpfs)).void }
|
373
|
+
def initialize(ipfs: nil)
|
374
|
+
@ipfs = ipfs
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
|
379
|
+
class TaskSchemasIpfs < Livepeer::Utils::FieldAugmented
|
380
|
+
extend T::Sig
|
381
|
+
|
382
|
+
# IPFS CID of the exported data
|
383
|
+
field :cid, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('cid') } }
|
384
|
+
|
385
|
+
|
386
|
+
sig { params(cid: String).void }
|
387
|
+
def initialize(cid: nil)
|
388
|
+
@cid = cid
|
389
|
+
end
|
390
|
+
end
|
391
|
+
|
392
|
+
# Output of the export data task
|
393
|
+
class TaskExportData < Livepeer::Utils::FieldAugmented
|
394
|
+
extend T::Sig
|
395
|
+
|
396
|
+
|
397
|
+
field :ipfs, T.nilable(Shared::TaskSchemasIpfs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
|
398
|
+
|
399
|
+
|
400
|
+
sig { params(ipfs: T.nilable(Shared::TaskSchemasIpfs)).void }
|
401
|
+
def initialize(ipfs: nil)
|
402
|
+
@ipfs = ipfs
|
403
|
+
end
|
404
|
+
end
|
405
|
+
|
406
|
+
|
407
|
+
class TaskTranscode < Livepeer::Utils::FieldAugmented
|
408
|
+
extend T::Sig
|
409
|
+
|
410
|
+
|
411
|
+
field :asset, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('asset') } }
|
412
|
+
|
413
|
+
|
414
|
+
sig { params(asset: T.nilable(T::Hash[Symbol, Object])).void }
|
415
|
+
def initialize(asset: nil)
|
416
|
+
@asset = asset
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
# Output of the task
|
421
|
+
class Output < Livepeer::Utils::FieldAugmented
|
422
|
+
extend T::Sig
|
423
|
+
|
424
|
+
# Output of the export task
|
425
|
+
field :export, T.nilable(Shared::Export), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
426
|
+
# Output of the export data task
|
427
|
+
field :export_data, T.nilable(Shared::TaskExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
428
|
+
# Output of the upload task
|
429
|
+
field :import, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
430
|
+
|
431
|
+
field :transcode, T.nilable(Shared::TaskTranscode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
432
|
+
# Output of the upload task
|
433
|
+
field :upload, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
434
|
+
|
435
|
+
|
436
|
+
sig { params(export: T.nilable(Shared::Export), export_data: T.nilable(Shared::TaskExportData), import: T.nilable(T::Hash[Symbol, Object]), transcode: T.nilable(Shared::TaskTranscode), upload: T.nilable(T::Hash[Symbol, Object])).void }
|
437
|
+
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, upload: nil)
|
438
|
+
@export = export
|
439
|
+
@export_data = export_data
|
440
|
+
@import = import
|
441
|
+
@transcode = transcode
|
442
|
+
@upload = upload
|
443
|
+
end
|
444
|
+
end
|
445
|
+
|
446
|
+
|
447
|
+
class Task < Livepeer::Utils::FieldAugmented
|
448
|
+
extend T::Sig
|
449
|
+
|
450
|
+
|
451
|
+
field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
|
452
|
+
# Timestamp (in milliseconds) at which task was created
|
453
|
+
field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
|
454
|
+
# Task ID
|
455
|
+
field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
|
456
|
+
# ID of the input asset
|
457
|
+
field :input_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('inputAssetId') } }
|
458
|
+
# Output of the task
|
459
|
+
field :output, T.nilable(Shared::Output), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('output') } }
|
460
|
+
# ID of the output asset
|
461
|
+
field :output_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputAssetId') } }
|
462
|
+
# Parameters of the task
|
463
|
+
field :params, T.nilable(Shared::TaskParams), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('params') } }
|
464
|
+
# Timestamp (in milliseconds) at which the task was scheduled for
|
465
|
+
# execution (e.g. after file upload finished).
|
466
|
+
#
|
467
|
+
field :scheduled_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('scheduledAt') } }
|
468
|
+
# Status of the task
|
469
|
+
field :status, T.nilable(Shared::TaskStatus), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('status') } }
|
470
|
+
# Type of the task
|
471
|
+
field :type, T.nilable(Shared::TaskType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::TaskType, true) } }
|
472
|
+
|
473
|
+
|
474
|
+
sig { params(clip: T.nilable(Shared::Clip), created_at: T.nilable(Float), id: T.nilable(String), input_asset_id: T.nilable(String), output: T.nilable(Shared::Output), output_asset_id: T.nilable(String), params: T.nilable(Shared::TaskParams), scheduled_at: T.nilable(Float), status: T.nilable(Shared::TaskStatus), type: T.nilable(Shared::TaskType)).void }
|
475
|
+
def initialize(clip: nil, created_at: nil, id: nil, input_asset_id: nil, output: nil, output_asset_id: nil, params: nil, scheduled_at: nil, status: nil, type: nil)
|
476
|
+
@clip = clip
|
477
|
+
@created_at = created_at
|
478
|
+
@id = id
|
479
|
+
@input_asset_id = input_asset_id
|
480
|
+
@output = output
|
481
|
+
@output_asset_id = output_asset_id
|
482
|
+
@params = params
|
483
|
+
@scheduled_at = scheduled_at
|
484
|
+
@status = status
|
485
|
+
@type = type
|
486
|
+
end
|
487
|
+
end
|
488
|
+
|
489
|
+
# Parameters for the upload task
|
490
|
+
class TaskUpload < Livepeer::Utils::FieldAugmented
|
491
|
+
extend T::Sig
|
492
|
+
|
493
|
+
|
494
|
+
field :encryption, T.nilable(Shared::Encryption), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
|
495
|
+
# ID of the original recorded session to avoid re-transcoding
|
496
|
+
# of the same content. Only used for import task.
|
497
|
+
#
|
498
|
+
field :recorded_session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordedSessionId') } }
|
499
|
+
# URL of the asset to "upload"
|
500
|
+
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
501
|
+
|
502
|
+
|
503
|
+
sig { params(encryption: T.nilable(Shared::Encryption), recorded_session_id: T.nilable(String), url: T.nilable(String)).void }
|
504
|
+
def initialize(encryption: nil, recorded_session_id: nil, url: nil)
|
505
|
+
@encryption = encryption
|
506
|
+
@recorded_session_id = recorded_session_id
|
507
|
+
@url = url
|
508
|
+
end
|
509
|
+
end
|
510
|
+
|
511
|
+
# Parameters of the task
|
512
|
+
class Params < Livepeer::Utils::FieldAugmented
|
513
|
+
extend T::Sig
|
514
|
+
|
515
|
+
# Parameters for the export task
|
516
|
+
field :export, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
517
|
+
# Parameters for the export-data task
|
518
|
+
field :export_data, T.nilable(Shared::ExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
519
|
+
# Parameters for the upload task
|
520
|
+
field :import, T.nilable(Shared::Upload), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
521
|
+
# Parameters for the transcode task
|
522
|
+
field :transcode, T.nilable(Shared::Transcode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
523
|
+
# Parameters for the transcode-file task
|
524
|
+
field :transcode_file, T.nilable(Shared::TranscodeFile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode-file') } }
|
525
|
+
# Parameters for the upload task
|
526
|
+
field :upload, T.nilable(Shared::TaskUpload), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
527
|
+
|
528
|
+
|
529
|
+
sig { params(export: T.nilable(Object), export_data: T.nilable(Shared::ExportData), import: T.nilable(Shared::Upload), transcode: T.nilable(Shared::Transcode), transcode_file: T.nilable(Shared::TranscodeFile), upload: T.nilable(Shared::TaskUpload)).void }
|
530
|
+
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, transcode_file: nil, upload: nil)
|
531
|
+
@export = export
|
532
|
+
@export_data = export_data
|
533
|
+
@import = import
|
534
|
+
@transcode = transcode
|
535
|
+
@transcode_file = transcode_file
|
536
|
+
@upload = upload
|
537
|
+
end
|
538
|
+
end
|
539
|
+
|
540
|
+
|
541
|
+
class TaskIpfsInput < Livepeer::Utils::FieldAugmented
|
542
|
+
extend T::Sig
|
543
|
+
|
544
|
+
# IPFS CID of the exported video file
|
545
|
+
field :video_file_cid, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoFileCid') } }
|
546
|
+
# IPFS CID of the default metadata exported for the video
|
547
|
+
field :nft_metadata_cid, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataCid') } }
|
548
|
+
|
549
|
+
|
550
|
+
sig { params(video_file_cid: String, nft_metadata_cid: T.nilable(String)).void }
|
551
|
+
def initialize(video_file_cid: nil, nft_metadata_cid: nil)
|
552
|
+
@video_file_cid = video_file_cid
|
553
|
+
@nft_metadata_cid = nft_metadata_cid
|
554
|
+
end
|
555
|
+
end
|
556
|
+
|
557
|
+
# Output of the export task
|
558
|
+
class TaskExport < Livepeer::Utils::FieldAugmented
|
559
|
+
extend T::Sig
|
560
|
+
|
561
|
+
|
562
|
+
field :ipfs, T.nilable(Shared::TaskIpfsInput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
|
563
|
+
|
564
|
+
|
565
|
+
sig { params(ipfs: T.nilable(Shared::TaskIpfsInput)).void }
|
566
|
+
def initialize(ipfs: nil)
|
567
|
+
@ipfs = ipfs
|
568
|
+
end
|
569
|
+
end
|
570
|
+
|
571
|
+
# Output of the task
|
572
|
+
class TaskOutput < Livepeer::Utils::FieldAugmented
|
573
|
+
extend T::Sig
|
574
|
+
|
575
|
+
# Output of the export task
|
576
|
+
field :export, T.nilable(Shared::TaskExport), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
|
577
|
+
# Output of the export data task
|
578
|
+
field :export_data, T.nilable(Shared::TaskExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
|
579
|
+
# Output of the upload task
|
580
|
+
field :import, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('import') } }
|
581
|
+
|
582
|
+
field :transcode, T.nilable(Shared::TaskTranscode), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode') } }
|
583
|
+
# Output of the upload task
|
584
|
+
field :upload, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
|
585
|
+
|
586
|
+
|
587
|
+
sig { params(export: T.nilable(Shared::TaskExport), export_data: T.nilable(Shared::TaskExportData), import: T.nilable(T::Hash[Symbol, Object]), transcode: T.nilable(Shared::TaskTranscode), upload: T.nilable(T::Hash[Symbol, Object])).void }
|
588
|
+
def initialize(export: nil, export_data: nil, import: nil, transcode: nil, upload: nil)
|
589
|
+
@export = export
|
590
|
+
@export_data = export_data
|
591
|
+
@import = import
|
592
|
+
@transcode = transcode
|
593
|
+
@upload = upload
|
594
|
+
end
|
595
|
+
end
|
596
|
+
|
597
|
+
|
598
|
+
class TaskInput < Livepeer::Utils::FieldAugmented
|
599
|
+
extend T::Sig
|
600
|
+
|
601
|
+
|
602
|
+
field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
|
603
|
+
# ID of the input asset
|
604
|
+
field :input_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('inputAssetId') } }
|
605
|
+
# Output of the task
|
606
|
+
field :output, T.nilable(Shared::TaskOutput), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('output') } }
|
607
|
+
# ID of the output asset
|
608
|
+
field :output_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputAssetId') } }
|
609
|
+
# Parameters of the task
|
610
|
+
field :params, T.nilable(Shared::Params), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('params') } }
|
611
|
+
# Type of the task
|
612
|
+
field :type, T.nilable(Shared::TaskType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::TaskType, true) } }
|
613
|
+
|
614
|
+
|
615
|
+
sig { params(clip: T.nilable(Shared::Clip), input_asset_id: T.nilable(String), output: T.nilable(Shared::TaskOutput), output_asset_id: T.nilable(String), params: T.nilable(Shared::Params), type: T.nilable(Shared::TaskType)).void }
|
616
|
+
def initialize(clip: nil, input_asset_id: nil, output: nil, output_asset_id: nil, params: nil, type: nil)
|
617
|
+
@clip = clip
|
618
|
+
@input_asset_id = input_asset_id
|
619
|
+
@output = output
|
620
|
+
@output_asset_id = output_asset_id
|
621
|
+
@params = params
|
622
|
+
@type = type
|
623
|
+
end
|
624
|
+
end
|
625
|
+
end
|
626
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'sorbet-runtime'
|
7
|
+
require 'faraday'
|
8
|
+
require_relative '../shared/encryption'
|
9
|
+
|
10
|
+
module Livepeer
|
11
|
+
module Shared
|
12
|
+
# Parameters for the upload task
|
13
|
+
class Upload < Livepeer::Utils::FieldAugmented
|
14
|
+
extend T::Sig
|
15
|
+
|
16
|
+
|
17
|
+
field :encryption, T.nilable(Shared::Encryption), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
|
18
|
+
# ID of the original recorded session to avoid re-transcoding
|
19
|
+
# of the same content. Only used for import task.
|
20
|
+
#
|
21
|
+
field :recorded_session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordedSessionId') } }
|
22
|
+
# URL of the asset to "upload"
|
23
|
+
field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
24
|
+
|
25
|
+
|
26
|
+
sig { params(encryption: T.nilable(Shared::Encryption), recorded_session_id: T.nilable(String), url: T.nilable(String)).void }
|
27
|
+
def initialize(encryption: nil, recorded_session_id: nil, url: nil)
|
28
|
+
@encryption = encryption
|
29
|
+
@recorded_session_id = recorded_session_id
|
30
|
+
@url = url
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|