livepeer 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/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
|