livepeer 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/lib/livepeer.rb +14 -12
  3. data/lib/sdk/asset.rb +81 -9
  4. data/lib/sdk/metrics.rb +12 -4
  5. data/lib/sdk/models/operations/addmultistreamtarget.rb +49 -0
  6. data/lib/sdk/models/operations/createsigningkey.rb +5 -5
  7. data/lib/sdk/models/operations/createstream.rb +4 -4
  8. data/lib/sdk/models/operations/deletewebhook.rb +1 -1
  9. data/lib/sdk/models/operations/get_session_id_clips.rb +4 -4
  10. data/lib/sdk/models/operations/get_stream_id_clips.rb +4 -4
  11. data/lib/sdk/models/operations/getassets.rb +4 -4
  12. data/lib/sdk/models/operations/getcreatormetrics.rb +4 -4
  13. data/lib/sdk/models/operations/getmultistreamtargets.rb +4 -4
  14. data/lib/sdk/models/operations/getpublictotalviewsmetrics.rb +5 -5
  15. data/lib/sdk/models/operations/getrecordedsessions.rb +4 -4
  16. data/lib/sdk/models/operations/getsessions.rb +4 -4
  17. data/lib/sdk/models/operations/getsigningkeys.rb +4 -4
  18. data/lib/sdk/models/operations/getstreams.rb +5 -5
  19. data/lib/sdk/models/operations/gettasks.rb +4 -4
  20. data/lib/sdk/models/operations/getviewershipsmetrics.rb +4 -4
  21. data/lib/sdk/models/operations/getwebhook.rb +1 -1
  22. data/lib/sdk/models/operations/getwebhooks.rb +4 -4
  23. data/lib/sdk/models/operations/post_clip.rb +5 -5
  24. data/lib/sdk/models/operations/removemultistreamtarget.rb +48 -0
  25. data/lib/sdk/models/operations/requestupload.rb +5 -5
  26. data/lib/sdk/models/operations/terminatestream.rb +45 -0
  27. data/lib/sdk/models/operations/{patch_asset_assetid_.rb → updateasset.rb} +2 -2
  28. data/lib/sdk/models/operations/updatewebhook.rb +1 -1
  29. data/lib/sdk/models/operations/uploadassetviaurl.rb +5 -5
  30. data/lib/sdk/models/shared/asset.rb +11 -17
  31. data/lib/sdk/models/shared/attestation.rb +5 -11
  32. data/lib/sdk/models/shared/encryption.rb +2 -6
  33. data/lib/sdk/models/shared/ffmpeg_profile.rb +6 -2
  34. data/lib/sdk/models/shared/ipfs_export_params.rb +5 -16
  35. data/lib/sdk/models/shared/multistream.rb +2 -50
  36. data/lib/sdk/models/shared/multistream_target.rb +3 -1
  37. data/lib/sdk/models/shared/new_asset_payload.rb +8 -3
  38. data/lib/sdk/models/shared/playback_info.rb +50 -4
  39. data/lib/sdk/models/shared/session.rb +3 -3
  40. data/lib/sdk/models/shared/stream.rb +5 -29
  41. data/lib/sdk/models/shared/stream_patch_payload.rb +5 -2
  42. data/lib/sdk/models/shared/target.rb +61 -0
  43. data/lib/sdk/models/shared/target_add_payload.rb +61 -0
  44. data/lib/sdk/models/shared/target_output.rb +35 -0
  45. data/lib/sdk/models/shared/task.rb +54 -231
  46. data/lib/sdk/models/shared/transcode_payload.rb +105 -0
  47. data/lib/sdk/models/shared/transcode_profile.rb +75 -0
  48. data/lib/sdk/multistream_target.rb +4 -1
  49. data/lib/sdk/sdk.rb +33 -3
  50. data/lib/sdk/sdkconfiguration.rb +3 -3
  51. data/lib/sdk/session.rb +40 -40
  52. data/lib/sdk/{access_control.rb → signing_key.rb} +15 -40
  53. data/lib/sdk/stream.rb +148 -7
  54. data/lib/sdk/task.rb +1 -1
  55. data/lib/sdk/transcode.rb +123 -1
  56. data/lib/sdk/webhook.rb +3 -1
  57. metadata +17 -15
  58. data/lib/sdk/models/shared/encryption_output.rb +0 -21
  59. data/lib/sdk/models/shared/nftmetadata.rb +0 -24
  60. data/lib/sdk/models/shared/nftmetadatatemplate.rb +0 -23
  61. data/lib/sdk/models/shared/signing_key_response_payload.rb +0 -43
  62. data/lib/sdk/models/shared/upload.rb +0 -34
  63. data/lib/sdk/models/shared/upload_output.rb +0 -34
@@ -7,8 +7,6 @@ require 'sorbet-runtime'
7
7
  require 'faraday'
8
8
  require_relative '../shared/encryption'
9
9
  require_relative '../shared/ipfs_export_params'
10
- require_relative '../shared/ffmpeg_profile'
11
- require_relative '../shared/upload'
12
10
 
13
11
  module Livepeer
14
12
  module Shared
@@ -16,10 +14,8 @@ module Livepeer
16
14
  class TaskType < T::Enum
17
15
  enums do
18
16
  UPLOAD = new('upload')
19
- IMPORT = new('import')
20
17
  EXPORT = new('export')
21
18
  EXPORT_DATA = new('export-data')
22
- TRANSCODE = new('transcode')
23
19
  TRANSCODE_FILE = new('transcode-file')
24
20
  CLIP = new('clip')
25
21
  end
@@ -27,23 +23,21 @@ module Livepeer
27
23
 
28
24
 
29
25
  # Parameters for the upload task
30
- class TaskUploadOutput < Livepeer::Utils::FieldAugmented
26
+ class Upload < Livepeer::Utils::FieldAugmented
31
27
  extend T::Sig
32
28
 
29
+ # Decides if the output video should include C2PA signature
30
+ field :c2pa, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('c2pa') } }
33
31
 
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') } }
32
+ field :encryption, T.nilable(Shared::Encryption), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
39
33
  # URL of the asset to "upload"
40
34
  field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
41
35
 
42
36
 
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)
37
+ sig { params(c2pa: T.nilable(T::Boolean), encryption: T.nilable(Shared::Encryption), url: T.nilable(String)).void }
38
+ def initialize(c2pa: nil, encryption: nil, url: nil)
39
+ @c2pa = c2pa
45
40
  @encryption = encryption
46
- @recorded_session_id = recorded_session_id
47
41
  @url = url
48
42
  end
49
43
  end
@@ -81,20 +75,6 @@ module Livepeer
81
75
  end
82
76
  end
83
77
 
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
78
  # Input video file to transcode
99
79
  class Input < Livepeer::Utils::FieldAugmented
100
80
  extend T::Sig
@@ -128,7 +108,7 @@ module Livepeer
128
108
  end
129
109
 
130
110
  # HLS output format
131
- class Hls < Livepeer::Utils::FieldAugmented
111
+ class TaskHls < Livepeer::Utils::FieldAugmented
132
112
  extend T::Sig
133
113
 
134
114
  # Path for the HLS output
@@ -142,7 +122,7 @@ module Livepeer
142
122
  end
143
123
 
144
124
  # MP4 output format
145
- class Mp4 < Livepeer::Utils::FieldAugmented
125
+ class TaskMp4 < Livepeer::Utils::FieldAugmented
146
126
  extend T::Sig
147
127
 
148
128
  # Path for the MP4 output
@@ -156,16 +136,16 @@ module Livepeer
156
136
  end
157
137
 
158
138
  # Output formats
159
- class Outputs < Livepeer::Utils::FieldAugmented
139
+ class TaskOutputs < Livepeer::Utils::FieldAugmented
160
140
  extend T::Sig
161
141
 
162
142
  # HLS output format
163
- field :hls, T.nilable(Shared::Hls), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hls') } }
143
+ field :hls, T.nilable(Shared::TaskHls), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hls') } }
164
144
  # MP4 output format
165
- field :mp4, T.nilable(Shared::Mp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4') } }
145
+ field :mp4, T.nilable(Shared::TaskMp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4') } }
166
146
 
167
147
 
168
- sig { params(hls: T.nilable(Shared::Hls), mp4: T.nilable(Shared::Mp4)).void }
148
+ sig { params(hls: T.nilable(Shared::TaskHls), mp4: T.nilable(Shared::TaskMp4)).void }
169
149
  def initialize(hls: nil, mp4: nil)
170
150
  @hls = hls
171
151
  @mp4 = mp4
@@ -176,14 +156,16 @@ module Livepeer
176
156
  class TranscodeFile < Livepeer::Utils::FieldAugmented
177
157
  extend T::Sig
178
158
 
159
+ # Decides if the output video should include C2PA signature
160
+ field :c2pa, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('c2pa') } }
179
161
 
180
162
  field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
181
163
  # Input video file to transcode
182
164
  field :input, T.nilable(Shared::Input), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('input') } }
183
165
  # Output formats
184
- field :outputs, T.nilable(Shared::Outputs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputs') } }
166
+ field :outputs, T.nilable(Shared::TaskOutputs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputs') } }
185
167
 
186
- field :profiles, T.nilable(T::Array[Shared::FfmpegProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
168
+ field :profiles, T.nilable(T::Array[Shared::TranscodeProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
187
169
  # Storage for the output files
188
170
  field :storage, T.nilable(Shared::TaskStorage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
189
171
  # How many seconds the duration of each output segment should
@@ -192,8 +174,9 @@ module Livepeer
192
174
  field :target_segment_size_secs, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targetSegmentSizeSecs') } }
193
175
 
194
176
 
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)
177
+ sig { params(c2pa: T.nilable(T::Boolean), creator_id: T.nilable(Object), input: T.nilable(Shared::Input), outputs: T.nilable(Shared::TaskOutputs), profiles: T.nilable(T::Array[Shared::TranscodeProfile]), storage: T.nilable(Shared::TaskStorage), target_segment_size_secs: T.nilable(Float)).void }
178
+ def initialize(c2pa: nil, creator_id: nil, input: nil, outputs: nil, profiles: nil, storage: nil, target_segment_size_secs: nil)
179
+ @c2pa = c2pa
197
180
  @creator_id = creator_id
198
181
  @input = input
199
182
  @outputs = outputs
@@ -203,35 +186,6 @@ module Livepeer
203
186
  end
204
187
  end
205
188
 
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
189
  # 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
190
  class ClipStrategy < Livepeer::Utils::FieldAugmented
237
191
  extend T::Sig
@@ -291,6 +245,32 @@ module Livepeer
291
245
  end
292
246
  end
293
247
 
248
+ # Parameters of the task
249
+ class Params < Livepeer::Utils::FieldAugmented
250
+ extend T::Sig
251
+
252
+
253
+ field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
254
+ # Parameters for the export task
255
+ field :export, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('export') } }
256
+ # Parameters for the export-data task
257
+ field :export_data, T.nilable(Shared::ExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
258
+ # Parameters for the transcode-file task
259
+ field :transcode_file, T.nilable(Shared::TranscodeFile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcode-file') } }
260
+ # Parameters for the upload task
261
+ field :upload, T.nilable(Shared::Upload), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
262
+
263
+
264
+ sig { params(clip: T.nilable(Shared::Clip), export: T.nilable(Object), export_data: T.nilable(Shared::ExportData), transcode_file: T.nilable(Shared::TranscodeFile), upload: T.nilable(Shared::Upload)).void }
265
+ def initialize(clip: nil, export: nil, export_data: nil, transcode_file: nil, upload: nil)
266
+ @clip = clip
267
+ @export = export
268
+ @export_data = export_data
269
+ @transcode_file = transcode_file
270
+ @upload = upload
271
+ end
272
+ end
273
+
294
274
  # TaskPhase - Phase of the task
295
275
  class TaskPhase < T::Enum
296
276
  enums do
@@ -403,20 +383,6 @@ module Livepeer
403
383
  end
404
384
  end
405
385
 
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
386
  # Output of the task
421
387
  class Output < Livepeer::Utils::FieldAugmented
422
388
  extend T::Sig
@@ -426,19 +392,13 @@ module Livepeer
426
392
  # Output of the export data task
427
393
  field :export_data, T.nilable(Shared::TaskExportData), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exportData') } }
428
394
  # 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
395
  field :upload, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('upload') } }
434
396
 
435
397
 
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)
398
+ sig { params(export: T.nilable(Shared::Export), export_data: T.nilable(Shared::TaskExportData), upload: T.nilable(T::Hash[Symbol, Object])).void }
399
+ def initialize(export: nil, export_data: nil, upload: nil)
438
400
  @export = export
439
401
  @export_data = export_data
440
- @import = import
441
- @transcode = transcode
442
402
  @upload = upload
443
403
  end
444
404
  end
@@ -447,8 +407,6 @@ module Livepeer
447
407
  class Task < Livepeer::Utils::FieldAugmented
448
408
  extend T::Sig
449
409
 
450
-
451
- field :clip, T.nilable(Shared::Clip), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('clip') } }
452
410
  # Timestamp (in milliseconds) at which task was created
453
411
  field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
454
412
  # Task ID
@@ -460,7 +418,9 @@ module Livepeer
460
418
  # ID of the output asset
461
419
  field :output_asset_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputAssetId') } }
462
420
  # Parameters of the task
463
- field :params, T.nilable(Shared::TaskParams), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('params') } }
421
+ field :params, T.nilable(Shared::Params), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('params') } }
422
+ # ID of the requester hash(IP + SALT + PlaybackId)
423
+ field :requester_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('requesterId') } }
464
424
  # Timestamp (in milliseconds) at which the task was scheduled for
465
425
  # execution (e.g. after file upload finished).
466
426
  #
@@ -471,156 +431,19 @@ module Livepeer
471
431
  field :type, T.nilable(Shared::TaskType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::TaskType, true) } }
472
432
 
473
433
 
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
434
+ sig { params(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::Params), requester_id: T.nilable(String), scheduled_at: T.nilable(Float), status: T.nilable(Shared::TaskStatus), type: T.nilable(Shared::TaskType)).void }
435
+ def initialize(created_at: nil, id: nil, input_asset_id: nil, output: nil, output_asset_id: nil, params: nil, requester_id: nil, scheduled_at: nil, status: nil, type: nil)
477
436
  @created_at = created_at
478
437
  @id = id
479
438
  @input_asset_id = input_asset_id
480
439
  @output = output
481
440
  @output_asset_id = output_asset_id
482
441
  @params = params
442
+ @requester_id = requester_id
483
443
  @scheduled_at = scheduled_at
484
444
  @status = status
485
445
  @type = type
486
446
  end
487
447
  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
448
  end
626
449
  end
@@ -0,0 +1,105 @@
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
+
9
+ module Livepeer
10
+ module Shared
11
+ # HLS output format
12
+ class Hls < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Path for the HLS output
16
+ field :path, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
17
+
18
+
19
+ sig { params(path: String).void }
20
+ def initialize(path: nil)
21
+ @path = path
22
+ end
23
+ end
24
+
25
+ # MP4 output format
26
+ class Mp4 < Livepeer::Utils::FieldAugmented
27
+ extend T::Sig
28
+
29
+ # Path for the MP4 output
30
+ field :path, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
31
+
32
+
33
+ sig { params(path: String).void }
34
+ def initialize(path: nil)
35
+ @path = path
36
+ end
37
+ end
38
+
39
+ # FMP4 output format
40
+ class Fmp4 < Livepeer::Utils::FieldAugmented
41
+ extend T::Sig
42
+
43
+ # Path for the FMP4 output
44
+ field :path, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('path') } }
45
+
46
+
47
+ sig { params(path: String).void }
48
+ def initialize(path: nil)
49
+ @path = path
50
+ end
51
+ end
52
+
53
+ # Output formats
54
+ class Outputs < Livepeer::Utils::FieldAugmented
55
+ extend T::Sig
56
+
57
+ # FMP4 output format
58
+ field :fmp4, T.nilable(Shared::Fmp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fmp4') } }
59
+ # HLS output format
60
+ field :hls, T.nilable(Shared::Hls), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hls') } }
61
+ # MP4 output format
62
+ field :mp4, T.nilable(Shared::Mp4), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4') } }
63
+
64
+
65
+ sig { params(fmp4: T.nilable(Shared::Fmp4), hls: T.nilable(Shared::Hls), mp4: T.nilable(Shared::Mp4)).void }
66
+ def initialize(fmp4: nil, hls: nil, mp4: nil)
67
+ @fmp4 = fmp4
68
+ @hls = hls
69
+ @mp4 = mp4
70
+ end
71
+ end
72
+
73
+
74
+ class TranscodePayload < Livepeer::Utils::FieldAugmented
75
+ extend T::Sig
76
+
77
+
78
+ field :input, Object, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('input') } }
79
+ # Output formats
80
+ field :outputs, Shared::Outputs, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outputs') } }
81
+
82
+ field :storage, Object, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
83
+ # Decides if the output video should include C2PA signature
84
+ field :c2pa, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('c2pa') } }
85
+
86
+ field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
87
+
88
+ field :profiles, T.nilable(T::Array[Shared::TranscodeProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
89
+ # How many seconds the duration of each output segment should be
90
+ field :target_segment_size_secs, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targetSegmentSizeSecs') } }
91
+
92
+
93
+ sig { params(input: Object, outputs: Shared::Outputs, storage: Object, c2pa: T.nilable(T::Boolean), creator_id: T.nilable(Object), profiles: T.nilable(T::Array[Shared::TranscodeProfile]), target_segment_size_secs: T.nilable(Float)).void }
94
+ def initialize(input: nil, outputs: nil, storage: nil, c2pa: nil, creator_id: nil, profiles: nil, target_segment_size_secs: nil)
95
+ @input = input
96
+ @outputs = outputs
97
+ @storage = storage
98
+ @c2pa = c2pa
99
+ @creator_id = creator_id
100
+ @profiles = profiles
101
+ @target_segment_size_secs = target_segment_size_secs
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,75 @@
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
+
9
+ module Livepeer
10
+ module Shared
11
+
12
+ class TranscodeProfileProfile < T::Enum
13
+ enums do
14
+ H264_BASELINE = new('H264Baseline')
15
+ H264_MAIN = new('H264Main')
16
+ H264_HIGH = new('H264High')
17
+ H264_CONSTRAINED_HIGH = new('H264ConstrainedHigh')
18
+ end
19
+ end
20
+
21
+
22
+
23
+ class TranscodeProfileEncoder < T::Enum
24
+ enums do
25
+ H264 = new('h264')
26
+ HEVC = new('hevc')
27
+ VP8 = new('vp8')
28
+ VP9 = new('vp9')
29
+ end
30
+ end
31
+
32
+
33
+ # Transcode API profile
34
+ class TranscodeProfile < Livepeer::Utils::FieldAugmented
35
+ extend T::Sig
36
+
37
+
38
+ field :bitrate, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('bitrate') } }
39
+
40
+ field :encoder, T.nilable(Shared::TranscodeProfileEncoder), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encoder'), 'decoder': Utils.enum_from_string(Shared::TranscodeProfileEncoder, true) } }
41
+
42
+ field :fps, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fps') } }
43
+
44
+ field :fps_den, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fpsDen') } }
45
+
46
+ field :gop, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('gop') } }
47
+
48
+ field :height, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('height') } }
49
+
50
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
51
+
52
+ field :profile, T.nilable(Shared::TranscodeProfileProfile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile'), 'decoder': Utils.enum_from_string(Shared::TranscodeProfileProfile, true) } }
53
+ # Restricts the size of the output video using the constant quality feature. Increasing this value will result in a lower quality video. Note that this parameter might not work if the transcoder lacks support for it.
54
+ #
55
+ field :quality, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('quality') } }
56
+
57
+ field :width, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('width') } }
58
+
59
+
60
+ sig { params(bitrate: Integer, encoder: T.nilable(Shared::TranscodeProfileEncoder), fps: T.nilable(Integer), fps_den: T.nilable(Integer), gop: T.nilable(String), height: T.nilable(Integer), name: T.nilable(String), profile: T.nilable(Shared::TranscodeProfileProfile), quality: T.nilable(Integer), width: T.nilable(Integer)).void }
61
+ def initialize(bitrate: nil, encoder: nil, fps: nil, fps_den: nil, gop: nil, height: nil, name: nil, profile: nil, quality: nil, width: nil)
62
+ @bitrate = bitrate
63
+ @encoder = encoder
64
+ @fps = fps
65
+ @fps_den = fps_den
66
+ @gop = gop
67
+ @height = height
68
+ @name = name
69
+ @profile = profile
70
+ @quality = quality
71
+ @width = width
72
+ end
73
+ end
74
+ end
75
+ end
@@ -40,7 +40,7 @@ module Livepeer
40
40
  if r.status == 200
41
41
  if Utils.match_content_type(content_type, 'application/json')
42
42
  out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::MultistreamTarget])
43
- res.data = out
43
+ res.classes = out
44
44
  end
45
45
  end
46
46
  res
@@ -88,6 +88,9 @@ module Livepeer
88
88
  sig { params(id: String).returns(Utils::FieldAugmented) }
89
89
  def delete(id)
90
90
  # delete - Delete a multistream target
91
+ # Make sure to remove any references to the target on existing
92
+ # streams before actually deleting it from the API.
93
+ #
91
94
  request = Operations::DeleteMultistreamTargetRequest.new(
92
95
 
93
96
  id: id