livepeer 0.0.1 → 0.0.2

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/lib/livepeer.rb +14 -12
  3. data/lib/sdk/asset.rb +81 -9
  4. data/lib/sdk/metrics.rb +12 -4
  5. data/lib/sdk/models/operations/addmultistreamtarget.rb +49 -0
  6. data/lib/sdk/models/operations/createsigningkey.rb +5 -5
  7. data/lib/sdk/models/operations/createstream.rb +4 -4
  8. data/lib/sdk/models/operations/deletewebhook.rb +1 -1
  9. data/lib/sdk/models/operations/get_session_id_clips.rb +4 -4
  10. data/lib/sdk/models/operations/get_stream_id_clips.rb +4 -4
  11. data/lib/sdk/models/operations/getassets.rb +4 -4
  12. data/lib/sdk/models/operations/getcreatormetrics.rb +4 -4
  13. data/lib/sdk/models/operations/getmultistreamtargets.rb +4 -4
  14. data/lib/sdk/models/operations/getpublictotalviewsmetrics.rb +5 -5
  15. data/lib/sdk/models/operations/getrecordedsessions.rb +4 -4
  16. data/lib/sdk/models/operations/getsessions.rb +4 -4
  17. data/lib/sdk/models/operations/getsigningkeys.rb +4 -4
  18. data/lib/sdk/models/operations/getstreams.rb +5 -5
  19. data/lib/sdk/models/operations/gettasks.rb +4 -4
  20. data/lib/sdk/models/operations/getviewershipsmetrics.rb +4 -4
  21. data/lib/sdk/models/operations/getwebhook.rb +1 -1
  22. data/lib/sdk/models/operations/getwebhooks.rb +4 -4
  23. data/lib/sdk/models/operations/post_clip.rb +5 -5
  24. data/lib/sdk/models/operations/removemultistreamtarget.rb +48 -0
  25. data/lib/sdk/models/operations/requestupload.rb +5 -5
  26. data/lib/sdk/models/operations/terminatestream.rb +45 -0
  27. data/lib/sdk/models/operations/{patch_asset_assetid_.rb → updateasset.rb} +2 -2
  28. data/lib/sdk/models/operations/updatewebhook.rb +1 -1
  29. data/lib/sdk/models/operations/uploadassetviaurl.rb +5 -5
  30. data/lib/sdk/models/shared/asset.rb +11 -17
  31. data/lib/sdk/models/shared/attestation.rb +5 -11
  32. data/lib/sdk/models/shared/encryption.rb +2 -6
  33. data/lib/sdk/models/shared/ffmpeg_profile.rb +6 -2
  34. data/lib/sdk/models/shared/ipfs_export_params.rb +5 -16
  35. data/lib/sdk/models/shared/multistream.rb +2 -50
  36. data/lib/sdk/models/shared/multistream_target.rb +3 -1
  37. data/lib/sdk/models/shared/new_asset_payload.rb +8 -3
  38. data/lib/sdk/models/shared/playback_info.rb +50 -4
  39. data/lib/sdk/models/shared/session.rb +3 -3
  40. data/lib/sdk/models/shared/stream.rb +5 -29
  41. data/lib/sdk/models/shared/stream_patch_payload.rb +5 -2
  42. data/lib/sdk/models/shared/target.rb +61 -0
  43. data/lib/sdk/models/shared/target_add_payload.rb +61 -0
  44. data/lib/sdk/models/shared/target_output.rb +35 -0
  45. data/lib/sdk/models/shared/task.rb +54 -231
  46. data/lib/sdk/models/shared/transcode_payload.rb +105 -0
  47. data/lib/sdk/models/shared/transcode_profile.rb +75 -0
  48. data/lib/sdk/multistream_target.rb +4 -1
  49. data/lib/sdk/sdk.rb +33 -3
  50. data/lib/sdk/sdkconfiguration.rb +3 -3
  51. data/lib/sdk/session.rb +40 -40
  52. data/lib/sdk/{access_control.rb → signing_key.rb} +15 -40
  53. data/lib/sdk/stream.rb +148 -7
  54. data/lib/sdk/task.rb +1 -1
  55. data/lib/sdk/transcode.rb +123 -1
  56. data/lib/sdk/webhook.rb +3 -1
  57. metadata +17 -15
  58. data/lib/sdk/models/shared/encryption_output.rb +0 -21
  59. data/lib/sdk/models/shared/nftmetadata.rb +0 -24
  60. data/lib/sdk/models/shared/nftmetadatatemplate.rb +0 -23
  61. data/lib/sdk/models/shared/signing_key_response_payload.rb +0 -43
  62. data/lib/sdk/models/shared/upload.rb +0 -34
  63. data/lib/sdk/models/shared/upload_output.rb +0 -34
@@ -20,12 +20,14 @@ module Livepeer
20
20
  end
21
21
 
22
22
 
23
-
23
+ # Hrn - Human Readable Name
24
24
  class Hrn < T::Enum
25
25
  enums do
26
26
  HLS_TS_ = new('HLS (TS)')
27
27
  MP4 = new('MP4')
28
28
  WEB_RTC_H264_ = new('WebRTC (H264)')
29
+ THUMBNAIL_JPEG_ = new('Thumbnail (JPEG)')
30
+ THUMBNAILS = new('Thumbnails')
29
31
  end
30
32
  end
31
33
 
@@ -36,6 +38,8 @@ module Livepeer
36
38
  HTML5_APPLICATION_VND_APPLE_MPEGURL = new('html5/application/vnd.apple.mpegurl')
37
39
  HTML5_VIDEO_MP4 = new('html5/video/mp4')
38
40
  HTML5_VIDEO_H264 = new('html5/video/h264')
41
+ IMAGE_JPEG = new('image/jpeg')
42
+ TEXT_VTT = new('text/vtt')
39
43
  end
40
44
  end
41
45
 
@@ -44,7 +48,7 @@ module Livepeer
44
48
  class Source < Livepeer::Utils::FieldAugmented
45
49
  extend T::Sig
46
50
 
47
-
51
+ # Human Readable Name
48
52
  field :hrn, Shared::Hrn, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hrn'), 'decoder': Utils.enum_from_string(Shared::Hrn, false) } }
49
53
 
50
54
  field :type, Shared::PlaybackInfoSchemasType, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::PlaybackInfoSchemasType, false) } }
@@ -73,6 +77,45 @@ module Livepeer
73
77
  end
74
78
 
75
79
 
80
+ class PlaybackInfoHrn < T::Enum
81
+ enums do
82
+ HLS_TS_ = new('HLS (TS)')
83
+ end
84
+ end
85
+
86
+
87
+
88
+ class PlaybackInfoSchemasMetaType < T::Enum
89
+ enums do
90
+ HTML5_APPLICATION_VND_APPLE_MPEGURL = new('html5/application/vnd.apple.mpegurl')
91
+ end
92
+ end
93
+
94
+
95
+
96
+ class DvrPlayback < Livepeer::Utils::FieldAugmented
97
+ extend T::Sig
98
+
99
+
100
+ field :error, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('error') } }
101
+
102
+ field :hrn, T.nilable(Shared::PlaybackInfoHrn), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('hrn'), 'decoder': Utils.enum_from_string(Shared::PlaybackInfoHrn, true) } }
103
+
104
+ field :type, T.nilable(Shared::PlaybackInfoSchemasMetaType), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Shared::PlaybackInfoSchemasMetaType, true) } }
105
+
106
+ field :url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
107
+
108
+
109
+ sig { params(error: T.nilable(String), hrn: T.nilable(Shared::PlaybackInfoHrn), type: T.nilable(Shared::PlaybackInfoSchemasMetaType), url: T.nilable(String)).void }
110
+ def initialize(error: nil, hrn: nil, type: nil, url: nil)
111
+ @error = error
112
+ @hrn = hrn
113
+ @type = type
114
+ @url = url
115
+ end
116
+ end
117
+
118
+
76
119
  class Meta < Livepeer::Utils::FieldAugmented
77
120
  extend T::Sig
78
121
 
@@ -81,15 +124,18 @@ module Livepeer
81
124
 
82
125
  field :attestation, T.nilable(Shared::Attestation), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('attestation') } }
83
126
 
127
+ field :dvr_playback, T.nilable(T::Array[Shared::DvrPlayback]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('dvrPlayback') } }
128
+
84
129
  field :live, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('live') } }
85
130
  # Whether the playback policy for a asset or stream is public or signed
86
131
  field :playback_policy, T.nilable(Shared::PlaybackPolicy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackPolicy') } }
87
132
 
88
133
 
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)
134
+ sig { params(source: T::Array[Shared::Source], attestation: T.nilable(Shared::Attestation), dvr_playback: T.nilable(T::Array[Shared::DvrPlayback]), live: T.nilable(Float), playback_policy: T.nilable(Shared::PlaybackPolicy)).void }
135
+ def initialize(source: nil, attestation: nil, dvr_playback: nil, live: nil, playback_policy: nil)
91
136
  @source = source
92
137
  @attestation = attestation
138
+ @dvr_playback = dvr_playback
93
139
  @live = live
94
140
  @playback_policy = playback_policy
95
141
  end
@@ -24,7 +24,7 @@ module Livepeer
24
24
 
25
25
 
26
26
  field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
27
- # Timestamp (in milliseconds) at which the stream object was created
27
+ # Timestamp (in milliseconds) at which stream object was created
28
28
  field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
29
29
 
30
30
  field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
@@ -42,9 +42,9 @@ module Livepeer
42
42
  field :mp4_url, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('mp4Url') } }
43
43
  # Rate at which transcodedBytes increases (bytes/second)
44
44
  field :outgoing_rate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outgoingRate') } }
45
- # Points to the parent stream object
45
+ # Points to parent stream object
46
46
  field :parent_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('parentId') } }
47
- # Used to form the playback URL
47
+ # Used to form playback URL
48
48
  field :playback_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
49
49
 
50
50
  field :profiles, T.nilable(T::Array[Shared::FfmpegProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
@@ -10,40 +10,16 @@ require_relative '../shared/playback_policy'
10
10
  module Livepeer
11
11
  module Shared
12
12
 
13
- class StreamTargets < Livepeer::Utils::FieldAugmented
14
- extend T::Sig
15
-
16
- # Name of the transcoding profile that should be sent. Use
17
- # "source" for pushing the source stream data
18
- #
19
- field :profile, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
20
- # ID of the multistream target object where to push this stream
21
- field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
22
- # If true, the stream audio will be muted, and only silent
23
- # video will be pushed to the target.
24
- #
25
- field :video_only, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoOnly') } }
26
-
27
-
28
- sig { params(profile: String, id: T.nilable(String), video_only: T.nilable(T::Boolean)).void }
29
- def initialize(profile: nil, id: nil, video_only: nil)
30
- @profile = profile
31
- @id = id
32
- @video_only = video_only
33
- end
34
- end
35
-
36
-
37
13
  class StreamMultistream < Livepeer::Utils::FieldAugmented
38
14
  extend T::Sig
39
15
 
40
16
  # References to targets where this stream will be simultaneously
41
17
  # streamed to
42
18
  #
43
- field :targets, T.nilable(T::Array[Shared::StreamTargets]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targets') } }
19
+ field :targets, T.nilable(T::Array[Shared::TargetOutput]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('targets') } }
44
20
 
45
21
 
46
- sig { params(targets: T.nilable(T::Array[Shared::StreamTargets])).void }
22
+ sig { params(targets: T.nilable(T::Array[Shared::TargetOutput])).void }
47
23
  def initialize(targets: nil)
48
24
  @targets = targets
49
25
  end
@@ -55,7 +31,7 @@ module Livepeer
55
31
 
56
32
 
57
33
  field :name, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
58
- # Timestamp (in milliseconds) at which the stream object was created
34
+ # Timestamp (in milliseconds) at which stream object was created
59
35
  field :created_at, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdAt') } }
60
36
  # Name of the token used to create this object
61
37
  field :created_by_token_name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('createdByTokenName') } }
@@ -79,7 +55,7 @@ module Livepeer
79
55
  field :multistream, T.nilable(Shared::StreamMultistream), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('multistream') } }
80
56
  # Rate at which transcodedBytes increases (bytes/second)
81
57
  field :outgoing_rate, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('outgoingRate') } }
82
- # Points to the parent stream object
58
+ # Points to parent stream object
83
59
  field :parent_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('parentId') } }
84
60
  # Used to form playback URL
85
61
  field :playback_id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackId') } }
@@ -97,7 +73,7 @@ module Livepeer
97
73
  field :source_segments, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sourceSegments') } }
98
74
  # Duration of all the source segments, sec
99
75
  field :source_segments_duration, T.nilable(Float), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('sourceSegmentsDuration') } }
100
- # Used to form the RTMP ingest URL
76
+ # Used to form RTMP ingest URL
101
77
  field :stream_key, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('streamKey') } }
102
78
  # If currently suspended
103
79
  field :suspended, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('suspended') } }
@@ -20,6 +20,8 @@ module Livepeer
20
20
  field :multistream, T.nilable(Shared::Multistream), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('multistream') } }
21
21
  # Whether the playback policy for a asset or stream is public or signed
22
22
  field :playback_policy, T.nilable(Shared::PlaybackPolicy), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('playbackPolicy') } }
23
+
24
+ field :profiles, T.nilable(T::Array[Shared::FfmpegProfile]), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profiles') } }
23
25
  # Should this stream be recorded? Uses default settings. For more
24
26
  # customization, create and configure an object store.
25
27
  #
@@ -28,11 +30,12 @@ module Livepeer
28
30
  field :suspended, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('suspended') } }
29
31
 
30
32
 
31
- sig { params(creator_id: T.nilable(Object), multistream: T.nilable(Shared::Multistream), playback_policy: T.nilable(Shared::PlaybackPolicy), record: T.nilable(T::Boolean), suspended: T.nilable(T::Boolean)).void }
32
- def initialize(creator_id: nil, multistream: nil, playback_policy: nil, record: nil, suspended: nil)
33
+ sig { params(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), suspended: T.nilable(T::Boolean)).void }
34
+ def initialize(creator_id: nil, multistream: nil, playback_policy: nil, profiles: nil, record: nil, suspended: nil)
33
35
  @creator_id = creator_id
34
36
  @multistream = multistream
35
37
  @playback_policy = playback_policy
38
+ @profiles = profiles
36
39
  @record = record
37
40
  @suspended = suspended
38
41
  end
@@ -0,0 +1,61 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module Livepeer
10
+ module Shared
11
+ # Inline multistream target object. Will automatically
12
+ # create the target resource to be used by the created
13
+ # stream.
14
+ #
15
+ class Spec < Livepeer::Utils::FieldAugmented
16
+ extend T::Sig
17
+
18
+ # Livepeer-compatible multistream target URL (RTMP(S) or SRT)
19
+ field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
20
+
21
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
22
+
23
+
24
+ sig { params(url: String, name: T.nilable(String)).void }
25
+ def initialize(url: nil, name: nil)
26
+ @url = url
27
+ @name = name
28
+ end
29
+ end
30
+
31
+
32
+ class Target < Livepeer::Utils::FieldAugmented
33
+ extend T::Sig
34
+
35
+ # Name of transcoding profile that should be sent. Use
36
+ # "source" for pushing source stream data
37
+ #
38
+ field :profile, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
39
+ # ID of multistream target object where to push this stream
40
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
41
+ # Inline multistream target object. Will automatically
42
+ # create the target resource to be used by the created
43
+ # stream.
44
+ #
45
+ field :spec, T.nilable(Shared::Spec), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('spec') } }
46
+ # If true, the stream audio will be muted and only silent
47
+ # video will be pushed to the target.
48
+ #
49
+ field :video_only, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoOnly') } }
50
+
51
+
52
+ sig { params(profile: String, id: T.nilable(String), spec: T.nilable(Shared::Spec), video_only: T.nilable(T::Boolean)).void }
53
+ def initialize(profile: nil, id: nil, spec: nil, video_only: nil)
54
+ @profile = profile
55
+ @id = id
56
+ @spec = spec
57
+ @video_only = video_only
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,61 @@
1
+ # Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'sorbet-runtime'
7
+ require 'faraday'
8
+
9
+ module Livepeer
10
+ module Shared
11
+ # Inline multistream target object. Will automatically
12
+ # create the target resource to be used by the created
13
+ # stream.
14
+ #
15
+ class TargetAddPayloadSpec < Livepeer::Utils::FieldAugmented
16
+ extend T::Sig
17
+
18
+ # Livepeer-compatible multistream target URL (RTMP(S) or SRT)
19
+ field :url, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('url') } }
20
+
21
+ field :name, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('name') } }
22
+
23
+
24
+ sig { params(url: String, name: T.nilable(String)).void }
25
+ def initialize(url: nil, name: nil)
26
+ @url = url
27
+ @name = name
28
+ end
29
+ end
30
+
31
+
32
+ class TargetAddPayload < Livepeer::Utils::FieldAugmented
33
+ extend T::Sig
34
+
35
+ # Name of transcoding profile that should be sent. Use
36
+ # "source" for pushing source stream data
37
+ #
38
+ field :profile, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
39
+ # ID of multistream target object where to push this stream
40
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
41
+ # Inline multistream target object. Will automatically
42
+ # create the target resource to be used by the created
43
+ # stream.
44
+ #
45
+ field :spec, T.nilable(Shared::TargetAddPayloadSpec), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('spec') } }
46
+ # If true, the stream audio will be muted and only silent
47
+ # video will be pushed to the target.
48
+ #
49
+ field :video_only, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoOnly') } }
50
+
51
+
52
+ sig { params(profile: String, id: T.nilable(String), spec: T.nilable(Shared::TargetAddPayloadSpec), video_only: T.nilable(T::Boolean)).void }
53
+ def initialize(profile: nil, id: nil, spec: nil, video_only: nil)
54
+ @profile = profile
55
+ @id = id
56
+ @spec = spec
57
+ @video_only = video_only
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,35 @@
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 TargetOutput < Livepeer::Utils::FieldAugmented
13
+ extend T::Sig
14
+
15
+ # Name of transcoding profile that should be sent. Use
16
+ # "source" for pushing source stream data
17
+ #
18
+ field :profile, String, { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('profile') } }
19
+ # ID of multistream target object where to push this stream
20
+ field :id, T.nilable(String), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('id') } }
21
+ # If true, the stream audio will be muted and only silent
22
+ # video will be pushed to the target.
23
+ #
24
+ field :video_only, T.nilable(T::Boolean), { 'format_json': { 'letter_case': OpenApiSDK::Utils.field_name('videoOnly') } }
25
+
26
+
27
+ sig { params(profile: String, id: T.nilable(String), video_only: T.nilable(T::Boolean)).void }
28
+ def initialize(profile: nil, id: nil, video_only: nil)
29
+ @profile = profile
30
+ @id = id
31
+ @video_only = video_only
32
+ end
33
+ end
34
+ end
35
+ end