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.
Files changed (91) hide show
  1. checksums.yaml +7 -0
  2. data/lib/livepeer.rb +96 -0
  3. data/lib/sdk/access_control.rb +195 -0
  4. data/lib/sdk/asset.rb +248 -0
  5. data/lib/sdk/metrics.rb +158 -0
  6. data/lib/sdk/models/operations/createmultistreamtarget.rb +34 -0
  7. data/lib/sdk/models/operations/createsigningkey.rb +35 -0
  8. data/lib/sdk/models/operations/createstream.rb +34 -0
  9. data/lib/sdk/models/operations/createwebhook.rb +35 -0
  10. data/lib/sdk/models/operations/deleteasset.rb +45 -0
  11. data/lib/sdk/models/operations/deletemultistreamtarget.rb +45 -0
  12. data/lib/sdk/models/operations/deletesigningkey.rb +45 -0
  13. data/lib/sdk/models/operations/deletestream.rb +45 -0
  14. data/lib/sdk/models/operations/deletewebhook.rb +49 -0
  15. data/lib/sdk/models/operations/get_session_id_clips.rb +48 -0
  16. data/lib/sdk/models/operations/get_stream_id_clips.rb +48 -0
  17. data/lib/sdk/models/operations/getasset.rb +49 -0
  18. data/lib/sdk/models/operations/getassets.rb +34 -0
  19. data/lib/sdk/models/operations/getcreatormetrics.rb +98 -0
  20. data/lib/sdk/models/operations/getmultistreamtarget.rb +49 -0
  21. data/lib/sdk/models/operations/getmultistreamtargets.rb +34 -0
  22. data/lib/sdk/models/operations/getplaybackinfo.rb +53 -0
  23. data/lib/sdk/models/operations/getpublictotalviewsmetrics.rb +76 -0
  24. data/lib/sdk/models/operations/getrecordedsessions.rb +53 -0
  25. data/lib/sdk/models/operations/getsession.rb +49 -0
  26. data/lib/sdk/models/operations/getsessions.rb +34 -0
  27. data/lib/sdk/models/operations/getsigningkey.rb +49 -0
  28. data/lib/sdk/models/operations/getsigningkeys.rb +34 -0
  29. data/lib/sdk/models/operations/getstream.rb +49 -0
  30. data/lib/sdk/models/operations/getstreams.rb +48 -0
  31. data/lib/sdk/models/operations/gettask.rb +49 -0
  32. data/lib/sdk/models/operations/gettasks.rb +34 -0
  33. data/lib/sdk/models/operations/getusagemetrics.rb +72 -0
  34. data/lib/sdk/models/operations/getviewershipsmetrics.rb +107 -0
  35. data/lib/sdk/models/operations/getwebhook.rb +49 -0
  36. data/lib/sdk/models/operations/getwebhooks.rb +34 -0
  37. data/lib/sdk/models/operations/patch_asset_assetid_.rb +53 -0
  38. data/lib/sdk/models/operations/post_clip.rb +66 -0
  39. data/lib/sdk/models/operations/requestupload.rb +72 -0
  40. data/lib/sdk/models/operations/transcode.rb +35 -0
  41. data/lib/sdk/models/operations/updatemultistreamtarget.rb +49 -0
  42. data/lib/sdk/models/operations/updatesigningkey.rb +65 -0
  43. data/lib/sdk/models/operations/updatestream.rb +49 -0
  44. data/lib/sdk/models/operations/updatewebhook.rb +49 -0
  45. data/lib/sdk/models/operations/uploadassetviaurl.rb +66 -0
  46. data/lib/sdk/models/shared/asset.rb +312 -0
  47. data/lib/sdk/models/shared/asset_patch_payload.rb +38 -0
  48. data/lib/sdk/models/shared/attestation.rb +178 -0
  49. data/lib/sdk/models/shared/clip_payload.rb +37 -0
  50. data/lib/sdk/models/shared/encryption.rb +25 -0
  51. data/lib/sdk/models/shared/encryption_output.rb +21 -0
  52. data/lib/sdk/models/shared/error.rb +25 -0
  53. data/lib/sdk/models/shared/ffmpeg_profile.rb +71 -0
  54. data/lib/sdk/models/shared/ipfs_export_params.rb +41 -0
  55. data/lib/sdk/models/shared/ipfs_file_info.rb +31 -0
  56. data/lib/sdk/models/shared/multistream.rb +75 -0
  57. data/lib/sdk/models/shared/multistream_target.rb +36 -0
  58. data/lib/sdk/models/shared/multistream_target_input.rb +33 -0
  59. data/lib/sdk/models/shared/multistream_target_patch_payload.rb +33 -0
  60. data/lib/sdk/models/shared/new_asset_payload.rb +79 -0
  61. data/lib/sdk/models/shared/new_stream_payload.rb +44 -0
  62. data/lib/sdk/models/shared/nftmetadata.rb +24 -0
  63. data/lib/sdk/models/shared/nftmetadatatemplate.rb +23 -0
  64. data/lib/sdk/models/shared/playback_info.rb +115 -0
  65. data/lib/sdk/models/shared/playback_policy.rb +41 -0
  66. data/lib/sdk/models/shared/security.rb +25 -0
  67. data/lib/sdk/models/shared/session.rb +99 -0
  68. data/lib/sdk/models/shared/signing_key.rb +40 -0
  69. data/lib/sdk/models/shared/signing_key_response_payload.rb +43 -0
  70. data/lib/sdk/models/shared/storage.rb +28 -0
  71. data/lib/sdk/models/shared/storage_status.rb +70 -0
  72. data/lib/sdk/models/shared/stream.rb +142 -0
  73. data/lib/sdk/models/shared/stream_patch_payload.rb +41 -0
  74. data/lib/sdk/models/shared/task.rb +626 -0
  75. data/lib/sdk/models/shared/upload.rb +34 -0
  76. data/lib/sdk/models/shared/upload_output.rb +34 -0
  77. data/lib/sdk/models/shared/usage_metric.rb +38 -0
  78. data/lib/sdk/models/shared/viewership_metric.rb +97 -0
  79. data/lib/sdk/models/shared/webhook.rb +112 -0
  80. data/lib/sdk/multistream_target.rb +205 -0
  81. data/lib/sdk/playback.rb +63 -0
  82. data/lib/sdk/sdk.rb +89 -0
  83. data/lib/sdk/sdkconfiguration.rb +54 -0
  84. data/lib/sdk/session.rb +166 -0
  85. data/lib/sdk/stream.rb +290 -0
  86. data/lib/sdk/task.rb +87 -0
  87. data/lib/sdk/transcode.rb +59 -0
  88. data/lib/sdk/utils/metadata_fields.rb +154 -0
  89. data/lib/sdk/utils/utils.rb +774 -0
  90. data/lib/sdk/webhook.rb +192 -0
  91. metadata +260 -0
@@ -0,0 +1,178 @@
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/storage_status'
9
+
10
+ module Livepeer
11
+ module Shared
12
+ # PrimaryType - Video Metadata EIP-712 primaryType
13
+ class PrimaryType < T::Enum
14
+ enums do
15
+ VIDEO_ATTESTATION = new('VideoAttestation')
16
+ end
17
+ end
18
+
19
+
20
+
21
+ class Name < T::Enum
22
+ enums do
23
+ VERIFIABLE_VIDEO = new('Verifiable Video')
24
+ end
25
+ end
26
+
27
+
28
+
29
+ class Version < T::Enum
30
+ enums do
31
+ ONE = new('1')
32
+ end
33
+ end
34
+
35
+
36
+ # Video Metadata EIP-712 domain
37
+ class Domain < Livepeer::Utils::FieldAugmented
38
+ extend T::Sig
39
+
40
+
41
+ field :name, Shared::Name, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name'), 'decoder': Utils.enum_from_string(Shared::Name, false) } }
42
+
43
+ field :version, Shared::Version, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('version'), 'decoder': Utils.enum_from_string(Shared::Version, false) } }
44
+
45
+
46
+ sig { params(name: Shared::Name, version: Shared::Version).void }
47
+ def initialize(name: nil, version: nil)
48
+ @name = name
49
+ @version = version
50
+ end
51
+ end
52
+
53
+
54
+ class Attestations < Livepeer::Utils::FieldAugmented
55
+ extend T::Sig
56
+
57
+
58
+ field :address, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('address') } }
59
+
60
+ field :role, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('role') } }
61
+
62
+
63
+ sig { params(address: String, role: String).void }
64
+ def initialize(address: nil, role: nil)
65
+ @address = address
66
+ @role = role
67
+ end
68
+ end
69
+
70
+ # Video Metadata EIP-712 message content
71
+ class Message < Livepeer::Utils::FieldAugmented
72
+ extend T::Sig
73
+
74
+
75
+ field :attestations, T::Array[Shared::Attestations], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('attestations') } }
76
+
77
+ field :signer, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('signer') } }
78
+
79
+ field :timestamp, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('timestamp') } }
80
+
81
+ field :video, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('video') } }
82
+
83
+
84
+ sig { params(attestations: T::Array[Shared::Attestations], signer: String, timestamp: Float, video: String).void }
85
+ def initialize(attestations: nil, signer: nil, timestamp: nil, video: nil)
86
+ @attestations = attestations
87
+ @signer = signer
88
+ @timestamp = timestamp
89
+ @video = video
90
+ end
91
+ end
92
+
93
+
94
+ class SignatureType < T::Enum
95
+ enums do
96
+ EIP712 = new('eip712')
97
+ FLOW = new('flow')
98
+ end
99
+ end
100
+
101
+
102
+
103
+ class AttestationIpfs < Livepeer::Utils::FieldAugmented
104
+ extend T::Sig
105
+
106
+ # CID of the file on IPFS
107
+ field :cid, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('cid') } }
108
+ # URL to access file via HTTP through an IPFS gateway
109
+ field :gateway_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('gatewayUrl') } }
110
+ # Timestamp (in milliseconds) at which IPFS export task was updated
111
+ #
112
+ field :updated_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updatedAt') } }
113
+ # URL with IPFS scheme for the file
114
+ field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
115
+
116
+
117
+ sig { params(cid: T.nilable(String), gateway_url: T.nilable(String), updated_at: T.nilable(Float), url: T.nilable(String)).void }
118
+ def initialize(cid: nil, gateway_url: nil, updated_at: nil, url: nil)
119
+ @cid = cid
120
+ @gateway_url = gateway_url
121
+ @updated_at = updated_at
122
+ @url = url
123
+ end
124
+ end
125
+
126
+
127
+ class AttestationStorage < Livepeer::Utils::FieldAugmented
128
+ extend T::Sig
129
+
130
+
131
+ field :ipfs, T.nilable(Shared::AttestationIpfs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
132
+
133
+ field :status, T.nilable(Shared::StorageStatus), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('status') } }
134
+
135
+
136
+ sig { params(ipfs: T.nilable(Shared::AttestationIpfs), status: T.nilable(Shared::StorageStatus)).void }
137
+ def initialize(ipfs: nil, status: nil)
138
+ @ipfs = ipfs
139
+ @status = status
140
+ end
141
+ end
142
+
143
+
144
+ class Attestation < Livepeer::Utils::FieldAugmented
145
+ extend T::Sig
146
+
147
+ # Video Metadata EIP-712 domain
148
+ field :domain, Shared::Domain, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('domain') } }
149
+ # Video Metadata EIP-712 message content
150
+ field :message, Shared::Message, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('message') } }
151
+ # Video Metadata EIP-712 primaryType
152
+ field :primary_type, Shared::PrimaryType, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('primaryType'), 'decoder': Utils.enum_from_string(Shared::PrimaryType, false) } }
153
+ # Video Metadata EIP-712 message signature
154
+ field :signature, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('signature') } }
155
+ # Timestamp (in milliseconds) at which the object was created
156
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
157
+
158
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
159
+
160
+ field :signature_type, T.nilable(Shared::SignatureType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('signatureType'), 'decoder': Utils.enum_from_string(Shared::SignatureType, true) } }
161
+
162
+ field :storage, T.nilable(Shared::AttestationStorage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
163
+
164
+
165
+ sig { params(domain: Shared::Domain, message: Shared::Message, primary_type: Shared::PrimaryType, signature: String, created_at: T.nilable(Float), id: T.nilable(String), signature_type: T.nilable(Shared::SignatureType), storage: T.nilable(Shared::AttestationStorage)).void }
166
+ def initialize(domain: nil, message: nil, primary_type: nil, signature: nil, created_at: nil, id: nil, signature_type: nil, storage: nil)
167
+ @domain = domain
168
+ @message = message
169
+ @primary_type = primary_type
170
+ @signature = signature
171
+ @created_at = created_at
172
+ @id = id
173
+ @signature_type = signature_type
174
+ @storage = storage
175
+ end
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,37 @@
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 ClipPayload < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Playback ID of the stream or asset to clip
16
+ field :playback_id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
17
+ # Start time of the clip in milliseconds
18
+ field :start_time, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('startTime') } }
19
+ # End time of the clip in milliseconds
20
+ field :end_time, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('endTime') } }
21
+ # Name of the clip
22
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
23
+ # Session ID of the stream to clip
24
+ field :session_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sessionId') } }
25
+
26
+
27
+ sig { params(playback_id: String, start_time: Float, end_time: T.nilable(Float), name: T.nilable(String), session_id: T.nilable(String)).void }
28
+ def initialize(playback_id: nil, start_time: nil, end_time: nil, name: nil, session_id: nil)
29
+ @playback_id = playback_id
30
+ @start_time = start_time
31
+ @end_time = end_time
32
+ @name = name
33
+ @session_id = session_id
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,25 @@
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 Encryption < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Encryption key used to encrypt the asset. Only writable in the upload asset endpoints and cannot be retrieved back.
16
+ field :encrypted_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryptedKey') } }
17
+
18
+
19
+ sig { params(encrypted_key: String).void }
20
+ def initialize(encrypted_key: nil)
21
+ @encrypted_key = encrypted_key
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
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 EncryptionOutput < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+
17
+
18
+ def initialize; end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,25 @@
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 Error < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :errors, T::Array[String], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('errors') } }
17
+
18
+
19
+ sig { params(errors: T::Array[String]).void }
20
+ def initialize(errors: nil)
21
+ @errors = errors
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,71 @@
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 Profile < 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 Encoder < 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
+ # LMPS ffmpeg profile
34
+ class FfmpegProfile < 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 :fps, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fps') } }
41
+
42
+ field :height, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('height') } }
43
+
44
+ field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
45
+
46
+ field :width, Integer, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('width') } }
47
+
48
+ field :encoder, T.nilable(Shared::Encoder), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encoder'), 'decoder': Utils.enum_from_string(Shared::Encoder, true) } }
49
+
50
+ field :fps_den, T.nilable(Integer), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fpsDen') } }
51
+
52
+ field :gop, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('gop') } }
53
+
54
+ field :profile, T.nilable(Shared::Profile), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile'), 'decoder': Utils.enum_from_string(Shared::Profile, true) } }
55
+
56
+
57
+ sig { params(bitrate: Integer, fps: Integer, height: Integer, name: String, width: Integer, encoder: T.nilable(Shared::Encoder), fps_den: T.nilable(Integer), gop: T.nilable(String), profile: T.nilable(Shared::Profile)).void }
58
+ def initialize(bitrate: nil, fps: nil, height: nil, name: nil, width: nil, encoder: nil, fps_den: nil, gop: nil, profile: nil)
59
+ @bitrate = bitrate
60
+ @fps = fps
61
+ @height = height
62
+ @name = name
63
+ @width = width
64
+ @encoder = encoder
65
+ @fps_den = fps_den
66
+ @gop = gop
67
+ @profile = profile
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,41 @@
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/nftmetadatatemplate'
9
+ require_relative '../shared/nftmetadata'
10
+
11
+ module Livepeer
12
+ module Shared
13
+
14
+ class IpfsExportParams < Livepeer::Utils::FieldAugmented
15
+ extend T::Sig
16
+
17
+ # Additional data to add to the NFT metadata exported to
18
+ # IPFS. Will be deep merged with the default metadata
19
+ # exported.
20
+ #
21
+ field :nft_metadata, T.nilable(Shared::NftMetadata), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadata') } }
22
+ # Name of the NFT metadata template to export. 'player'
23
+ # will embed the Livepeer Player on the NFT while 'file'
24
+ # will reference only the immutable MP4 files.
25
+ #
26
+ field :nft_metadata_template, T.nilable(Shared::NftMetadataTemplate), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataTemplate'), 'decoder': Utils.enum_from_string(Shared::NftMetadataTemplate, true) } }
27
+ # Custom credentials for the Piñata service. Must have either
28
+ # a JWT or an API key and an API secret.
29
+ #
30
+ field :pinata, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('pinata') } }
31
+
32
+
33
+ sig { params(nft_metadata: T.nilable(Shared::NftMetadata), nft_metadata_template: T.nilable(Shared::NftMetadataTemplate), pinata: T.nilable(Object)).void }
34
+ def initialize(nft_metadata: nil, nft_metadata_template: nil, pinata: nil)
35
+ @nft_metadata = nft_metadata
36
+ @nft_metadata_template = nft_metadata_template
37
+ @pinata = pinata
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,31 @@
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 IpfsFileInfo < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # CID of the file on IPFS
16
+ field :cid, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('cid') } }
17
+ # URL to access file via HTTP through an IPFS gateway
18
+ field :gateway_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('gatewayUrl') } }
19
+ # URL with IPFS scheme for the file
20
+ field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
21
+
22
+
23
+ sig { params(cid: String, gateway_url: T.nilable(String), url: T.nilable(String)).void }
24
+ def initialize(cid: nil, gateway_url: nil, url: nil)
25
+ @cid = cid
26
+ @gateway_url = gateway_url
27
+ @url = url
28
+ end
29
+ end
30
+ end
31
+ 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
+ # Inline multistream target object. Will automatically
12
+ # create the target resource to be used by the created stream.
13
+ #
14
+ class Spec < Livepeer::Utils::FieldAugmented
15
+ extend T::Sig
16
+
17
+ # Livepeer-compatible multistream target URL (RTMP(S) or SRT)
18
+ field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
19
+
20
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
21
+
22
+
23
+ sig { params(url: String, name: T.nilable(String)).void }
24
+ def initialize(url: nil, name: nil)
25
+ @url = url
26
+ @name = name
27
+ end
28
+ end
29
+
30
+
31
+ class Targets < Livepeer::Utils::FieldAugmented
32
+ extend T::Sig
33
+
34
+ # Name of the transcoding profile that should be sent. Use
35
+ # "source" for pushing the source stream data
36
+ #
37
+ field :profile, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
38
+ # ID of the multistream target object where to push this stream
39
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
40
+ # Inline multistream target object. Will automatically
41
+ # create the target resource to be used by the created stream.
42
+ #
43
+ field :spec, T.nilable(Shared::Spec), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('spec') } }
44
+ # If true, the stream audio will be muted, and only silent
45
+ # video will be pushed to the target.
46
+ #
47
+ field :video_only, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoOnly') } }
48
+
49
+
50
+ sig { params(profile: String, id: T.nilable(String), spec: T.nilable(Shared::Spec), video_only: T.nilable(T::Boolean)).void }
51
+ def initialize(profile: nil, id: nil, spec: nil, video_only: nil)
52
+ @profile = profile
53
+ @id = id
54
+ @spec = spec
55
+ @video_only = video_only
56
+ end
57
+ end
58
+
59
+
60
+ class Multistream < Livepeer::Utils::FieldAugmented
61
+ extend T::Sig
62
+
63
+ # References to targets where this stream will be simultaneously
64
+ # streamed to
65
+ #
66
+ field :targets, T.nilable(T::Array[Shared::Targets]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targets') } }
67
+
68
+
69
+ sig { params(targets: T.nilable(T::Array[Shared::Targets])).void }
70
+ def initialize(targets: nil)
71
+ @targets = targets
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,36 @@
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 MultistreamTarget < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Timestamp (in milliseconds) at which multistream target object was created
16
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
17
+ # If true then this multistream target will not be used for pushing
18
+ # even if it is configured in a stream object.
19
+ #
20
+ field :disabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('disabled') } }
21
+
22
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
23
+
24
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
25
+
26
+
27
+ sig { params(created_at: T.nilable(Float), disabled: T.nilable(T::Boolean), id: T.nilable(String), name: T.nilable(String)).void }
28
+ def initialize(created_at: nil, disabled: nil, id: nil, name: nil)
29
+ @created_at = created_at
30
+ @disabled = disabled
31
+ @id = id
32
+ @name = name
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,33 @@
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 MultistreamTargetInput < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Livepeer-compatible multistream target URL (RTMP(S) or SRT)
16
+ field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
17
+ # If true then this multistream target will not be used for pushing
18
+ # even if it is configured in a stream object.
19
+ #
20
+ field :disabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('disabled') } }
21
+
22
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
23
+
24
+
25
+ sig { params(url: String, disabled: T.nilable(T::Boolean), name: T.nilable(String)).void }
26
+ def initialize(url: nil, disabled: nil, name: nil)
27
+ @url = url
28
+ @disabled = disabled
29
+ @name = name
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,33 @@
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 MultistreamTargetPatchPayload < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Livepeer-compatible multistream target URL (RTMP(S) or SRT)
16
+ field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
17
+ # If true then this multistream target will not be used for pushing
18
+ # even if it is configured in a stream object.
19
+ #
20
+ field :disabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('disabled') } }
21
+
22
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
23
+
24
+
25
+ sig { params(url: String, disabled: T.nilable(T::Boolean), name: T.nilable(String)).void }
26
+ def initialize(url: nil, disabled: nil, name: nil)
27
+ @url = url
28
+ @disabled = disabled
29
+ @name = name
30
+ end
31
+ end
32
+ end
33
+ end