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,65 @@
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 Operations
11
+
12
+ class UpdateSigningKeyRequestBody < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :disabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('disabled') } }
17
+
18
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
19
+
20
+
21
+ sig { params(disabled: T.nilable(T::Boolean), name: T.nilable(String)).void }
22
+ def initialize(disabled: nil, name: nil)
23
+ @disabled = disabled
24
+ @name = name
25
+ end
26
+ end
27
+
28
+
29
+ class UpdateSigningKeyRequest < Livepeer::Utils::FieldAugmented
30
+ extend T::Sig
31
+
32
+ # ID of the signing key
33
+ field :key_id, String, { 'path_param': { 'field_name': 'keyId', 'style': 'simple', 'explode': false } }
34
+
35
+ field :request_body, Operations::UpdateSigningKeyRequestBody, { 'request': { 'media_type': 'application/json' } }
36
+
37
+
38
+ sig { params(key_id: String, request_body: Operations::UpdateSigningKeyRequestBody).void }
39
+ def initialize(key_id: nil, request_body: nil)
40
+ @key_id = key_id
41
+ @request_body = request_body
42
+ end
43
+ end
44
+
45
+
46
+ class UpdateSigningKeyResponse < Livepeer::Utils::FieldAugmented
47
+ extend T::Sig
48
+
49
+ # HTTP response content type for this operation
50
+ field :content_type, String
51
+ # HTTP response status code for this operation
52
+ field :status_code, Integer
53
+ # Raw HTTP response; suitable for custom response parsing
54
+ field :raw_response, T.nilable(Faraday::Response)
55
+
56
+
57
+ sig { params(content_type: String, status_code: Integer, raw_response: T.nilable(Faraday::Response)).void }
58
+ def initialize(content_type: nil, status_code: nil, raw_response: nil)
59
+ @content_type = content_type
60
+ @status_code = status_code
61
+ @raw_response = raw_response
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,49 @@
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/stream_patch_payload'
9
+
10
+ module Livepeer
11
+ module Operations
12
+
13
+ class UpdateStreamRequest < Livepeer::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+ # ID of the stream
17
+ field :id, String, { 'path_param': { 'field_name': 'id', 'style': 'simple', 'explode': false } }
18
+
19
+ field :stream_patch_payload, Shared::StreamPatchPayload, { 'request': { 'media_type': 'application/json' } }
20
+
21
+
22
+ sig { params(id: String, stream_patch_payload: Shared::StreamPatchPayload).void }
23
+ def initialize(id: nil, stream_patch_payload: nil)
24
+ @id = id
25
+ @stream_patch_payload = stream_patch_payload
26
+ end
27
+ end
28
+
29
+
30
+ class UpdateStreamResponse < Livepeer::Utils::FieldAugmented
31
+ extend T::Sig
32
+
33
+ # HTTP response content type for this operation
34
+ field :content_type, String
35
+ # HTTP response status code for this operation
36
+ field :status_code, Integer
37
+ # Raw HTTP response; suitable for custom response parsing
38
+ field :raw_response, T.nilable(Faraday::Response)
39
+
40
+
41
+ sig { params(content_type: String, status_code: Integer, raw_response: T.nilable(Faraday::Response)).void }
42
+ def initialize(content_type: nil, status_code: nil, raw_response: nil)
43
+ @content_type = content_type
44
+ @status_code = status_code
45
+ @raw_response = raw_response
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,49 @@
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/webhook'
9
+
10
+ module Livepeer
11
+ module Operations
12
+
13
+ class UpdateWebhookRequest < Livepeer::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+ # ID of the webhook
17
+ field :id, String, { 'path_param': { 'field_name': 'id', 'style': 'simple', 'explode': false } }
18
+
19
+
20
+ sig { params(id: String).void }
21
+ def initialize(id: nil)
22
+ @id = id
23
+ end
24
+ end
25
+
26
+
27
+ class UpdateWebhookResponse < Livepeer::Utils::FieldAugmented
28
+ extend T::Sig
29
+
30
+ # HTTP response content type for this operation
31
+ field :content_type, String
32
+ # HTTP response status code for this operation
33
+ field :status_code, Integer
34
+ # Raw HTTP response; suitable for custom response parsing
35
+ field :raw_response, T.nilable(Faraday::Response)
36
+ # Success
37
+ field :webhook, T.nilable(Shared::Webhook)
38
+
39
+
40
+ sig { params(content_type: String, status_code: Integer, raw_response: T.nilable(Faraday::Response), webhook: T.nilable(Shared::Webhook)).void }
41
+ def initialize(content_type: nil, status_code: nil, raw_response: nil, webhook: nil)
42
+ @content_type = content_type
43
+ @status_code = status_code
44
+ @raw_response = raw_response
45
+ @webhook = webhook
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,66 @@
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/asset'
9
+
10
+ module Livepeer
11
+ module Operations
12
+
13
+ class UploadAssetViaURLTask < Livepeer::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+
17
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
18
+
19
+
20
+ sig { params(id: T.nilable(String)).void }
21
+ def initialize(id: nil)
22
+ @id = id
23
+ end
24
+ end
25
+
26
+ # Success
27
+ class UploadAssetViaURLData < Livepeer::Utils::FieldAugmented
28
+ extend T::Sig
29
+
30
+
31
+ field :asset, Shared::Asset, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('asset') } }
32
+
33
+ field :task, Operations::UploadAssetViaURLTask, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('task') } }
34
+
35
+
36
+ sig { params(asset: Shared::Asset, task: Operations::UploadAssetViaURLTask).void }
37
+ def initialize(asset: nil, task: nil)
38
+ @asset = asset
39
+ @task = task
40
+ end
41
+ end
42
+
43
+
44
+ class UploadAssetViaURLResponse < Livepeer::Utils::FieldAugmented
45
+ extend T::Sig
46
+
47
+ # HTTP response content type for this operation
48
+ field :content_type, String
49
+ # HTTP response status code for this operation
50
+ field :status_code, Integer
51
+ # Success
52
+ field :data, T.nilable(Operations::UploadAssetViaURLData)
53
+ # Raw HTTP response; suitable for custom response parsing
54
+ field :raw_response, T.nilable(Faraday::Response)
55
+
56
+
57
+ sig { params(content_type: String, status_code: Integer, data: T.nilable(Operations::UploadAssetViaURLData), raw_response: T.nilable(Faraday::Response)).void }
58
+ def initialize(content_type: nil, status_code: nil, data: nil, raw_response: nil)
59
+ @content_type = content_type
60
+ @status_code = status_code
61
+ @data = data
62
+ @raw_response = raw_response
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,312 @@
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/ipfs_file_info'
9
+ require_relative '../shared/storage_status'
10
+ require_relative '../shared/playback_policy'
11
+
12
+ module Livepeer
13
+ module Shared
14
+ # AssetType - Type of the asset.
15
+ class AssetType < T::Enum
16
+ enums do
17
+ VIDEO = new('video')
18
+ AUDIO = new('audio')
19
+ end
20
+ end
21
+
22
+
23
+ # AssetNftMetadataTemplate - Name of the NFT metadata template to export. 'player'
24
+ # will embed the Livepeer Player on the NFT while 'file'
25
+ # will reference only the immutable MP4 files.
26
+ #
27
+ class AssetNftMetadataTemplate < T::Enum
28
+ enums do
29
+ FILE = new('file')
30
+ PLAYER = new('player')
31
+ end
32
+ end
33
+
34
+
35
+ # Additional data to add to the NFT metadata exported to
36
+ # IPFS. Will be deep merged with the default metadata
37
+ # exported.
38
+ #
39
+ class AssetNftMetadata < Livepeer::Utils::FieldAugmented
40
+ extend T::Sig
41
+
42
+
43
+
44
+
45
+ def initialize; end
46
+ end
47
+
48
+
49
+ class AssetSpec < Livepeer::Utils::FieldAugmented
50
+ extend T::Sig
51
+
52
+ # Additional data to add to the NFT metadata exported to
53
+ # IPFS. Will be deep merged with the default metadata
54
+ # exported.
55
+ #
56
+ field :nft_metadata, T.nilable(Shared::AssetNftMetadata), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadata') } }
57
+ # Name of the NFT metadata template to export. 'player'
58
+ # will embed the Livepeer Player on the NFT while 'file'
59
+ # will reference only the immutable MP4 files.
60
+ #
61
+ field :nft_metadata_template, T.nilable(Shared::AssetNftMetadataTemplate), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadataTemplate'), 'decoder': Utils.enum_from_string(Shared::AssetNftMetadataTemplate, true) } }
62
+
63
+
64
+ sig { params(nft_metadata: T.nilable(Shared::AssetNftMetadata), nft_metadata_template: T.nilable(Shared::AssetNftMetadataTemplate)).void }
65
+ def initialize(nft_metadata: nil, nft_metadata_template: nil)
66
+ @nft_metadata = nft_metadata
67
+ @nft_metadata_template = nft_metadata_template
68
+ end
69
+ end
70
+
71
+
72
+ class Ipfs < Livepeer::Utils::FieldAugmented
73
+ extend T::Sig
74
+
75
+ # CID of the file on IPFS
76
+ field :cid, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('cid') } }
77
+ # URL to access file via HTTP through an IPFS gateway
78
+ field :gateway_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('gatewayUrl') } }
79
+
80
+ field :nft_metadata, T.nilable(Shared::IpfsFileInfo), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('nftMetadata') } }
81
+
82
+ field :spec, T.nilable(Shared::AssetSpec), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('spec') } }
83
+ # Timestamp (in milliseconds) at which IPFS export task was
84
+ # updated
85
+ #
86
+ field :updated_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updatedAt') } }
87
+ # URL with IPFS scheme for the file
88
+ field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
89
+
90
+
91
+ sig { params(cid: T.nilable(String), gateway_url: T.nilable(String), nft_metadata: T.nilable(Shared::IpfsFileInfo), spec: T.nilable(Shared::AssetSpec), updated_at: T.nilable(Float), url: T.nilable(String)).void }
92
+ def initialize(cid: nil, gateway_url: nil, nft_metadata: nil, spec: nil, updated_at: nil, url: nil)
93
+ @cid = cid
94
+ @gateway_url = gateway_url
95
+ @nft_metadata = nft_metadata
96
+ @spec = spec
97
+ @updated_at = updated_at
98
+ @url = url
99
+ end
100
+ end
101
+
102
+
103
+ class AssetStorage < Livepeer::Utils::FieldAugmented
104
+ extend T::Sig
105
+
106
+
107
+ field :ipfs, T.nilable(Shared::Ipfs), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
108
+
109
+ field :status, T.nilable(Shared::StorageStatus), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('status') } }
110
+
111
+
112
+ sig { params(ipfs: T.nilable(Shared::Ipfs), status: T.nilable(Shared::StorageStatus)).void }
113
+ def initialize(ipfs: nil, status: nil)
114
+ @ipfs = ipfs
115
+ @status = status
116
+ end
117
+ end
118
+
119
+ # AssetPhase - Phase of the asset
120
+ class AssetPhase < T::Enum
121
+ enums do
122
+ UPLOADING = new('uploading')
123
+ WAITING = new('waiting')
124
+ PROCESSING = new('processing')
125
+ READY = new('ready')
126
+ FAILED = new('failed')
127
+ end
128
+ end
129
+
130
+
131
+ # Status of the asset
132
+ class AssetStatus < Livepeer::Utils::FieldAugmented
133
+ extend T::Sig
134
+
135
+ # Phase of the asset
136
+ field :phase, Shared::AssetPhase, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('phase'), 'decoder': Utils.enum_from_string(Shared::AssetPhase, false) } }
137
+ # Timestamp (in milliseconds) at which the asset was last updated
138
+ field :updated_at, Float, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('updatedAt') } }
139
+ # Error message if the asset creation failed.
140
+ field :error_message, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('errorMessage') } }
141
+ # Current progress of the task creating this asset.
142
+ field :progress, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('progress') } }
143
+
144
+
145
+ sig { params(phase: Shared::AssetPhase, updated_at: Float, error_message: T.nilable(String), progress: T.nilable(Float)).void }
146
+ def initialize(phase: nil, updated_at: nil, error_message: nil, progress: nil)
147
+ @phase = phase
148
+ @updated_at = updated_at
149
+ @error_message = error_message
150
+ @progress = progress
151
+ end
152
+ end
153
+
154
+
155
+ class Hash < Livepeer::Utils::FieldAugmented
156
+ extend T::Sig
157
+
158
+ # Hash algorithm used to compute the hash
159
+ field :algorithm, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('algorithm') } }
160
+ # Hash of the asset
161
+ field :hash, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hash') } }
162
+
163
+
164
+ sig { params(algorithm: T.nilable(String), hash: T.nilable(String)).void }
165
+ def initialize(algorithm: nil, hash: nil)
166
+ @algorithm = algorithm
167
+ @hash = hash
168
+ end
169
+ end
170
+
171
+ # AssetSchemasType - type of track
172
+ class AssetSchemasType < T::Enum
173
+ enums do
174
+ VIDEO = new('video')
175
+ AUDIO = new('audio')
176
+ end
177
+ end
178
+
179
+
180
+
181
+ class Tracks < Livepeer::Utils::FieldAugmented
182
+ extend T::Sig
183
+
184
+ # Codec of the track
185
+ field :codec, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('codec') } }
186
+ # type of track
187
+ field :type, Shared::AssetSchemasType, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::AssetSchemasType, false) } }
188
+ # Bit depth of the track - only for audio tracks
189
+ field :bit_depth, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('bitDepth') } }
190
+ # Bitrate of the track in bits per second
191
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('bitrate') } }
192
+ # Amount of audio channels in the track
193
+ field :channels, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('channels') } }
194
+ # Duration of the track in seconds
195
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('duration') } }
196
+ # Frame rate of the track - only for video tracks
197
+ field :fps, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('fps') } }
198
+ # Height of the track - only for video tracks
199
+ field :height, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('height') } }
200
+ # Pixel format of the track - only for video tracks
201
+ field :pixel_format, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('pixelFormat') } }
202
+ # Sample rate of the track in samples per second - only for
203
+ # audio tracks
204
+ #
205
+ field :sample_rate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sampleRate') } }
206
+ # Start time of the track in seconds
207
+ field :start_time, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('startTime') } }
208
+ # Width of the track - only for video tracks
209
+ field :width, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('width') } }
210
+
211
+
212
+ sig { params(codec: String, type: Shared::AssetSchemasType, bit_depth: T.nilable(Float), bitrate: T.nilable(Float), channels: T.nilable(Float), duration: T.nilable(Float), fps: T.nilable(Float), height: T.nilable(Float), pixel_format: T.nilable(String), sample_rate: T.nilable(Float), start_time: T.nilable(Float), width: T.nilable(Float)).void }
213
+ def initialize(codec: nil, type: nil, bit_depth: nil, bitrate: nil, channels: nil, duration: nil, fps: nil, height: nil, pixel_format: nil, sample_rate: nil, start_time: nil, width: nil)
214
+ @codec = codec
215
+ @type = type
216
+ @bit_depth = bit_depth
217
+ @bitrate = bitrate
218
+ @channels = channels
219
+ @duration = duration
220
+ @fps = fps
221
+ @height = height
222
+ @pixel_format = pixel_format
223
+ @sample_rate = sample_rate
224
+ @start_time = start_time
225
+ @width = width
226
+ end
227
+ end
228
+
229
+ # Video metadata
230
+ class VideoSpec < Livepeer::Utils::FieldAugmented
231
+ extend T::Sig
232
+
233
+ # Bitrate of the video in bits per second
234
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('bitrate') } }
235
+ # Duration of the asset in seconds (float)
236
+ field :duration, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('duration') } }
237
+ # Format of the asset
238
+ field :format, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('format') } }
239
+ # List of tracks associated with the asset when the format
240
+ # contemplates them (e.g. mp4)
241
+ #
242
+ field :tracks, T.nilable(T::Array[Shared::Tracks]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('tracks') } }
243
+
244
+
245
+ sig { params(bitrate: T.nilable(Float), duration: T.nilable(Float), format: T.nilable(String), tracks: T.nilable(T::Array[Shared::Tracks])).void }
246
+ def initialize(bitrate: nil, duration: nil, format: nil, tracks: nil)
247
+ @bitrate = bitrate
248
+ @duration = duration
249
+ @format = format
250
+ @tracks = tracks
251
+ end
252
+ end
253
+
254
+
255
+ class Asset < Livepeer::Utils::FieldAugmented
256
+ extend T::Sig
257
+
258
+
259
+ field :id, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
260
+ # Name of the asset. This is not necessarily the filename, can be a
261
+ # custom name or title
262
+ #
263
+ field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
264
+
265
+ field :source, Object, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('source') } }
266
+ # Timestamp (in milliseconds) at which asset was created
267
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
268
+
269
+ field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
270
+ # URL to manually download the asset if desired
271
+ field :download_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('downloadUrl') } }
272
+ # Hash of the asset
273
+ field :hash, T.nilable(T::Array[Shared::Hash]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hash') } }
274
+ # Used to form playback URL and storage folder
275
+ field :playback_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
276
+ # Whether the playback policy for a asset or stream is public or signed
277
+ field :playback_policy, T.nilable(Shared::PlaybackPolicy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackPolicy') } }
278
+ # URL for HLS playback
279
+ field :playback_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackUrl') } }
280
+ # Size of the asset in bytes
281
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('size') } }
282
+ # Status of the asset
283
+ field :status, T.nilable(Shared::AssetStatus), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('status') } }
284
+
285
+ field :storage, T.nilable(Shared::AssetStorage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
286
+ # Type of the asset.
287
+ field :type, T.nilable(Shared::AssetType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::AssetType, true) } }
288
+ # Video metadata
289
+ field :video_spec, T.nilable(Shared::VideoSpec), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoSpec') } }
290
+
291
+
292
+ sig { params(id: String, name: String, source: Object, created_at: T.nilable(Float), creator_id: T.nilable(Object), download_url: T.nilable(String), hash: T.nilable(T::Array[Shared::Hash]), playback_id: T.nilable(String), playback_policy: T.nilable(Shared::PlaybackPolicy), playback_url: T.nilable(String), size: T.nilable(Float), status: T.nilable(Shared::AssetStatus), storage: T.nilable(Shared::AssetStorage), type: T.nilable(Shared::AssetType), video_spec: T.nilable(Shared::VideoSpec)).void }
293
+ def initialize(id: nil, name: nil, source: nil, created_at: nil, creator_id: nil, download_url: nil, hash: nil, playback_id: nil, playback_policy: nil, playback_url: nil, size: nil, status: nil, storage: nil, type: nil, video_spec: nil)
294
+ @id = id
295
+ @name = name
296
+ @source = source
297
+ @created_at = created_at
298
+ @creator_id = creator_id
299
+ @download_url = download_url
300
+ @hash = hash
301
+ @playback_id = playback_id
302
+ @playback_policy = playback_policy
303
+ @playback_url = playback_url
304
+ @size = size
305
+ @status = status
306
+ @storage = storage
307
+ @type = type
308
+ @video_spec = video_spec
309
+ end
310
+ end
311
+ end
312
+ 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
+ require_relative '../shared/playback_policy'
9
+ require_relative '../shared/storage'
10
+
11
+ module Livepeer
12
+ module Shared
13
+
14
+ class AssetPatchPayload < Livepeer::Utils::FieldAugmented
15
+ extend T::Sig
16
+
17
+
18
+ field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
19
+ # Name of the asset. This is not necessarily the filename, can be a
20
+ # custom name or title
21
+ #
22
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
23
+ # Whether the playback policy for a asset or stream is public or signed
24
+ field :playback_policy, T.nilable(Shared::PlaybackPolicy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackPolicy') } }
25
+
26
+ field :storage, T.nilable(Shared::Storage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
27
+
28
+
29
+ sig { params(creator_id: T.nilable(Object), name: T.nilable(String), playback_policy: T.nilable(Shared::PlaybackPolicy), storage: T.nilable(Shared::Storage)).void }
30
+ def initialize(creator_id: nil, name: nil, playback_policy: nil, storage: nil)
31
+ @creator_id = creator_id
32
+ @name = name
33
+ @playback_policy = playback_policy
34
+ @storage = storage
35
+ end
36
+ end
37
+ end
38
+ end