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,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