fastpixapi 1.1.3 → 1.2.0

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/metadata_fields.rb +2 -0
  3. data/lib/crystalline/module.rb +12 -13
  4. data/lib/fastpix_client/dimensions.rb +3 -3
  5. data/lib/fastpix_client/errors.rb +1 -1
  6. data/lib/fastpix_client/in_video_ai_features.rb +8 -8
  7. data/lib/fastpix_client/input_video.rb +4 -3
  8. data/lib/fastpix_client/live_playback.rb +253 -0
  9. data/lib/fastpix_client/manage_live_stream.rb +13 -12
  10. data/lib/fastpix_client/manage_videos.rb +21 -23
  11. data/lib/fastpix_client/metrics.rb +3 -3
  12. data/lib/fastpix_client/models/components/addtrackrequest.rb +6 -2
  13. data/lib/fastpix_client/models/components/addtrackrequest.rbi +2 -0
  14. data/lib/fastpix_client/models/components/addtrackresponse.rb +6 -2
  15. data/lib/fastpix_client/models/components/addtrackresponse.rbi +2 -0
  16. data/lib/fastpix_client/models/components/audiotrack.rb +6 -2
  17. data/lib/fastpix_client/models/components/audiotrack.rbi +2 -0
  18. data/lib/fastpix_client/models/components/generatetrackresponse.rb +6 -2
  19. data/lib/fastpix_client/models/components/generatetrackresponse.rbi +2 -0
  20. data/lib/fastpix_client/models/components/getallmediaresponse.rb +11 -13
  21. data/lib/fastpix_client/models/components/getallmediaresponse.rbi +3 -1
  22. data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rb +32 -12
  23. data/lib/fastpix_client/models/components/getallmediaresponse_mp4support.rbi +11 -1
  24. data/lib/fastpix_client/models/components/getallmediaresponse_sourceresolution.rb +2 -0
  25. data/lib/fastpix_client/models/components/{getmediaresponse.rb → getmediadetailresponse.rb} +16 -18
  26. data/lib/fastpix_client/models/components/{getmediaresponse.rbi → getmediadetailresponse.rbi} +5 -3
  27. data/lib/fastpix_client/models/components/{getmediaresponse_maxresolution.rb → getmediadetailresponse_maxresolution.rb} +2 -2
  28. data/lib/fastpix_client/models/components/getmediadetailresponse_maxresolution.rbi +11 -0
  29. data/lib/fastpix_client/models/components/{getmediaresponse_mediaquality.rb → getmediadetailresponse_mediaquality.rb} +2 -2
  30. data/lib/fastpix_client/models/components/getmediadetailresponse_mediaquality.rbi +11 -0
  31. data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rb +48 -0
  32. data/lib/fastpix_client/models/components/getmediadetailresponse_mp4support.rbi +21 -0
  33. data/lib/fastpix_client/models/components/{getmediaresponse_sourceresolution.rb → getmediadetailresponse_sourceresolution.rb} +4 -2
  34. data/lib/fastpix_client/models/components/getmediadetailresponse_sourceresolution.rbi +11 -0
  35. data/lib/fastpix_client/models/components/{getmediaresponse_status.rb → getmediadetailresponse_status.rb} +2 -2
  36. data/lib/fastpix_client/models/components/getmediadetailresponse_status.rbi +11 -0
  37. data/lib/fastpix_client/models/components/{getmediaresponse_track.rb → getmediadetailresponse_track.rb} +1 -1
  38. data/lib/fastpix_client/models/components/getmediadetailresponse_track.rbi +11 -0
  39. data/lib/fastpix_client/models/components/inputmediasettings.rb +7 -2
  40. data/lib/fastpix_client/models/components/inputmediasettings.rbi +2 -0
  41. data/lib/fastpix_client/models/components/live_media_clips.rb +11 -13
  42. data/lib/fastpix_client/models/components/live_media_clips.rbi +3 -1
  43. data/lib/fastpix_client/models/components/live_media_clips_mp4support.rb +32 -12
  44. data/lib/fastpix_client/models/components/live_media_clips_mp4support.rbi +11 -1
  45. data/lib/fastpix_client/models/components/live_media_clips_sourceresolution.rb +2 -0
  46. data/lib/fastpix_client/models/components/media.rb +11 -13
  47. data/lib/fastpix_client/models/components/media.rbi +3 -1
  48. data/lib/fastpix_client/models/components/media_mp4support.rb +32 -12
  49. data/lib/fastpix_client/models/components/media_mp4support.rbi +11 -1
  50. data/lib/fastpix_client/models/components/media_sourceresolution.rb +2 -0
  51. data/lib/fastpix_client/models/components/mediaclipresponse_data.rb +2 -2
  52. data/lib/fastpix_client/models/components/mediaclipresponse_data.rbi +1 -1
  53. data/lib/fastpix_client/models/components/playbackidrequest.rb +6 -2
  54. data/lib/fastpix_client/models/components/playbackidrequest.rbi +3 -1
  55. data/lib/fastpix_client/models/components/playbackidresponse.rb +6 -2
  56. data/lib/fastpix_client/models/components/playbackidresponse.rbi +3 -1
  57. data/lib/fastpix_client/models/components/playbackidsuccessresponse_data.rb +6 -2
  58. data/lib/fastpix_client/models/components/playbackidsuccessresponse_data.rbi +3 -1
  59. data/lib/fastpix_client/models/components/playbacksettings.rb +6 -2
  60. data/lib/fastpix_client/models/components/playbacksettings.rbi +3 -1
  61. data/lib/fastpix_client/models/components/playlistbyidresponsemedialistitem.rb +2 -2
  62. data/lib/fastpix_client/models/components/playlistbyidresponsemedialistitem.rbi +1 -1
  63. data/lib/fastpix_client/models/components/sourceaccessmedia.rb +11 -13
  64. data/lib/fastpix_client/models/components/sourceaccessmedia.rbi +3 -1
  65. data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rb +32 -12
  66. data/lib/fastpix_client/models/components/sourceaccessmedia_mp4support.rbi +11 -1
  67. data/lib/fastpix_client/models/components/sourceaccessmedia_sourceresolution.rb +2 -0
  68. data/lib/fastpix_client/models/components/subtitletrack.rb +6 -2
  69. data/lib/fastpix_client/models/components/subtitletrack.rbi +2 -0
  70. data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rb +6 -2
  71. data/lib/fastpix_client/models/components/tracksubtitlesgeneraterequest.rbi +2 -0
  72. data/lib/fastpix_client/models/components/update_media.rb +11 -13
  73. data/lib/fastpix_client/models/components/update_media.rbi +3 -1
  74. data/lib/fastpix_client/models/components/update_media_maxresolution.rb +0 -1
  75. data/lib/fastpix_client/models/components/update_media_mp4support.rb +32 -12
  76. data/lib/fastpix_client/models/components/update_media_mp4support.rbi +11 -1
  77. data/lib/fastpix_client/models/components/updatetrackrequest.rb +7 -7
  78. data/lib/fastpix_client/models/components/updatetrackrequest.rbi +2 -2
  79. data/lib/fastpix_client/models/components/updatetrackresponse.rb +6 -2
  80. data/lib/fastpix_client/models/components/updatetrackresponse.rbi +2 -0
  81. data/lib/fastpix_client/models/components/videotrack.rb +6 -2
  82. data/lib/fastpix_client/models/components/videotrack.rbi +2 -0
  83. data/lib/fastpix_client/models/components/videotrackforgetall.rb +6 -2
  84. data/lib/fastpix_client/models/components/videotrackforgetall.rbi +2 -0
  85. data/lib/fastpix_client/models/components.rb +7 -7
  86. data/lib/fastpix_client/models/operations/get_media_response.rb +1 -1
  87. data/lib/fastpix_client/models/operations/get_media_responsebody.rb +2 -2
  88. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_data.rb +40 -0
  89. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_data.rbi +17 -0
  90. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_defaultpolicy.rb +21 -0
  91. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_defaultpolicy.rbi +11 -0
  92. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_request.rb +40 -0
  93. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_request.rbi +17 -0
  94. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_requestbody.rb +40 -0
  95. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_requestbody.rbi +17 -0
  96. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_response.rb +48 -0
  97. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_response.rbi +21 -0
  98. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_responsebody.rb +36 -0
  99. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_responsebody.rbi +15 -0
  100. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_data.rb +40 -0
  101. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_data.rbi +17 -0
  102. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_defaultpolicy.rb +21 -0
  103. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_defaultpolicy.rbi +11 -0
  104. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_request.rb +40 -0
  105. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_request.rbi +17 -0
  106. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_requestbody.rb +40 -0
  107. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_requestbody.rbi +17 -0
  108. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_response.rb +48 -0
  109. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_response.rbi +21 -0
  110. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_responsebody.rb +36 -0
  111. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_responsebody.rbi +15 -0
  112. data/lib/fastpix_client/models/operations.rb +12 -0
  113. data/lib/fastpix_client/playlist.rb +2 -1
  114. data/lib/fastpix_client/sdkconfiguration.rb +3 -3
  115. data/lib/fastpix_client/simulcast_stream.rb +3 -3
  116. data/lib/fastpix_client/start_live_stream.rb +4 -4
  117. data/lib/fastpix_client/views.rb +3 -3
  118. metadata +58 -56
  119. data/lib/fastpix_client/models/components/getmediaresponse_maxresolution.rbi +0 -11
  120. data/lib/fastpix_client/models/components/getmediaresponse_mediaquality.rbi +0 -11
  121. data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rb +0 -28
  122. data/lib/fastpix_client/models/components/getmediaresponse_mp4support.rbi +0 -11
  123. data/lib/fastpix_client/models/components/getmediaresponse_sourceresolution.rbi +0 -11
  124. data/lib/fastpix_client/models/components/getmediaresponse_status.rbi +0 -11
  125. data/lib/fastpix_client/models/components/getmediaresponse_track.rbi +0 -11
  126. data/test/sdk_examples_test.rb +0 -20
  127. data/test/test_helper.rb +0 -29
@@ -33,7 +33,7 @@ class FastpixClient::Models::Components::Media
33
33
  def moderation(); end
34
34
  def moderation=(str_); end
35
35
  def duration(); end
36
- def duration=(str_); end
36
+ def duration=(float_); end
37
37
  def created_at(); end
38
38
  def created_at=(str_); end
39
39
  def updated_at(); end
@@ -56,6 +56,8 @@ class FastpixClient::Models::Components::Media
56
56
  def is_audio_only=(str_); end
57
57
  def subtitle_available(); end
58
58
  def subtitle_available=(str_); end
59
+ def optimize_audio(); end
60
+ def optimize_audio=(str_); end
59
61
  def aspect_ratio(); end
60
62
  def aspect_ratio=(str_); end
61
63
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # MediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class MediaMp4Support < T::Enum
10
+ # MediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class MediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::MediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -15,7 +15,7 @@ module FastpixClient
15
15
  # The unique identifier assigned to the media by FastPix.
16
16
  field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('id') } }
17
17
  # Duration of the media in HH:MM:SS format.
18
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
18
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
19
19
  # The current processing status of the media.
20
20
  field :status, Crystalline::Nilable.new(Models::Components::MediaClipResponseStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::MediaClipResponseStatus, true) } }
21
21
  # A video thumbnail that acts as a preview image for the video.
@@ -25,7 +25,7 @@ module FastpixClient
25
25
 
26
26
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::MediaClipResponsePlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
27
27
 
28
- sig { params(id: T.nilable(::String), duration: T.nilable(::String), status: T.nilable(Models::Components::MediaClipResponseStatus), thumbnail: T.nilable(::String), created_at: T.nilable(::DateTime), playback_ids: T.nilable(T::Array[Models::Components::MediaClipResponsePlaybackId])).void }
28
+ sig { params(id: T.nilable(::String), duration: T.nilable(::Float), status: T.nilable(Models::Components::MediaClipResponseStatus), thumbnail: T.nilable(::String), created_at: T.nilable(::DateTime), playback_ids: T.nilable(T::Array[Models::Components::MediaClipResponsePlaybackId])).void }
29
29
  def initialize(id: nil, duration: nil, status: nil, thumbnail: nil, created_at: nil, playback_ids: nil)
30
30
  @id = id
31
31
  @duration = duration
@@ -11,7 +11,7 @@ class FastpixClient::Models::Components::MediaClipResponseData
11
11
  def id(); end
12
12
  def id=(str_); end
13
13
  def duration(); end
14
- def duration=(str_); end
14
+ def duration=(float_); end
15
15
  def status(); end
16
16
  def status=(str_); end
17
17
  def thumbnail(); end
@@ -14,16 +14,20 @@ module FastpixClient
14
14
 
15
15
  # Basic access policy for media content
16
16
  field :access_policy, Crystalline::Nilable.new(Models::Components::BasicAccessPolicy), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessPolicy'), 'decoder': Utils.enum_from_string(Models::Components::BasicAccessPolicy, true) } }
17
+ # Domain and user-agent access restrictions applied to the live playback ID.
18
+ field :access_restrictions, Crystalline::Nilable.new(Models::Components::PlaybackIdAccessRestrictions), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessRestrictions') } }
17
19
 
18
- sig { params(access_policy: T.nilable(Models::Components::BasicAccessPolicy)).void }
19
- def initialize(access_policy: Models::Components::BasicAccessPolicy::PUBLIC)
20
+ sig { params(access_policy: T.nilable(Models::Components::BasicAccessPolicy), access_restrictions: T.nilable(Models::Components::PlaybackIdAccessRestrictions)).void }
21
+ def initialize(access_policy: Models::Components::BasicAccessPolicy::PUBLIC, access_restrictions: nil)
20
22
  @access_policy = access_policy
23
+ @access_restrictions = access_restrictions
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
26
29
  return false unless @access_policy == other.access_policy
30
+ return false unless @access_restrictions == other.access_restrictions
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class FastpixClient::Models::Components::PlaybackIdRequest
11
11
  def access_policy(); end
12
12
  def access_policy=(str_); end
13
- end
13
+ def access_restrictions(); end
14
+ def access_restrictions=(str_); end
15
+ end
@@ -16,11 +16,14 @@ module FastpixClient
16
16
  field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('id') } }
17
17
  # Determines if access to the streamed content is kept private or available to all.
18
18
  field :access_policy, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessPolicy') } }
19
+ # Domain and user-agent access restrictions applied to the live playback ID.
20
+ field :access_restrictions, Crystalline::Nilable.new(Models::Components::PlaybackIdAccessRestrictions), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessRestrictions') } }
19
21
 
20
- sig { params(id: T.nilable(::String), access_policy: T.nilable(::String)).void }
21
- def initialize(id: nil, access_policy: nil)
22
+ sig { params(id: T.nilable(::String), access_policy: T.nilable(::String), access_restrictions: T.nilable(Models::Components::PlaybackIdAccessRestrictions)).void }
23
+ def initialize(id: nil, access_policy: nil, access_restrictions: nil)
22
24
  @id = id
23
25
  @access_policy = access_policy
26
+ @access_restrictions = access_restrictions
24
27
  end
25
28
 
26
29
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -28,6 +31,7 @@ module FastpixClient
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @id == other.id
30
33
  return false unless @access_policy == other.access_policy
34
+ return false unless @access_restrictions == other.access_restrictions
31
35
  true
32
36
  end
33
37
  end
@@ -12,4 +12,6 @@ class FastpixClient::Models::Components::PlaybackIdResponse
12
12
  def id=(str_); end
13
13
  def access_policy(); end
14
14
  def access_policy=(str_); end
15
- end
15
+ def access_restrictions(); end
16
+ def access_restrictions=(str_); end
17
+ end
@@ -16,11 +16,14 @@ module FastpixClient
16
16
  field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('id') } }
17
17
  # Determines if access to the streamed content is kept private or available to all.
18
18
  field :access_policy, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessPolicy') } }
19
+ # Domain and user-agent access restrictions applied to the live playback ID.
20
+ field :access_restrictions, Crystalline::Nilable.new(Models::Components::PlaybackIdAccessRestrictions), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessRestrictions') } }
19
21
 
20
- sig { params(id: T.nilable(::String), access_policy: T.nilable(::String)).void }
21
- def initialize(id: nil, access_policy: nil)
22
+ sig { params(id: T.nilable(::String), access_policy: T.nilable(::String), access_restrictions: T.nilable(Models::Components::PlaybackIdAccessRestrictions)).void }
23
+ def initialize(id: nil, access_policy: nil, access_restrictions: nil)
22
24
  @id = id
23
25
  @access_policy = access_policy
26
+ @access_restrictions = access_restrictions
24
27
  end
25
28
 
26
29
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -28,6 +31,7 @@ module FastpixClient
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @id == other.id
30
33
  return false unless @access_policy == other.access_policy
34
+ return false unless @access_restrictions == other.access_restrictions
31
35
  true
32
36
  end
33
37
  end
@@ -12,4 +12,6 @@ class FastpixClient::Models::Components::PlaybackIdSuccessResponseData
12
12
  def id=(str_); end
13
13
  def access_policy(); end
14
14
  def access_policy=(str_); end
15
- end
15
+ def access_restrictions(); end
16
+ def access_restrictions=(str_); end
17
+ end
@@ -14,16 +14,20 @@ module FastpixClient
14
14
 
15
15
  # Basic access policy for media content
16
16
  field :access_policy, Crystalline::Nilable.new(Models::Components::BasicAccessPolicy), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessPolicy'), 'decoder': Utils.enum_from_string(Models::Components::BasicAccessPolicy, true) } }
17
+ # Domain and user-agent access restrictions applied to the live playback ID.
18
+ field :access_restrictions, Crystalline::Nilable.new(Models::Components::PlaybackIdAccessRestrictions), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('accessRestrictions') } }
17
19
 
18
- sig { params(access_policy: T.nilable(Models::Components::BasicAccessPolicy)).void }
19
- def initialize(access_policy: Models::Components::BasicAccessPolicy::PUBLIC)
20
+ sig { params(access_policy: T.nilable(Models::Components::BasicAccessPolicy), access_restrictions: T.nilable(Models::Components::PlaybackIdAccessRestrictions)).void }
21
+ def initialize(access_policy: Models::Components::BasicAccessPolicy::PUBLIC, access_restrictions: nil)
20
22
  @access_policy = access_policy
23
+ @access_restrictions = access_restrictions
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
26
29
  return false unless @access_policy == other.access_policy
30
+ return false unless @access_restrictions == other.access_restrictions
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class FastpixClient::Models::Components::PlaybackSettings
11
11
  def access_policy(); end
12
12
  def access_policy=(str_); end
13
- end
13
+ def access_restrictions(); end
14
+ def access_restrictions=(str_); end
15
+ end
@@ -15,7 +15,7 @@ module FastpixClient
15
15
  # Timestamp of media creation in the workspace.
16
16
  field :created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('createdAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
17
17
  # Duration of the media in hh:mm:ss format.
18
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
18
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
19
19
  # unique id of the particular media.
20
20
  field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('id') } }
21
21
  # source resolution of the media.
@@ -29,7 +29,7 @@ module FastpixClient
29
29
  # Title of the media.
30
30
  field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
31
31
 
32
- sig { params(created_at: T.nilable(::DateTime), duration: T.nilable(::String), id: T.nilable(::String), source_resolution: T.nilable(::String), status: T.nilable(::String), thumbnail: T.nilable(::String), creator_id: T.nilable(::String), title: T.nilable(::String)).void }
32
+ sig { params(created_at: T.nilable(::DateTime), duration: T.nilable(::Float), id: T.nilable(::String), source_resolution: T.nilable(::String), status: T.nilable(::String), thumbnail: T.nilable(::String), creator_id: T.nilable(::String), title: T.nilable(::String)).void }
33
33
  def initialize(created_at: nil, duration: nil, id: nil, source_resolution: nil, status: nil, thumbnail: nil, creator_id: nil, title: nil)
34
34
  @created_at = created_at
35
35
  @duration = duration
@@ -11,7 +11,7 @@ class FastpixClient::Models::Components::PlaylistByIdResponseMediaListItem
11
11
  def created_at(); end
12
12
  def created_at=(str_); end
13
13
  def duration(); end
14
- def duration=(str_); end
14
+ def duration=(float_); end
15
15
  def id(); end
16
16
  def id=(str_); end
17
17
  def source_resolution(); end
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :creator_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('creatorId') } }
23
23
  # Determines the media's status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::SourceAccessMediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::SourceAccessMediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::SourceAccessMediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::SourceAccessMediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::SourceAccessMediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
33
28
  field :playback_ids, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::PlaybackId)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('playbackIds') } }
34
29
  # A media consists of different media tracks, like video, audio, and subtitle, all combined.
@@ -41,8 +36,8 @@ module FastpixClient
41
36
  field :named_entities, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('namedEntities') } }
42
37
  # Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
43
38
  field :moderation, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('moderation') } }
44
- # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
45
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
39
+ # Duration of the media in seconds.
40
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
46
41
  # Time the media was created, defined as a localDateTime (UTC Time).
47
42
  field :created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('createdAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
48
43
  # Time the media was updated, defined as a localDateTime (UTC Time).
@@ -66,11 +61,13 @@ module FastpixClient
66
61
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
67
62
  # Indicates whether subtitles are available for the media.
68
63
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
64
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
65
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
69
66
  # The aspect ratio of a video describes its shape based on the relationship between its width and height.
70
67
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
71
68
 
72
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::SourceAccessMediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::SourceAccessMediaStatus), mp4_support: T.nilable(Models::Components::SourceAccessMediaMp4Support), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::SourceAccessMediaMaxResolution), source_resolution: T.nilable(Models::Components::SourceAccessMediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
73
- def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::SourceAccessMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::SourceAccessMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, aspect_ratio: nil)
69
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::SourceAccessMediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::SourceAccessMediaStatus), mp4_support: T.nilable(T::Array[Models::Components::SourceAccessMediaMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), duration: T.nilable(::Float), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::SourceAccessMediaMaxResolution), source_resolution: T.nilable(Models::Components::SourceAccessMediaSourceResolution), source_access: T.nilable(T::Boolean), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), aspect_ratio: T.nilable(::String)).void }
70
+ def initialize(id: nil, workspace_id: nil, media_quality: nil, creator_id: nil, status: nil, mp4_support: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::SourceAccessMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::SourceAccessMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
74
71
  @id = id
75
72
  @workspace_id = workspace_id
76
73
  @media_quality = media_quality
@@ -95,6 +92,7 @@ module FastpixClient
95
92
  @generated_subtitles = generated_subtitles
96
93
  @is_audio_only = is_audio_only
97
94
  @subtitle_available = subtitle_available
95
+ @optimize_audio = optimize_audio
98
96
  @aspect_ratio = aspect_ratio
99
97
  end
100
98
 
@@ -106,12 +104,12 @@ module FastpixClient
106
104
  @mp4_support, @playback_ids, @tracks, @summary, @chapters,
107
105
  @named_entities, @moderation, @duration, @created_at, @updated_at,
108
106
  @thumbnail, @metadata, @title, @max_resolution, @source_resolution,
109
- @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @aspect_ratio] ==
107
+ @source_access, @generated_subtitles, @is_audio_only, @subtitle_available, @optimize_audio, @aspect_ratio] ==
110
108
  [other.id, other.workspace_id, other.media_quality, other.creator_id, other.status,
111
109
  other.mp4_support, other.playback_ids, other.tracks, other.summary, other.chapters,
112
110
  other.named_entities, other.moderation, other.duration, other.created_at, other.updated_at,
113
111
  other.thumbnail, other.metadata, other.title, other.max_resolution, other.source_resolution,
114
- other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.aspect_ratio]
112
+ other.source_access, other.generated_subtitles, other.is_audio_only, other.subtitle_available, other.optimize_audio, other.aspect_ratio]
115
113
  end
116
114
  end
117
115
  end
@@ -33,7 +33,7 @@ class FastpixClient::Models::Components::SourceAccessMedia
33
33
  def moderation(); end
34
34
  def moderation=(str_); end
35
35
  def duration(); end
36
- def duration=(str_); end
36
+ def duration=(float_); end
37
37
  def created_at(); end
38
38
  def created_at=(str_); end
39
39
  def updated_at(); end
@@ -56,6 +56,8 @@ class FastpixClient::Models::Components::SourceAccessMedia
56
56
  def is_audio_only=(str_); end
57
57
  def subtitle_available(); end
58
58
  def subtitle_available=(str_); end
59
+ def optimize_audio(); end
60
+ def optimize_audio=(str_); end
59
61
  def aspect_ratio(); end
60
62
  def aspect_ratio=(str_); end
61
63
  end
@@ -7,20 +7,40 @@
7
7
  module FastpixClient
8
8
  module Models
9
9
  module Components
10
- # SourceAccessMediaMp4Support - Determines the type of MP4 support for the media.
11
- # - **none**: Disables MP4 support.
12
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
13
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
14
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
15
- #
16
- class SourceAccessMediaMp4Support < T::Enum
10
+ # SourceAccessMediaMp4Support - One MP4 rendition generated for the media when MP4 support is requested.
11
+ class SourceAccessMediaMp4Support
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
17
14
 
15
+ # The MP4 rendition type. `capped_4k` is a downloadable MP4 video capped at 4K resolution, `audioOnly` is a downloadable m4a audio-only file.
16
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type') } }
17
+ # Generation status of this MP4 rendition. One of `preparing`, `ready`, or `failed`.
18
+ field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
19
+ # Pixel height of the rendition. Omitted for the `audioOnly` type.
20
+ field :height, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('height') } }
21
+ # Pixel width of the rendition. Omitted for the `audioOnly` type.
22
+ field :width, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('width') } }
23
+ # File extension of the downloadable rendition. One of `mp4` or `m4a`.
24
+ field :ext, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('ext') } }
18
25
 
19
- enums do
20
- NONE = new('none')
21
- CAPPED_4K = new('capped_4k')
22
- AUDIO_ONLY = new('audioOnly')
23
- AUDIO_ONLY_CAPPED_4K = new('audioOnly,capped_4k')
26
+ sig { params(type: T.nilable(::String), status: T.nilable(::String), height: T.nilable(::Integer), width: T.nilable(::Integer), ext: T.nilable(::String)).void }
27
+ def initialize(type: nil, status: nil, height: nil, width: nil, ext: nil)
28
+ @type = type
29
+ @status = status
30
+ @height = height
31
+ @width = width
32
+ @ext = ext
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @type == other.type
39
+ return false unless @status == other.status
40
+ return false unless @height == other.height
41
+ return false unless @width == other.width
42
+ return false unless @ext == other.ext
43
+ true
24
44
  end
25
45
  end
26
46
  end
@@ -8,4 +8,14 @@ end
8
8
 
9
9
 
10
10
  class FastpixClient::Models::Components::SourceAccessMediaMp4Support
11
- end
11
+ def type(); end
12
+ def type=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ def height(); end
16
+ def height=(str_); end
17
+ def width(); end
18
+ def width=(str_); end
19
+ def ext(); end
20
+ def ext=(str_); end
21
+ end
@@ -22,6 +22,8 @@ module FastpixClient
22
22
  SEVEN_HUNDRED_AND_TWENTY = new('720')
23
23
  FOUR_HUNDRED_AND_EIGHTYP = new('480p')
24
24
  FOUR_HUNDRED_AND_EIGHTY = new('480')
25
+ THREE_HUNDRED_AND_SIXTYP = new('360p')
26
+ THREE_HUNDRED_AND_SIXTY = new('360')
25
27
  end
26
28
  end
27
29
  end
@@ -18,6 +18,8 @@ module FastpixClient
18
18
  field :type, Crystalline::Nilable.new(Models::Components::SubtitleTrackType), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('type'), 'decoder': Utils.enum_from_string(Models::Components::SubtitleTrackType, true) } }
19
19
  # Indicates the current state of the track. 'available' means the track has been processed successfully and is ready to be used or played.
20
20
  field :status, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status') } }
21
+ # Title of the track.
22
+ field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
21
23
  # Name of the language in which the subtitles will be generated.
22
24
  #
23
25
  field :language_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageName') } }
@@ -25,11 +27,12 @@ module FastpixClient
25
27
  #
26
28
  field :language_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode') } }
27
29
 
28
- sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::SubtitleTrackType), status: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
29
- def initialize(id: nil, type: nil, status: nil, language_name: nil, language_code: nil)
30
+ sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::SubtitleTrackType), status: T.nilable(::String), title: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
31
+ def initialize(id: nil, type: nil, status: nil, title: nil, language_name: nil, language_code: nil)
30
32
  @id = id
31
33
  @type = type
32
34
  @status = status
35
+ @title = title
33
36
  @language_name = language_name
34
37
  @language_code = language_code
35
38
  end
@@ -40,6 +43,7 @@ module FastpixClient
40
43
  return false unless @id == other.id
41
44
  return false unless @type == other.type
42
45
  return false unless @status == other.status
46
+ return false unless @title == other.title
43
47
  return false unless @language_name == other.language_name
44
48
  return false unless @language_code == other.language_code
45
49
  true
@@ -14,6 +14,8 @@ class FastpixClient::Models::Components::SubtitleTrack
14
14
  def type=(str_); end
15
15
  def status(); end
16
16
  def status=(str_); end
17
+ def title(); end
18
+ def title=(str_); end
17
19
  def language_name(); end
18
20
  def language_name=(str_); end
19
21
  def language_code(); end
@@ -19,12 +19,15 @@ module FastpixClient
19
19
  field :language_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageName') } }
20
20
  # Language code for content localization
21
21
  field :language_code, Crystalline::Nilable.new(Models::Components::LanguageCode), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode'), 'decoder': Utils.enum_from_string(Models::Components::LanguageCode, true) } }
22
+ # Title of the track.
23
+ field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
22
24
 
23
- sig { params(metadata: T.nilable(T::Hash[Symbol, ::String]), language_name: T.nilable(::String), language_code: T.nilable(Models::Components::LanguageCode)).void }
24
- def initialize(metadata: nil, language_name: 'English', language_code: Models::Components::LanguageCode::EN_US)
25
+ sig { params(metadata: T.nilable(T::Hash[Symbol, ::String]), language_name: T.nilable(::String), language_code: T.nilable(Models::Components::LanguageCode), title: T.nilable(::String)).void }
26
+ def initialize(metadata: nil, language_name: 'English', language_code: Models::Components::LanguageCode::EN_US, title: nil)
25
27
  @metadata = metadata
26
28
  @language_name = language_name
27
29
  @language_code = language_code
30
+ @title = title
28
31
  end
29
32
 
30
33
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -33,6 +36,7 @@ module FastpixClient
33
36
  return false unless @metadata == other.metadata
34
37
  return false unless @language_name == other.language_name
35
38
  return false unless @language_code == other.language_code
39
+ return false unless @title == other.title
36
40
  true
37
41
  end
38
42
  end
@@ -14,4 +14,6 @@ class FastpixClient::Models::Components::TrackSubtitlesGenerateRequest
14
14
  def language_name=(str_); end
15
15
  def language_code(); end
16
16
  def language_code=(str_); end
17
+ def title(); end
18
+ def title=(str_); end
17
19
  end
@@ -22,13 +22,8 @@ module FastpixClient
22
22
  field :media_quality, Crystalline::Nilable.new(Models::Components::UpdateMediaMediaQuality), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mediaQuality'), 'decoder': Utils.enum_from_string(Models::Components::UpdateMediaMediaQuality, true) } }
23
23
  # Determines the media's status, which can be one of the possible values.
24
24
  field :status, Crystalline::Nilable.new(Models::Components::UpdateMediaStatus), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('status'), 'decoder': Utils.enum_from_string(Models::Components::UpdateMediaStatus, true) } }
25
- # Determines the type of MP4 support for the media.
26
- # - **none**: Disables MP4 support.
27
- # - **capped_4k**: Enables MP4 downloads with resolutions up to 4K.
28
- # - **audioOnly**: Provides an MP4 stream containing only the audio.
29
- # - **audioOnly,capped_4k**: Enables both MP4 video downloads (up to 4K) and an audio-only stream.
30
- #
31
- field :mp4_support, Crystalline::Nilable.new(Models::Components::UpdateMediaMp4Support), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support'), 'decoder': Utils.enum_from_string(Models::Components::UpdateMediaMp4Support, true) } }
25
+ # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
26
+ field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::UpdateMediaMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
32
27
  # The sourceAccess parameter determines whether the original media file is accessible. Set to true to enable access or false to restrict it
33
28
  field :source_access, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('sourceAccess') } }
34
29
  # A collection of Playback ID objects utilized for crafting HLS playback URLs.
@@ -45,8 +40,10 @@ module FastpixClient
45
40
  field :moderation, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('moderation') } }
46
41
  # Specifies whether subtitle tracks are available for the media.
47
42
  field :subtitle_available, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('subtitleAvailable') } }
48
- # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
49
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
43
+ # Enhance the quality and volume of the audio track. This is available for pre-recorded content only.
44
+ field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
45
+ # Duration of the media in seconds.
46
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
50
47
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
51
48
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
52
49
  # Time the media was created, defined as a localDateTime (UTC Time).
@@ -68,8 +65,8 @@ module FastpixClient
68
65
  # Indicates whether the media contains only audio (no video track).
69
66
  field :is_audio_only, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('isAudioOnly') } }
70
67
 
71
- sig { params(thumbnail: T.nilable(::String), id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::UpdateMediaMediaQuality), status: T.nilable(Models::Components::UpdateMediaStatus), mp4_support: T.nilable(Models::Components::UpdateMediaMp4Support), source_access: T.nilable(T::Boolean), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), subtitle_available: T.nilable(T::Boolean), duration: T.nilable(::String), aspect_ratio: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), metadata: T.nilable(T::Hash[Symbol, ::String]), creator_id: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::UpdateMediaMaxResolution), source_resolution: T.nilable(Models::Components::UpdateMediaSourceResolution), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean)).void }
72
- def initialize(thumbnail: nil, id: nil, workspace_id: nil, media_quality: nil, status: nil, mp4_support: nil, source_access: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, subtitle_available: nil, duration: nil, aspect_ratio: nil, created_at: nil, updated_at: nil, metadata: nil, creator_id: '8fa85f64-5717-4562-b3fc-2c963f66afa6', title: 'My Video Title', max_resolution: Models::Components::UpdateMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::UpdateMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil)
68
+ sig { params(thumbnail: T.nilable(::String), id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::UpdateMediaMediaQuality), status: T.nilable(Models::Components::UpdateMediaStatus), mp4_support: T.nilable(T::Array[Models::Components::UpdateMediaMp4Support]), source_access: T.nilable(T::Boolean), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack)]), summary: T.nilable(Models::Components::AiSummaryRecord), chapters: T.nilable(Models::Components::AiResponseRecord), named_entities: T.nilable(Models::Components::AiResponseRecord), moderation: T.nilable(Models::Components::AiResponseRecord), subtitle_available: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean), duration: T.nilable(::Float), aspect_ratio: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), metadata: T.nilable(T::Hash[Symbol, ::String]), creator_id: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::UpdateMediaMaxResolution), source_resolution: T.nilable(Models::Components::UpdateMediaSourceResolution), generated_subtitles: T.nilable(T::Array[Models::Components::TracksSubtitles]), is_audio_only: T.nilable(T::Boolean)).void }
69
+ def initialize(thumbnail: nil, id: nil, workspace_id: nil, media_quality: nil, status: nil, mp4_support: nil, source_access: nil, playback_ids: nil, tracks: nil, summary: nil, chapters: nil, named_entities: nil, moderation: nil, subtitle_available: nil, optimize_audio: nil, duration: nil, aspect_ratio: nil, created_at: nil, updated_at: nil, metadata: nil, creator_id: '8fa85f64-5717-4562-b3fc-2c963f66afa6', title: 'My Video Title', max_resolution: Models::Components::UpdateMediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::UpdateMediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil)
73
70
  @thumbnail = thumbnail
74
71
  @id = id
75
72
  @workspace_id = workspace_id
@@ -84,6 +81,7 @@ module FastpixClient
84
81
  @named_entities = named_entities
85
82
  @moderation = moderation
86
83
  @subtitle_available = subtitle_available
84
+ @optimize_audio = optimize_audio
87
85
  @duration = duration
88
86
  @aspect_ratio = aspect_ratio
89
87
  @created_at = created_at
@@ -103,12 +101,12 @@ module FastpixClient
103
101
 
104
102
  [@thumbnail, @id, @workspace_id, @media_quality, @status,
105
103
  @mp4_support, @source_access, @playback_ids, @tracks, @summary,
106
- @chapters, @named_entities, @moderation, @subtitle_available, @duration,
104
+ @chapters, @named_entities, @moderation, @subtitle_available, @optimize_audio, @duration,
107
105
  @aspect_ratio, @created_at, @updated_at, @metadata, @creator_id,
108
106
  @title, @max_resolution, @source_resolution, @generated_subtitles, @is_audio_only] ==
109
107
  [other.thumbnail, other.id, other.workspace_id, other.media_quality, other.status,
110
108
  other.mp4_support, other.source_access, other.playback_ids, other.tracks, other.summary,
111
- other.chapters, other.named_entities, other.moderation, other.subtitle_available, other.duration,
109
+ other.chapters, other.named_entities, other.moderation, other.subtitle_available, other.optimize_audio, other.duration,
112
110
  other.aspect_ratio, other.created_at, other.updated_at, other.metadata, other.creator_id,
113
111
  other.title, other.max_resolution, other.source_resolution, other.generated_subtitles, other.is_audio_only]
114
112
  end