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,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 UploadOutput < Livepeer::Utils::FieldAugmented
|
14
|
+
extend T::Sig
|
15
|
+
|
16
|
+
|
17
|
+
field :encryption, T.nilable(Shared::EncryptionOutput), { '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::EncryptionOutput), 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
|
@@ -0,0 +1,38 @@
|
|
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
|
+
# An individual metric about usage of a user.
|
12
|
+
#
|
13
|
+
class UsageMetric < Livepeer::Utils::FieldAugmented
|
14
|
+
extend T::Sig
|
15
|
+
|
16
|
+
# The creator ID associated with the metric
|
17
|
+
field :creator_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('CreatorID') } }
|
18
|
+
# The number of minutes of delivery usage
|
19
|
+
field :delivery_usage_mins, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('DeliveryUsageMins') } }
|
20
|
+
# The number of minutes of storage usage
|
21
|
+
field :storage_usage_mins, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('StorageUsageMins') } }
|
22
|
+
# The number of minutes of total usage
|
23
|
+
field :total_usage_mins, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('TotalUsageMins') } }
|
24
|
+
# The user ID associated with the metric
|
25
|
+
field :user_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('UserID') } }
|
26
|
+
|
27
|
+
|
28
|
+
sig { params(creator_id: String, delivery_usage_mins: Float, storage_usage_mins: Float, total_usage_mins: Float, user_id: String).void }
|
29
|
+
def initialize(creator_id: nil, delivery_usage_mins: nil, storage_usage_mins: nil, total_usage_mins: nil, user_id: nil)
|
30
|
+
@creator_id = creator_id
|
31
|
+
@delivery_usage_mins = delivery_usage_mins
|
32
|
+
@storage_usage_mins = storage_usage_mins
|
33
|
+
@total_usage_mins = total_usage_mins
|
34
|
+
@user_id = user_id
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,97 @@
|
|
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
|
+
# An individual metric about viewership of an asset. Necessarily, at least
|
12
|
+
# 1 of playbackId and dStorageUrl will be present, depending on the query.
|
13
|
+
#
|
14
|
+
class ViewershipMetric < Livepeer::Utils::FieldAugmented
|
15
|
+
extend T::Sig
|
16
|
+
|
17
|
+
# The total playtime in minutes for the asset
|
18
|
+
field :playtime_mins, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playtimeMins') } }
|
19
|
+
# The number of views for the asset
|
20
|
+
field :view_count, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('viewCount') } }
|
21
|
+
# The browser used by the viewer
|
22
|
+
field :browser, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('browser') } }
|
23
|
+
# The browser engine used by the viewer's browser
|
24
|
+
field :browser_engine, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('browserEngine') } }
|
25
|
+
# The continent where the viewer is located
|
26
|
+
field :continent, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('continent') } }
|
27
|
+
# The country where the viewer is located
|
28
|
+
field :country, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('country') } }
|
29
|
+
# The CPU used by the viewer's device
|
30
|
+
field :cpu, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('cpu') } }
|
31
|
+
# The ID of the creator associated with the metric
|
32
|
+
field :creator_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
|
33
|
+
# The device used by the viewer
|
34
|
+
field :device, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('device') } }
|
35
|
+
# The type of the device used by the viewer
|
36
|
+
field :device_type, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('deviceType') } }
|
37
|
+
# The URL of the distributed storage used for the asset
|
38
|
+
field :d_storage_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('dStorageUrl') } }
|
39
|
+
# The error rate for the asset
|
40
|
+
field :error_rate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('errorRate') } }
|
41
|
+
# The percentage of sessions that existed before the asset started
|
42
|
+
# playing
|
43
|
+
#
|
44
|
+
field :exits_before_start, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('exitsBeforeStart') } }
|
45
|
+
# Geographic encoding of the viewers location. Accurate to 3 digits.
|
46
|
+
field :geohas, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('geohas') } }
|
47
|
+
# The operating system used by the viewer
|
48
|
+
field :os, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('os') } }
|
49
|
+
# The playback ID associated with the metric
|
50
|
+
field :playback_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
|
51
|
+
# The rebuffering ratio for the asset
|
52
|
+
field :rebuffer_ratio, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('rebufferRatio') } }
|
53
|
+
# The subdivision (e.g., state or province) where the viewer is
|
54
|
+
# located
|
55
|
+
#
|
56
|
+
field :subdivision, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('subdivision') } }
|
57
|
+
# Timestamp (in milliseconds) when the metric was recorded. If the
|
58
|
+
# query contains a time step, this timestamp will point to the
|
59
|
+
# beginning of the time step period.
|
60
|
+
#
|
61
|
+
field :timestamp, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('timestamp') } }
|
62
|
+
# The timezone where the viewer is located
|
63
|
+
field :timezone, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('timezone') } }
|
64
|
+
# The time-to-first-frame (TTFF) in milliseconds
|
65
|
+
field :ttff_ms, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ttffMs') } }
|
66
|
+
# The ID of the viewer associated with the metric
|
67
|
+
field :viewer_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('viewerId') } }
|
68
|
+
|
69
|
+
|
70
|
+
sig { params(playtime_mins: Float, view_count: Integer, browser: T.nilable(String), browser_engine: T.nilable(String), continent: T.nilable(String), country: T.nilable(String), cpu: T.nilable(String), creator_id: T.nilable(String), device: T.nilable(String), device_type: T.nilable(String), d_storage_url: T.nilable(String), error_rate: T.nilable(Float), exits_before_start: T.nilable(Float), geohas: T.nilable(String), os: T.nilable(String), playback_id: T.nilable(String), rebuffer_ratio: T.nilable(Float), subdivision: T.nilable(String), timestamp: T.nilable(Float), timezone: T.nilable(String), ttff_ms: T.nilable(Float), viewer_id: T.nilable(String)).void }
|
71
|
+
def initialize(playtime_mins: nil, view_count: nil, browser: nil, browser_engine: nil, continent: nil, country: nil, cpu: nil, creator_id: nil, device: nil, device_type: nil, d_storage_url: nil, error_rate: nil, exits_before_start: nil, geohas: nil, os: nil, playback_id: nil, rebuffer_ratio: nil, subdivision: nil, timestamp: nil, timezone: nil, ttff_ms: nil, viewer_id: nil)
|
72
|
+
@playtime_mins = playtime_mins
|
73
|
+
@view_count = view_count
|
74
|
+
@browser = browser
|
75
|
+
@browser_engine = browser_engine
|
76
|
+
@continent = continent
|
77
|
+
@country = country
|
78
|
+
@cpu = cpu
|
79
|
+
@creator_id = creator_id
|
80
|
+
@device = device
|
81
|
+
@device_type = device_type
|
82
|
+
@d_storage_url = d_storage_url
|
83
|
+
@error_rate = error_rate
|
84
|
+
@exits_before_start = exits_before_start
|
85
|
+
@geohas = geohas
|
86
|
+
@os = os
|
87
|
+
@playback_id = playback_id
|
88
|
+
@rebuffer_ratio = rebuffer_ratio
|
89
|
+
@subdivision = subdivision
|
90
|
+
@timestamp = timestamp
|
91
|
+
@timezone = timezone
|
92
|
+
@ttff_ms = ttff_ms
|
93
|
+
@viewer_id = viewer_id
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,112 @@
|
|
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 Events < T::Enum
|
13
|
+
enums do
|
14
|
+
STREAM_STARTED = new('stream.started')
|
15
|
+
STREAM_DETECTION = new('stream.detection')
|
16
|
+
STREAM_IDLE = new('stream.idle')
|
17
|
+
RECORDING_READY = new('recording.ready')
|
18
|
+
RECORDING_STARTED = new('recording.started')
|
19
|
+
RECORDING_WAITING = new('recording.waiting')
|
20
|
+
MULTISTREAM_CONNECTED = new('multistream.connected')
|
21
|
+
MULTISTREAM_ERROR = new('multistream.error')
|
22
|
+
MULTISTREAM_DISCONNECTED = new('multistream.disconnected')
|
23
|
+
PLAYBACK_USER_NEW = new('playback.user.new')
|
24
|
+
PLAYBACK_ACCESS_CONTROL = new('playback.accessControl')
|
25
|
+
ASSET_CREATED = new('asset.created')
|
26
|
+
ASSET_UPDATED = new('asset.updated')
|
27
|
+
ASSET_FAILED = new('asset.failed')
|
28
|
+
ASSET_READY = new('asset.ready')
|
29
|
+
ASSET_DELETED = new('asset.deleted')
|
30
|
+
TASK_SPAWNED = new('task.spawned')
|
31
|
+
TASK_UPDATED = new('task.updated')
|
32
|
+
TASK_COMPLETED = new('task.completed')
|
33
|
+
TASK_FAILED = new('task.failed')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
# failure timestamp and error message with status code
|
39
|
+
class LastFailure < Livepeer::Utils::FieldAugmented
|
40
|
+
extend T::Sig
|
41
|
+
|
42
|
+
# Webhook failure error message
|
43
|
+
field :error, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('error') } }
|
44
|
+
# Webhook failure response
|
45
|
+
field :response, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('response') } }
|
46
|
+
# Webhook failure status code
|
47
|
+
field :status_code, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('statusCode') } }
|
48
|
+
# Timestamp (in milliseconds) at which the webhook last failed
|
49
|
+
field :timestamp, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('timestamp') } }
|
50
|
+
|
51
|
+
|
52
|
+
sig { params(error: T.nilable(String), response: T.nilable(String), status_code: T.nilable(Float), timestamp: T.nilable(Float)).void }
|
53
|
+
def initialize(error: nil, response: nil, status_code: nil, timestamp: nil)
|
54
|
+
@error = error
|
55
|
+
@response = response
|
56
|
+
@status_code = status_code
|
57
|
+
@timestamp = timestamp
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# status of webhook
|
62
|
+
class Status < Livepeer::Utils::FieldAugmented
|
63
|
+
extend T::Sig
|
64
|
+
|
65
|
+
# failure timestamp and error message with status code
|
66
|
+
field :last_failure, T.nilable(Shared::LastFailure), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('lastFailure') } }
|
67
|
+
# Timestamp (in milliseconds) at which the webhook last was
|
68
|
+
# triggered
|
69
|
+
#
|
70
|
+
field :last_triggered_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('lastTriggeredAt') } }
|
71
|
+
|
72
|
+
|
73
|
+
sig { params(last_failure: T.nilable(Shared::LastFailure), last_triggered_at: T.nilable(Float)).void }
|
74
|
+
def initialize(last_failure: nil, last_triggered_at: nil)
|
75
|
+
@last_failure = last_failure
|
76
|
+
@last_triggered_at = last_triggered_at
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
class Webhook < Livepeer::Utils::FieldAugmented
|
82
|
+
extend T::Sig
|
83
|
+
|
84
|
+
|
85
|
+
field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
|
86
|
+
|
87
|
+
field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
|
88
|
+
# Timestamp (in milliseconds) at which stream object was created
|
89
|
+
field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
|
90
|
+
|
91
|
+
field :events, T.nilable(T::Array[Shared::Events]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('events') } }
|
92
|
+
|
93
|
+
field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
|
94
|
+
# status of webhook
|
95
|
+
field :status, T.nilable(Shared::Status), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('status') } }
|
96
|
+
# streamId of the stream on which the webhook is applied
|
97
|
+
field :stream_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('streamId') } }
|
98
|
+
|
99
|
+
|
100
|
+
sig { params(name: String, url: String, created_at: T.nilable(Float), events: T.nilable(T::Array[Shared::Events]), id: T.nilable(String), status: T.nilable(Shared::Status), stream_id: T.nilable(String)).void }
|
101
|
+
def initialize(name: nil, url: nil, created_at: nil, events: nil, id: nil, status: nil, stream_id: nil)
|
102
|
+
@name = name
|
103
|
+
@url = url
|
104
|
+
@created_at = created_at
|
105
|
+
@events = events
|
106
|
+
@id = id
|
107
|
+
@status = status
|
108
|
+
@stream_id = stream_id
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,205 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'faraday'
|
7
|
+
require 'faraday/multipart'
|
8
|
+
require 'sorbet-runtime'
|
9
|
+
|
10
|
+
module Livepeer
|
11
|
+
extend T::Sig
|
12
|
+
class MultistreamTarget
|
13
|
+
|
14
|
+
extend T::Sig
|
15
|
+
sig { params(sdk_config: SDKConfiguration).void }
|
16
|
+
def initialize(sdk_config)
|
17
|
+
@sdk_configuration = sdk_config
|
18
|
+
end
|
19
|
+
|
20
|
+
sig { returns(Utils::FieldAugmented) }
|
21
|
+
def get_all
|
22
|
+
# get_all - Retrieve Multistream Targets
|
23
|
+
url, params = @sdk_configuration.get_server_details
|
24
|
+
base_url = Utils.template_url(url, params)
|
25
|
+
url = "#{base_url}/multistream/target"
|
26
|
+
headers = {}
|
27
|
+
headers['Accept'] = 'application/json'
|
28
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
29
|
+
|
30
|
+
r = @sdk_configuration.client.get(url) do |req|
|
31
|
+
req.headers = headers
|
32
|
+
Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
|
33
|
+
end
|
34
|
+
|
35
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
36
|
+
|
37
|
+
res = Operations::GetMultistreamTargetsResponse.new(
|
38
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
39
|
+
)
|
40
|
+
if r.status == 200
|
41
|
+
if Utils.match_content_type(content_type, 'application/json')
|
42
|
+
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::MultistreamTarget])
|
43
|
+
res.data = out
|
44
|
+
end
|
45
|
+
end
|
46
|
+
res
|
47
|
+
end
|
48
|
+
|
49
|
+
sig { params(request: Shared::MultistreamTargetInput).returns(Utils::FieldAugmented) }
|
50
|
+
def create(request)
|
51
|
+
# create - Create a multistream target
|
52
|
+
url, params = @sdk_configuration.get_server_details
|
53
|
+
base_url = Utils.template_url(url, params)
|
54
|
+
url = "#{base_url}/multistream/target"
|
55
|
+
headers = {}
|
56
|
+
req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
|
57
|
+
headers['content-type'] = req_content_type
|
58
|
+
raise StandardError, 'request body is required' if data.nil? && form.nil?
|
59
|
+
headers['Accept'] = 'application/json'
|
60
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
61
|
+
|
62
|
+
r = @sdk_configuration.client.post(url) do |req|
|
63
|
+
req.headers = headers
|
64
|
+
Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
|
65
|
+
if form
|
66
|
+
req.body = Utils.encode_form(form)
|
67
|
+
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
68
|
+
req.body = URI.encode_www_form(data)
|
69
|
+
else
|
70
|
+
req.body = data
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
75
|
+
|
76
|
+
res = Operations::CreateMultistreamTargetResponse.new(
|
77
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
78
|
+
)
|
79
|
+
if r.status == 201
|
80
|
+
if Utils.match_content_type(content_type, 'application/json')
|
81
|
+
out = Utils.unmarshal_complex(r.env.response_body, T::Array[Shared::MultistreamTarget])
|
82
|
+
res.classes = out
|
83
|
+
end
|
84
|
+
end
|
85
|
+
res
|
86
|
+
end
|
87
|
+
|
88
|
+
sig { params(id: String).returns(Utils::FieldAugmented) }
|
89
|
+
def delete(id)
|
90
|
+
# delete - Delete a multistream target
|
91
|
+
request = Operations::DeleteMultistreamTargetRequest.new(
|
92
|
+
|
93
|
+
id: id
|
94
|
+
)
|
95
|
+
url, params = @sdk_configuration.get_server_details
|
96
|
+
base_url = Utils.template_url(url, params)
|
97
|
+
url = Utils.generate_url(
|
98
|
+
Operations::DeleteMultistreamTargetRequest,
|
99
|
+
base_url,
|
100
|
+
'/multistream/target/{id}',
|
101
|
+
request
|
102
|
+
)
|
103
|
+
headers = {}
|
104
|
+
headers['Accept'] = '*/*'
|
105
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
106
|
+
|
107
|
+
r = @sdk_configuration.client.delete(url) do |req|
|
108
|
+
req.headers = headers
|
109
|
+
Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
|
110
|
+
end
|
111
|
+
|
112
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
113
|
+
|
114
|
+
res = Operations::DeleteMultistreamTargetResponse.new(
|
115
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
116
|
+
)
|
117
|
+
if r.status == 204
|
118
|
+
end
|
119
|
+
res
|
120
|
+
end
|
121
|
+
|
122
|
+
sig { params(id: String).returns(Utils::FieldAugmented) }
|
123
|
+
def get(id)
|
124
|
+
# get - Retrieve a multistream target
|
125
|
+
request = Operations::GetMultistreamTargetRequest.new(
|
126
|
+
|
127
|
+
id: id
|
128
|
+
)
|
129
|
+
url, params = @sdk_configuration.get_server_details
|
130
|
+
base_url = Utils.template_url(url, params)
|
131
|
+
url = Utils.generate_url(
|
132
|
+
Operations::GetMultistreamTargetRequest,
|
133
|
+
base_url,
|
134
|
+
'/multistream/target/{id}',
|
135
|
+
request
|
136
|
+
)
|
137
|
+
headers = {}
|
138
|
+
headers['Accept'] = 'application/json'
|
139
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
140
|
+
|
141
|
+
r = @sdk_configuration.client.get(url) do |req|
|
142
|
+
req.headers = headers
|
143
|
+
Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
|
144
|
+
end
|
145
|
+
|
146
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
147
|
+
|
148
|
+
res = Operations::GetMultistreamTargetResponse.new(
|
149
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
150
|
+
)
|
151
|
+
if r.status == 200
|
152
|
+
if Utils.match_content_type(content_type, 'application/json')
|
153
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::MultistreamTarget)
|
154
|
+
res.multistream_target = out
|
155
|
+
end
|
156
|
+
end
|
157
|
+
res
|
158
|
+
end
|
159
|
+
|
160
|
+
sig { params(id: String, multistream_target_patch_payload: Shared::MultistreamTargetPatchPayload).returns(Utils::FieldAugmented) }
|
161
|
+
def update(id, multistream_target_patch_payload)
|
162
|
+
# update - Update Multistream Target
|
163
|
+
request = Operations::UpdateMultistreamTargetRequest.new(
|
164
|
+
|
165
|
+
id: id,
|
166
|
+
multistream_target_patch_payload: multistream_target_patch_payload
|
167
|
+
)
|
168
|
+
url, params = @sdk_configuration.get_server_details
|
169
|
+
base_url = Utils.template_url(url, params)
|
170
|
+
url = Utils.generate_url(
|
171
|
+
Operations::UpdateMultistreamTargetRequest,
|
172
|
+
base_url,
|
173
|
+
'/multistream/target/{id}',
|
174
|
+
request
|
175
|
+
)
|
176
|
+
headers = {}
|
177
|
+
req_content_type, data, form = Utils.serialize_request_body(request, :multistream_target_patch_payload, :json)
|
178
|
+
headers['content-type'] = req_content_type
|
179
|
+
raise StandardError, 'request body is required' if data.nil? && form.nil?
|
180
|
+
headers['Accept'] = '*/*'
|
181
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
182
|
+
|
183
|
+
r = @sdk_configuration.client.patch(url) do |req|
|
184
|
+
req.headers = headers
|
185
|
+
Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
|
186
|
+
if form
|
187
|
+
req.body = Utils.encode_form(form)
|
188
|
+
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
189
|
+
req.body = URI.encode_www_form(data)
|
190
|
+
else
|
191
|
+
req.body = data
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
196
|
+
|
197
|
+
res = Operations::UpdateMultistreamTargetResponse.new(
|
198
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
199
|
+
)
|
200
|
+
if r.status == 204
|
201
|
+
end
|
202
|
+
res
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
data/lib/sdk/playback.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'faraday'
|
7
|
+
require 'faraday/multipart'
|
8
|
+
require 'sorbet-runtime'
|
9
|
+
|
10
|
+
module Livepeer
|
11
|
+
extend T::Sig
|
12
|
+
class Playback
|
13
|
+
|
14
|
+
extend T::Sig
|
15
|
+
sig { params(sdk_config: SDKConfiguration).void }
|
16
|
+
def initialize(sdk_config)
|
17
|
+
@sdk_configuration = sdk_config
|
18
|
+
end
|
19
|
+
|
20
|
+
sig { params(id: String).returns(Utils::FieldAugmented) }
|
21
|
+
def get(id)
|
22
|
+
# get - Retrieve Playback Info
|
23
|
+
request = Operations::GetPlaybackInfoRequest.new(
|
24
|
+
|
25
|
+
id: id
|
26
|
+
)
|
27
|
+
url, params = @sdk_configuration.get_server_details
|
28
|
+
base_url = Utils.template_url(url, params)
|
29
|
+
url = Utils.generate_url(
|
30
|
+
Operations::GetPlaybackInfoRequest,
|
31
|
+
base_url,
|
32
|
+
'/playback/{id}',
|
33
|
+
request
|
34
|
+
)
|
35
|
+
headers = {}
|
36
|
+
headers['Accept'] = 'application/json'
|
37
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
38
|
+
|
39
|
+
r = @sdk_configuration.client.get(url) do |req|
|
40
|
+
req.headers = headers
|
41
|
+
Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
|
42
|
+
end
|
43
|
+
|
44
|
+
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
45
|
+
|
46
|
+
res = Operations::GetPlaybackInfoResponse.new(
|
47
|
+
status_code: r.status, content_type: content_type, raw_response: r
|
48
|
+
)
|
49
|
+
if r.status == 200
|
50
|
+
if Utils.match_content_type(content_type, 'application/json')
|
51
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::PlaybackInfo)
|
52
|
+
res.playback_info = out
|
53
|
+
end
|
54
|
+
elsif r.status == 404
|
55
|
+
if Utils.match_content_type(content_type, 'application/json')
|
56
|
+
out = Utils.unmarshal_complex(r.env.response_body, Shared::Error)
|
57
|
+
res.error = out
|
58
|
+
end
|
59
|
+
end
|
60
|
+
res
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/lib/sdk/sdk.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
|
2
|
+
|
3
|
+
# typed: true
|
4
|
+
# frozen_string_literal: true
|
5
|
+
|
6
|
+
require 'faraday'
|
7
|
+
require 'faraday/multipart'
|
8
|
+
require 'sorbet-runtime'
|
9
|
+
module Livepeer
|
10
|
+
extend T::Sig
|
11
|
+
|
12
|
+
class SDK
|
13
|
+
extend T::Sig
|
14
|
+
|
15
|
+
attr_accessor :stream, :multistream_target, :webhook, :asset, :metrics, :session, :access_control, :task, :transcode, :playback
|
16
|
+
|
17
|
+
attr_accessor :security, :language, :sdk_version, :gen_version
|
18
|
+
|
19
|
+
sig do
|
20
|
+
params(security: T.nilable(Shared::Security),
|
21
|
+
server_idx: Integer,
|
22
|
+
server_url: String,
|
23
|
+
url_params: T::Hash[Symbol, String],
|
24
|
+
client: Faraday::Request).void
|
25
|
+
end
|
26
|
+
def initialize(security: nil,
|
27
|
+
server_idx: nil,
|
28
|
+
server_url: nil,
|
29
|
+
url_params: nil,
|
30
|
+
client: nil)
|
31
|
+
|
32
|
+
## Instantiates the SDK configuring it with the provided parameters.
|
33
|
+
# @param [Shared::Security] security The security details required for authentication
|
34
|
+
# @param [Integer] server_idx The index of the server to use for all operations
|
35
|
+
# @param [String] server_url The server URL to use for all operations
|
36
|
+
# @param [Hash<Symbol, String>] url_params Parameters to optionally template the server URL with
|
37
|
+
# @param [Faraday::Request] client The faraday HTTP client to use for all operations
|
38
|
+
|
39
|
+
if client.nil?
|
40
|
+
client = Faraday.new(request: {
|
41
|
+
params_encoder: Faraday::FlatParamsEncoder
|
42
|
+
}) do |f|
|
43
|
+
f.request :multipart, {}
|
44
|
+
# f.response :logger
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
if !server_url.nil?
|
49
|
+
if !url_params.nil?
|
50
|
+
server_url = Utils.template_url(server_url, url_params)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
server_idx = 0 if server_idx.nil?
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
@sdk_configuration = SDKConfiguration.new(client, security, server_url, server_idx)
|
58
|
+
init_sdks
|
59
|
+
end
|
60
|
+
|
61
|
+
sig { params(params: T.nilable(T::Hash[Symbol, String])).void }
|
62
|
+
def config_server_url(params)
|
63
|
+
if !params.nil?
|
64
|
+
@server_url = Utils.template_url(@server_url, params)
|
65
|
+
end
|
66
|
+
init_sdks
|
67
|
+
end
|
68
|
+
|
69
|
+
sig { params(security: Shared::Security).void }
|
70
|
+
def config_security(security)
|
71
|
+
@security = security
|
72
|
+
@sdk_configuration.security = security
|
73
|
+
end
|
74
|
+
|
75
|
+
sig { void }
|
76
|
+
def init_sdks
|
77
|
+
@stream = Stream.new(@sdk_configuration)
|
78
|
+
@multistream_target = MultistreamTarget.new(@sdk_configuration)
|
79
|
+
@webhook = Webhook.new(@sdk_configuration)
|
80
|
+
@asset = Asset.new(@sdk_configuration)
|
81
|
+
@metrics = Metrics.new(@sdk_configuration)
|
82
|
+
@session = Session.new(@sdk_configuration)
|
83
|
+
@access_control = AccessControl.new(@sdk_configuration)
|
84
|
+
@task = Task.new(@sdk_configuration)
|
85
|
+
@transcode = Transcode.new(@sdk_configuration)
|
86
|
+
@playback = Playback.new(@sdk_configuration)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|