livepeer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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