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,79 @@
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
+
10
+ module Livepeer
11
+ module Shared
12
+
13
+ class NewAssetPayloadStorage < Livepeer::Utils::FieldAugmented
14
+ extend T::Sig
15
+
16
+ # Set to true to make default export to IPFS. To customize the
17
+ # pinned files, specify an object with a spec field. False or null
18
+ # means to unpin from IPFS, but it's unsupported right now.
19
+ #
20
+ field :ipfs, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
21
+
22
+
23
+ sig { params(ipfs: T.nilable(Object)).void }
24
+ def initialize(ipfs: nil)
25
+ @ipfs = ipfs
26
+ end
27
+ end
28
+
29
+
30
+ class NewAssetPayloadEncryption < Livepeer::Utils::FieldAugmented
31
+ extend T::Sig
32
+
33
+ # Encryption key used to encrypt the asset. Only writable in the upload asset endpoints and cannot be retrieved back.
34
+ field :encrypted_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryptedKey') } }
35
+
36
+
37
+ sig { params(encrypted_key: String).void }
38
+ def initialize(encrypted_key: nil)
39
+ @encrypted_key = encrypted_key
40
+ end
41
+ end
42
+
43
+
44
+ class NewAssetPayload < Livepeer::Utils::FieldAugmented
45
+ extend T::Sig
46
+
47
+ # Name of the asset. This is not necessarily the filename, can be a
48
+ # custom name or title
49
+ #
50
+ field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
51
+
52
+ field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
53
+
54
+ field :encryption, T.nilable(Shared::NewAssetPayloadEncryption), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('encryption') } }
55
+ # Whether the playback policy for a asset or stream is public or signed
56
+ field :playback_policy, T.nilable(Shared::PlaybackPolicy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackPolicy') } }
57
+ # Whether to generate MP4s for the asset.
58
+ field :static_mp4, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('staticMp4') } }
59
+
60
+ field :storage, T.nilable(Shared::NewAssetPayloadStorage), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('storage') } }
61
+ # URL where the asset contents can be retrieved. Only allowed (and
62
+ # also required) in the upload asset via URL endpoint.
63
+ #
64
+ field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
65
+
66
+
67
+ sig { params(name: String, creator_id: T.nilable(Object), encryption: T.nilable(Shared::NewAssetPayloadEncryption), playback_policy: T.nilable(Shared::PlaybackPolicy), static_mp4: T.nilable(T::Boolean), storage: T.nilable(Shared::NewAssetPayloadStorage), url: T.nilable(String)).void }
68
+ def initialize(name: nil, creator_id: nil, encryption: nil, playback_policy: nil, static_mp4: nil, storage: nil, url: nil)
69
+ @name = name
70
+ @creator_id = creator_id
71
+ @encryption = encryption
72
+ @playback_policy = playback_policy
73
+ @static_mp4 = static_mp4
74
+ @storage = storage
75
+ @url = url
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,44 @@
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/multistream'
10
+
11
+ module Livepeer
12
+ module Shared
13
+
14
+ class NewStreamPayload < Livepeer::Utils::FieldAugmented
15
+ extend T::Sig
16
+
17
+
18
+ field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
19
+
20
+ field :creator_id, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('creatorId') } }
21
+
22
+ field :multistream, T.nilable(Shared::Multistream), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('multistream') } }
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 :profiles, T.nilable(T::Array[Shared::FfmpegProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
27
+ # Should this stream be recorded? Uses default settings. For more
28
+ # customization, create and configure an object store.
29
+ #
30
+ field :record, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('record') } }
31
+
32
+
33
+ sig { params(name: String, creator_id: T.nilable(Object), multistream: T.nilable(Shared::Multistream), playback_policy: T.nilable(Shared::PlaybackPolicy), profiles: T.nilable(T::Array[Shared::FfmpegProfile]), record: T.nilable(T::Boolean)).void }
34
+ def initialize(name: nil, creator_id: nil, multistream: nil, playback_policy: nil, profiles: nil, record: nil)
35
+ @name = name
36
+ @creator_id = creator_id
37
+ @multistream = multistream
38
+ @playback_policy = playback_policy
39
+ @profiles = profiles
40
+ @record = record
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,24 @@
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
+ # Additional data to add to the NFT metadata exported to
12
+ # IPFS. Will be deep merged with the default metadata
13
+ # exported.
14
+ #
15
+ class NftMetadata < Livepeer::Utils::FieldAugmented
16
+ extend T::Sig
17
+
18
+
19
+
20
+
21
+ def initialize; end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,23 @@
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
+ # NftMetadataTemplate - Name of the NFT metadata template to export. 'player'
12
+ # will embed the Livepeer Player on the NFT while 'file'
13
+ # will reference only the immutable MP4 files.
14
+ #
15
+ class NftMetadataTemplate < T::Enum
16
+ enums do
17
+ FILE = new('file')
18
+ PLAYER = new('player')
19
+ end
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,115 @@
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/attestation'
10
+
11
+ module Livepeer
12
+ module Shared
13
+
14
+ class PlaybackInfoType < T::Enum
15
+ enums do
16
+ LIVE = new('live')
17
+ VOD = new('vod')
18
+ RECORDING = new('recording')
19
+ end
20
+ end
21
+
22
+
23
+
24
+ class Hrn < T::Enum
25
+ enums do
26
+ HLS_TS_ = new('HLS (TS)')
27
+ MP4 = new('MP4')
28
+ WEB_RTC_H264_ = new('WebRTC (H264)')
29
+ end
30
+ end
31
+
32
+
33
+
34
+ class PlaybackInfoSchemasType < T::Enum
35
+ enums do
36
+ HTML5_APPLICATION_VND_APPLE_MPEGURL = new('html5/application/vnd.apple.mpegurl')
37
+ HTML5_VIDEO_MP4 = new('html5/video/mp4')
38
+ HTML5_VIDEO_H264 = new('html5/video/h264')
39
+ end
40
+ end
41
+
42
+
43
+
44
+ class Source < Livepeer::Utils::FieldAugmented
45
+ extend T::Sig
46
+
47
+
48
+ field :hrn, Shared::Hrn, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hrn'), 'decoder': Utils.enum_from_string(Shared::Hrn, false) } }
49
+
50
+ field :type, Shared::PlaybackInfoSchemasType, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::PlaybackInfoSchemasType, false) } }
51
+
52
+ field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
53
+
54
+ field :bitrate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('bitrate') } }
55
+
56
+ field :height, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('height') } }
57
+
58
+ field :size, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('size') } }
59
+
60
+ field :width, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('width') } }
61
+
62
+
63
+ sig { params(hrn: Shared::Hrn, type: Shared::PlaybackInfoSchemasType, url: String, bitrate: T.nilable(Float), height: T.nilable(Float), size: T.nilable(Float), width: T.nilable(Float)).void }
64
+ def initialize(hrn: nil, type: nil, url: nil, bitrate: nil, height: nil, size: nil, width: nil)
65
+ @hrn = hrn
66
+ @type = type
67
+ @url = url
68
+ @bitrate = bitrate
69
+ @height = height
70
+ @size = size
71
+ @width = width
72
+ end
73
+ end
74
+
75
+
76
+ class Meta < Livepeer::Utils::FieldAugmented
77
+ extend T::Sig
78
+
79
+
80
+ field :source, T::Array[Shared::Source], { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('source') } }
81
+
82
+ field :attestation, T.nilable(Shared::Attestation), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('attestation') } }
83
+
84
+ field :live, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('live') } }
85
+ # Whether the playback policy for a asset or stream is public or signed
86
+ field :playback_policy, T.nilable(Shared::PlaybackPolicy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackPolicy') } }
87
+
88
+
89
+ sig { params(source: T::Array[Shared::Source], attestation: T.nilable(Shared::Attestation), live: T.nilable(Float), playback_policy: T.nilable(Shared::PlaybackPolicy)).void }
90
+ def initialize(source: nil, attestation: nil, live: nil, playback_policy: nil)
91
+ @source = source
92
+ @attestation = attestation
93
+ @live = live
94
+ @playback_policy = playback_policy
95
+ end
96
+ end
97
+
98
+
99
+ class PlaybackInfo < Livepeer::Utils::FieldAugmented
100
+ extend T::Sig
101
+
102
+
103
+ field :meta, Shared::Meta, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('meta') } }
104
+
105
+ field :type, Shared::PlaybackInfoType, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::PlaybackInfoType, false) } }
106
+
107
+
108
+ sig { params(meta: Shared::Meta, type: Shared::PlaybackInfoType).void }
109
+ def initialize(meta: nil, type: nil)
110
+ @meta = meta
111
+ @type = type
112
+ end
113
+ end
114
+ end
115
+ 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
+
9
+ module Livepeer
10
+ module Shared
11
+
12
+ class Type < T::Enum
13
+ enums do
14
+ PUBLIC = new('public')
15
+ JWT = new('jwt')
16
+ WEBHOOK = new('webhook')
17
+ end
18
+ end
19
+
20
+
21
+ # Whether the playback policy for a asset or stream is public or signed
22
+ class PlaybackPolicy < Livepeer::Utils::FieldAugmented
23
+ extend T::Sig
24
+
25
+
26
+ field :type, Shared::Type, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::Type, false) } }
27
+ # User-defined webhook context
28
+ field :webhook_context, T.nilable(T::Hash[Symbol, Object]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('webhookContext') } }
29
+ # ID of the webhook to use for playback policy
30
+ field :webhook_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('webhookId') } }
31
+
32
+
33
+ sig { params(type: Shared::Type, webhook_context: T.nilable(T::Hash[Symbol, Object]), webhook_id: T.nilable(String)).void }
34
+ def initialize(type: nil, webhook_context: nil, webhook_id: nil)
35
+ @type = type
36
+ @webhook_context = webhook_context
37
+ @webhook_id = webhook_id
38
+ end
39
+ end
40
+ end
41
+ 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 Security < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :api_key, String, { 'security': { 'scheme': true, 'type': 'http', 'sub_type': 'bearer', 'field_name': 'Authorization' } }
17
+
18
+
19
+ sig { params(api_key: String).void }
20
+ def initialize(api_key: nil)
21
+ @api_key = api_key
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,99 @@
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
+ # RecordingStatus - Status of the recording process of this stream session.
12
+ class RecordingStatus < T::Enum
13
+ enums do
14
+ WAITING = new('waiting')
15
+ READY = new('ready')
16
+ NONE = new('none')
17
+ end
18
+ end
19
+
20
+
21
+
22
+ class Session < Livepeer::Utils::FieldAugmented
23
+ extend T::Sig
24
+
25
+
26
+ field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
27
+ # Timestamp (in milliseconds) at which the stream object was created
28
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
29
+
30
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
31
+ # Rate at which sourceBytes increases (bytes/second)
32
+ field :ingest_rate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ingestRate') } }
33
+ # Indicates whether the stream is healthy or not.
34
+ field :is_healthy, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('isHealthy') } }
35
+ # A string array of human-readable errors describing issues affecting
36
+ # the stream, if any.
37
+ #
38
+ field :issues, T.nilable(T::Array[String]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('issues') } }
39
+
40
+ field :last_seen, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('lastSeen') } }
41
+ # URL for the stream session recording packaged in an mp4.
42
+ field :mp4_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4Url') } }
43
+ # Rate at which transcodedBytes increases (bytes/second)
44
+ field :outgoing_rate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outgoingRate') } }
45
+ # Points to the parent stream object
46
+ field :parent_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('parentId') } }
47
+ # Used to form the playback URL
48
+ field :playback_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
49
+
50
+ field :profiles, T.nilable(T::Array[Shared::FfmpegProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
51
+ # Should this stream be recorded? Uses default settings. For more
52
+ # customization, create and configure an object store.
53
+ #
54
+ field :record, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('record') } }
55
+ # Status of the recording process of this stream session.
56
+ field :recording_status, T.nilable(Shared::RecordingStatus), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordingStatus'), 'decoder': Utils.enum_from_string(Shared::RecordingStatus, true) } }
57
+ # URL for accessing the recording of this stream session.
58
+ field :recording_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('recordingUrl') } }
59
+
60
+ field :source_bytes, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sourceBytes') } }
61
+
62
+ field :source_segments, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sourceSegments') } }
63
+ # Duration of all the source segments, sec
64
+ field :source_segments_duration, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sourceSegmentsDuration') } }
65
+
66
+ field :transcoded_bytes, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcodedBytes') } }
67
+
68
+ field :transcoded_segments, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcodedSegments') } }
69
+ # Duration of all the transcoded segments, sec
70
+ field :transcoded_segments_duration, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('transcodedSegmentsDuration') } }
71
+
72
+
73
+ sig { params(name: String, created_at: T.nilable(Float), id: T.nilable(String), ingest_rate: T.nilable(Float), is_healthy: T.nilable(T::Boolean), issues: T.nilable(T::Array[String]), last_seen: T.nilable(Float), mp4_url: T.nilable(String), outgoing_rate: T.nilable(Float), parent_id: T.nilable(String), playback_id: T.nilable(String), profiles: T.nilable(T::Array[Shared::FfmpegProfile]), record: T.nilable(T::Boolean), recording_status: T.nilable(Shared::RecordingStatus), recording_url: T.nilable(String), source_bytes: T.nilable(Float), source_segments: T.nilable(Float), source_segments_duration: T.nilable(Float), transcoded_bytes: T.nilable(Float), transcoded_segments: T.nilable(Float), transcoded_segments_duration: T.nilable(Float)).void }
74
+ def initialize(name: nil, created_at: nil, id: nil, ingest_rate: nil, is_healthy: nil, issues: nil, last_seen: nil, mp4_url: nil, outgoing_rate: nil, parent_id: nil, playback_id: nil, profiles: nil, record: nil, recording_status: nil, recording_url: nil, source_bytes: nil, source_segments: nil, source_segments_duration: nil, transcoded_bytes: nil, transcoded_segments: nil, transcoded_segments_duration: nil)
75
+ @name = name
76
+ @created_at = created_at
77
+ @id = id
78
+ @ingest_rate = ingest_rate
79
+ @is_healthy = is_healthy
80
+ @issues = issues
81
+ @last_seen = last_seen
82
+ @mp4_url = mp4_url
83
+ @outgoing_rate = outgoing_rate
84
+ @parent_id = parent_id
85
+ @playback_id = playback_id
86
+ @profiles = profiles
87
+ @record = record
88
+ @recording_status = recording_status
89
+ @recording_url = recording_url
90
+ @source_bytes = source_bytes
91
+ @source_segments = source_segments
92
+ @source_segments_duration = source_segments_duration
93
+ @transcoded_bytes = transcoded_bytes
94
+ @transcoded_segments = transcoded_segments
95
+ @transcoded_segments_duration = transcoded_segments_duration
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,40 @@
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 SigningKey < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :public_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('publicKey') } }
17
+ # Timestamp (in milliseconds) at which the signing-key was created
18
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
19
+ # Disable the signing key to allow rotation safely
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
+ # Timestamp (in milliseconds) at which the signing-key was last used
24
+ field :last_seen, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('lastSeen') } }
25
+ # Name of the signing key
26
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
27
+
28
+
29
+ sig { params(public_key: String, created_at: T.nilable(Float), disabled: T.nilable(T::Boolean), id: T.nilable(String), last_seen: T.nilable(Float), name: T.nilable(String)).void }
30
+ def initialize(public_key: nil, created_at: nil, disabled: nil, id: nil, last_seen: nil, name: nil)
31
+ @public_key = public_key
32
+ @created_at = created_at
33
+ @disabled = disabled
34
+ @id = id
35
+ @last_seen = last_seen
36
+ @name = name
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,43 @@
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 SigningKeyResponsePayload < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+
16
+ field :private_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('privateKey') } }
17
+
18
+ field :public_key, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('publicKey') } }
19
+ # Timestamp (in milliseconds) at which the signing-key was created
20
+ field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
21
+ # Disable the signing key to allow rotation safely
22
+ field :disabled, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('disabled') } }
23
+
24
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
25
+ # Timestamp (in milliseconds) at which the signing-key was last used
26
+ field :last_seen, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('lastSeen') } }
27
+ # Name of the signing key
28
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
29
+
30
+
31
+ sig { params(private_key: String, public_key: String, created_at: T.nilable(Float), disabled: T.nilable(T::Boolean), id: T.nilable(String), last_seen: T.nilable(Float), name: T.nilable(String)).void }
32
+ def initialize(private_key: nil, public_key: nil, created_at: nil, disabled: nil, id: nil, last_seen: nil, name: nil)
33
+ @private_key = private_key
34
+ @public_key = public_key
35
+ @created_at = created_at
36
+ @disabled = disabled
37
+ @id = id
38
+ @last_seen = last_seen
39
+ @name = name
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,28 @@
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 Storage < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Set to true to make default export to IPFS. To customize the
16
+ # pinned files, specify an object with a spec field. False or null
17
+ # means to unpin from IPFS, but it's unsupported right now.
18
+ #
19
+ field :ipfs, T.nilable(Object), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('ipfs') } }
20
+
21
+
22
+ sig { params(ipfs: T.nilable(Object)).void }
23
+ def initialize(ipfs: nil)
24
+ @ipfs = ipfs
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,70 @@
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
+ # Phase - Phase of the asset storage
12
+ class Phase < T::Enum
13
+ enums do
14
+ WAITING = new('waiting')
15
+ PROCESSING = new('processing')
16
+ READY = new('ready')
17
+ FAILED = new('failed')
18
+ REVERTED = new('reverted')
19
+ end
20
+ end
21
+
22
+
23
+
24
+ class Tasks < Livepeer::Utils::FieldAugmented
25
+ extend T::Sig
26
+
27
+ # ID of the last task to fail execution.
28
+ field :failed, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('failed') } }
29
+ # ID of the last task to run successfully, that created
30
+ # the currently saved data.
31
+ #
32
+ field :last, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('last') } }
33
+ # ID of any currently running task that is exporting this
34
+ # asset to IPFS.
35
+ #
36
+ field :pending, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('pending') } }
37
+
38
+
39
+ sig { params(failed: T.nilable(String), last: T.nilable(String), pending: T.nilable(String)).void }
40
+ def initialize(failed: nil, last: nil, pending: nil)
41
+ @failed = failed
42
+ @last = last
43
+ @pending = pending
44
+ end
45
+ end
46
+
47
+
48
+ class StorageStatus < Livepeer::Utils::FieldAugmented
49
+ extend T::Sig
50
+
51
+ # Phase of the asset storage
52
+ field :phase, Shared::Phase, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('phase'), 'decoder': Utils.enum_from_string(Shared::Phase, false) } }
53
+
54
+ field :tasks, Shared::Tasks, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('tasks') } }
55
+ # Error message if the last storage changed failed.
56
+ field :error_message, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('errorMessage') } }
57
+ # Current progress of the task updating the storage.
58
+ field :progress, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('progress') } }
59
+
60
+
61
+ sig { params(phase: Shared::Phase, tasks: Shared::Tasks, error_message: T.nilable(String), progress: T.nilable(Float)).void }
62
+ def initialize(phase: nil, tasks: nil, error_message: nil, progress: nil)
63
+ @phase = phase
64
+ @tasks = tasks
65
+ @error_message = error_message
66
+ @progress = progress
67
+ end
68
+ end
69
+ end
70
+ end