fastpixapi 1.1.4 → 1.2.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 (86) 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/live_playback.rb +253 -0
  5. data/lib/fastpix_client/models/components/addtrackresponse.rb +1 -1
  6. data/lib/fastpix_client/models/components/audiotrack.rb +1 -1
  7. data/lib/fastpix_client/models/components/createmediaresponse.rb +1 -1
  8. data/lib/fastpix_client/models/components/createplaybackid.rb +1 -1
  9. data/lib/fastpix_client/models/components/createplaybackid_domains.rb +1 -1
  10. data/lib/fastpix_client/models/components/createplaybackid_useragents.rb +1 -1
  11. data/lib/fastpix_client/models/components/directupload.rb +1 -1
  12. data/lib/fastpix_client/models/components/directuploadresponse.rb +1 -1
  13. data/lib/fastpix_client/models/components/generatetrackresponse.rb +1 -1
  14. data/lib/fastpix_client/models/components/getallmediaresponse.rb +3 -3
  15. data/lib/fastpix_client/models/components/getallmediaresponse.rbi +1 -1
  16. data/lib/fastpix_client/models/components/getmediadetailresponse.rb +3 -3
  17. data/lib/fastpix_client/models/components/getmediadetailresponse.rbi +1 -1
  18. data/lib/fastpix_client/models/components/inputmediasettings.rb +7 -2
  19. data/lib/fastpix_client/models/components/inputmediasettings.rbi +2 -0
  20. data/lib/fastpix_client/models/components/live_media_clips.rb +3 -3
  21. data/lib/fastpix_client/models/components/live_media_clips.rbi +1 -1
  22. data/lib/fastpix_client/models/components/media.rb +3 -3
  23. data/lib/fastpix_client/models/components/media.rbi +1 -1
  24. data/lib/fastpix_client/models/components/mediaclipresponse_data.rb +2 -2
  25. data/lib/fastpix_client/models/components/mediaclipresponse_data.rbi +1 -1
  26. data/lib/fastpix_client/models/components/playbackid.rb +1 -1
  27. data/lib/fastpix_client/models/components/playbackid_domains.rb +1 -1
  28. data/lib/fastpix_client/models/components/playbackid_useragents.rb +1 -1
  29. data/lib/fastpix_client/models/components/playbackidrequest.rb +6 -2
  30. data/lib/fastpix_client/models/components/playbackidrequest.rbi +3 -1
  31. data/lib/fastpix_client/models/components/playbackidresponse.rb +6 -2
  32. data/lib/fastpix_client/models/components/playbackidresponse.rbi +3 -1
  33. data/lib/fastpix_client/models/components/playbackidsuccessresponse_data.rb +6 -2
  34. data/lib/fastpix_client/models/components/playbackidsuccessresponse_data.rbi +3 -1
  35. data/lib/fastpix_client/models/components/playbacksettings.rb +6 -2
  36. data/lib/fastpix_client/models/components/playbacksettings.rbi +3 -1
  37. data/lib/fastpix_client/models/components/playlistbyidresponsedatamanual.rb +1 -1
  38. data/lib/fastpix_client/models/components/playlistbyidresponsedatasmart.rb +1 -1
  39. data/lib/fastpix_client/models/components/playlistbyidresponsemedialistitem.rb +2 -2
  40. data/lib/fastpix_client/models/components/playlistbyidresponsemedialistitem.rbi +1 -1
  41. data/lib/fastpix_client/models/components/playlistitem.rb +1 -1
  42. data/lib/fastpix_client/models/components/sourceaccessmedia.rb +3 -3
  43. data/lib/fastpix_client/models/components/sourceaccessmedia.rbi +1 -1
  44. data/lib/fastpix_client/models/components/subtitletrack.rb +1 -1
  45. data/lib/fastpix_client/models/components/unused_uploads_playbackid.rb +1 -1
  46. data/lib/fastpix_client/models/components/unused_uploads_playbackid_domains.rb +1 -1
  47. data/lib/fastpix_client/models/components/unused_uploads_playbackid_useragents.rb +1 -1
  48. data/lib/fastpix_client/models/components/unuseddirectupload.rb +1 -1
  49. data/lib/fastpix_client/models/components/unuseddirectuploadresponse.rb +1 -1
  50. data/lib/fastpix_client/models/components/update_media.rb +3 -3
  51. data/lib/fastpix_client/models/components/update_media.rbi +1 -1
  52. data/lib/fastpix_client/models/components/updatetrackresponse.rb +1 -1
  53. data/lib/fastpix_client/models/operations/get_playback_id_data.rb +1 -1
  54. data/lib/fastpix_client/models/operations/get_playback_id_domains.rb +1 -1
  55. data/lib/fastpix_client/models/operations/get_playback_id_useragents.rb +1 -1
  56. data/lib/fastpix_client/models/operations/list_playback_ids_data.rb +1 -1
  57. data/lib/fastpix_client/models/operations/list_playback_ids_domains.rb +1 -1
  58. data/lib/fastpix_client/models/operations/list_playback_ids_useragents.rb +1 -1
  59. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_data.rb +40 -0
  60. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_data.rbi +17 -0
  61. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_defaultpolicy.rb +21 -0
  62. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_defaultpolicy.rbi +11 -0
  63. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_request.rb +40 -0
  64. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_request.rbi +17 -0
  65. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_requestbody.rb +40 -0
  66. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_requestbody.rbi +17 -0
  67. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_response.rb +48 -0
  68. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_response.rbi +21 -0
  69. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_responsebody.rb +36 -0
  70. data/lib/fastpix_client/models/operations/update_live_stream_domain_restrictions_responsebody.rbi +15 -0
  71. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_data.rb +40 -0
  72. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_data.rbi +17 -0
  73. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_defaultpolicy.rb +21 -0
  74. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_defaultpolicy.rbi +11 -0
  75. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_request.rb +40 -0
  76. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_request.rbi +17 -0
  77. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_requestbody.rb +40 -0
  78. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_requestbody.rbi +17 -0
  79. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_response.rb +48 -0
  80. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_response.rbi +21 -0
  81. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_responsebody.rb +36 -0
  82. data/lib/fastpix_client/models/operations/update_live_stream_user_agent_restrictions_responsebody.rbi +15 -0
  83. data/lib/fastpix_client/models/operations.rb +12 -0
  84. data/lib/fastpix_client/sdkconfiguration.rb +3 -3
  85. data/lib/fastpix_client/utils/utils.rb +3 -2
  86. metadata +44 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bd2162d339bc78c7eca4ab3e7c4aa40556a82c8d2181c290fa37f2febf6a2d8a
4
- data.tar.gz: 22b7ebf19e385d5d635b647f78ec3090e3612b6f047648194e094224b0baee96
3
+ metadata.gz: 61193159cda175fba2c8a1a939a4aabdf5ffdb6b0077fe7c60a0d96051001cae
4
+ data.tar.gz: a8b192da1ff5a627de29295d5c1c85a5816bf85f7f5917f80f966a97048de6e8
5
5
  SHA512:
6
- metadata.gz: 4d952510eddef77d7bf6e3266ee2507fdb88e3679574cf7f4d7c954819a3e9538569c31285718493e7a935d2f114157f62c0798fe0722d64e922a04be0cd86d3
7
- data.tar.gz: a73898288cb56887aa9a95d3082b45712da8836c769c937869c77960f846f1409f66bc3f658a8b5efe8298d84167a4d2d0777cb9f717739a34e6cc77a2051446
6
+ metadata.gz: 25571c8ad27dca1459644bf7b770aa39ea157fcd910f76136138d059f9533c71b6cf75c8e80e48bdf8cc3e33891b3644787b4aa66b4fd642736ab38096e44e6f
7
+ data.tar.gz: 844af40feb387941740b6a8772c7a721580049d6ffa9599bc6463ee3c54682d04716ca17d18c92cc5282226e229abab7a76c1ef589c6fd8863066ec832094d22
@@ -53,6 +53,8 @@ module Crystalline
53
53
  # rubocop:enable Lint/SuppressedException
54
54
  return value
55
55
  elsif field_type.to_s == 'Float'
56
+ raise TypeError, "Cannot convert #{value.inspect} to Float. The value is of type #{value.class}" unless value.is_a?(::Numeric)
57
+
56
58
  return value.to_f
57
59
 
58
60
  end
@@ -32,19 +32,7 @@ module Crystalline
32
32
  if type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
33
33
  type.from_dict(data)
34
34
  elsif Crystalline::Utils.union? type
35
- union_types = Crystalline::Utils.get_union_types(type)
36
- union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
37
-
38
- union_types.each do |union_type|
39
- unmarshalled_val = Crystalline.unmarshal_json(data, union_type)
40
- return unmarshalled_val
41
- rescue TypeError
42
- next
43
- rescue NoMethodError
44
- next
45
- rescue KeyError
46
- next
47
- end
35
+ unmarshal_union(data, type)
48
36
  elsif Crystalline::Utils.arr? type
49
37
  data.map { |v| Crystalline.unmarshal_json(v, Crystalline::Utils.arr_of(type)) }
50
38
  elsif Crystalline::Utils.hash? type
@@ -60,6 +48,17 @@ module Crystalline
60
48
  end
61
49
  end
62
50
 
51
+ def self.unmarshal_union(data, type)
52
+ union_types = Crystalline::Utils.get_union_types(type)
53
+ union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
54
+
55
+ union_types.each do |union_type|
56
+ return Crystalline.unmarshal_json(data, union_type)
57
+ rescue TypeError, NoMethodError, KeyError
58
+ next
59
+ end
60
+ end
61
+
63
62
  def self.json_encode(val, primitives: true)
64
63
  if val.class.respond_to? :enums
65
64
  val.serialize
@@ -439,5 +439,258 @@ module FastpixClient
439
439
  end
440
440
  end
441
441
  end
442
+
443
+
444
+
445
+ sig { params(body: Models::Operations::UpdateLiveStreamDomainRestrictionsRequestBody, stream_id: ::String, playback_id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateLiveStreamDomainRestrictionsResponse) }
446
+ def update_live_stream_domain_restrictions(body:, stream_id:, playback_id:, timeout_ms: nil)
447
+ # update_live_stream_domain_restrictions - Update domain restrictions for a live stream playback ID
448
+ # This endpoint updates domain-level restrictions for a specific playback ID associated with a live stream.
449
+ # It allows you to restrict playback to specific domains or block known unauthorized domains.
450
+ #
451
+ # **How it works:**
452
+ # 1. Make a `PATCH` request to this endpoint with your desired domain access configuration.
453
+ # 2. Set a default policy (`allow` or `deny`) and specify domain names in the `allow` or `deny` lists.
454
+ # 3. This is commonly used to restrict video playback to your website or approved client domains.
455
+ #
456
+ # **Example:**
457
+ # A streaming service can allow playback only from `example.com` and deny all others by setting: `"defaultPolicy": "deny"` and `"allow": ["example.com"]`.
458
+ #
459
+ request = Models::Operations::UpdateLiveStreamDomainRestrictionsRequest.new(
460
+ stream_id: stream_id,
461
+ playback_id: playback_id,
462
+ body: body
463
+ )
464
+ url, params = @sdk_configuration.get_server_details
465
+ base_url = Utils.template_url(url, params)
466
+ url = Utils.generate_url(
467
+ Models::Operations::UpdateLiveStreamDomainRestrictionsRequest,
468
+ base_url,
469
+ '/live/streams/{streamId}/playback-ids/{playbackId}/domains',
470
+ request
471
+ )
472
+ headers = {}
473
+ headers = T.cast(headers, T::Hash[String, String])
474
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :body, :json)
475
+ headers['content-type'] = req_content_type
476
+ body = encode_request_body(req_content_type, data, form)
477
+ headers['Accept'] = CONTENT_TYPE_JSON
478
+ headers[USER_AGENT_HEADER] = @sdk_configuration.user_agent
479
+
480
+ security = @sdk_configuration.security_source&.call
481
+
482
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
483
+ timeout ||= @sdk_configuration.timeout
484
+
485
+
486
+ connection = @sdk_configuration.client
487
+
488
+ hook_ctx = SDKHooks::HookContext.new(
489
+ config: @sdk_configuration,
490
+ base_url: base_url,
491
+ oauth2_scopes: nil,
492
+ operation_id: 'update-live-stream-domain-restrictions',
493
+ security_source: @sdk_configuration.security_source
494
+ )
495
+
496
+ error = T.let(nil, T.nilable(StandardError))
497
+ http_response = T.let(nil, T.nilable(Faraday::Response))
498
+
499
+
500
+ begin
501
+ http_response = T.must(connection).patch(url) do |req|
502
+ req.body = body
503
+ req.headers.merge!(headers)
504
+ req.options.timeout = timeout unless timeout.nil?
505
+ Utils.configure_request_security(req, security)
506
+
507
+ @sdk_configuration.hooks.before_request(
508
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
509
+ hook_ctx: hook_ctx
510
+ ),
511
+ request: req
512
+ )
513
+ end
514
+ rescue StandardError => e
515
+ error = e
516
+ ensure
517
+ http_response = apply_after_request_hooks(http_response, error, hook_ctx)
518
+ end
519
+
520
+ content_type = http_response.headers.fetch(CONTENT_TYPE_HEADER, DEFAULT_CONTENT_TYPE)
521
+ if Utils.match_status_code(http_response.status, ['200'])
522
+ if Utils.match_content_type(content_type, CONTENT_TYPE_JSON)
523
+ http_response = @sdk_configuration.hooks.after_success(
524
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
525
+ hook_ctx: hook_ctx
526
+ ),
527
+ response: http_response
528
+ )
529
+ response_data = http_response.env.response_body
530
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::UpdateLiveStreamDomainRestrictionsResponseBody)
531
+ response = Models::Operations::UpdateLiveStreamDomainRestrictionsResponse.new(
532
+ status_code: http_response.status,
533
+ content_type: content_type,
534
+ raw_response: http_response,
535
+ object: T.unsafe(obj)
536
+ )
537
+
538
+ return response
539
+ else
540
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), UNKNOWN_CONTENT_TYPE_ERROR
541
+ end
542
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
543
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), API_ERROR_OCCURRED
544
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
545
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), API_ERROR_OCCURRED
546
+ else
547
+ if Utils.match_content_type(content_type, CONTENT_TYPE_JSON)
548
+ http_response = @sdk_configuration.hooks.after_success(
549
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
550
+ hook_ctx: hook_ctx
551
+ ),
552
+ response: http_response
553
+ )
554
+ response_data = http_response.env.response_body
555
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::DefaultError)
556
+ response = Models::Operations::UpdateLiveStreamDomainRestrictionsResponse.new(
557
+ status_code: http_response.status,
558
+ content_type: content_type,
559
+ raw_response: http_response,
560
+ default_error: T.unsafe(obj)
561
+ )
562
+
563
+ return response
564
+ else
565
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), UNKNOWN_CONTENT_TYPE_ERROR
566
+ end
567
+ end
568
+ end
569
+
570
+
571
+ sig { params(body: Models::Operations::UpdateLiveStreamUserAgentRestrictionsRequestBody, stream_id: ::String, playback_id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateLiveStreamUserAgentRestrictionsResponse) }
572
+ def update_live_stream_user_agent_restrictions(body:, stream_id:, playback_id:, timeout_ms: nil)
573
+ # update_live_stream_user_agent_restrictions - Update user-agent restrictions for a live stream playback ID
574
+ # This endpoint allows updating user-agent restrictions for a specific playback ID associated with a live stream.
575
+ # It can be used to allow or deny specific user-agents during playback request evaluation.
576
+ #
577
+ # **How it works:**
578
+ # 1. Make a `PATCH` request to this endpoint with your desired user-agent access configuration.
579
+ # 2. Specify a default policy (`allow` or `deny`) and provide specific `allow` or `deny` lists.
580
+ # 3. Use this to restrict access to specific browsers, devices, or bots.
581
+ #
582
+ # **Example:**
583
+ # A developer may configure a playback ID to deny access from known scraping user-agents while allowing all others by default.
584
+ #
585
+ request = Models::Operations::UpdateLiveStreamUserAgentRestrictionsRequest.new(
586
+ stream_id: stream_id,
587
+ playback_id: playback_id,
588
+ body: body
589
+ )
590
+ url, params = @sdk_configuration.get_server_details
591
+ base_url = Utils.template_url(url, params)
592
+ url = Utils.generate_url(
593
+ Models::Operations::UpdateLiveStreamUserAgentRestrictionsRequest,
594
+ base_url,
595
+ '/live/streams/{streamId}/playback-ids/{playbackId}/user-agents',
596
+ request
597
+ )
598
+ headers = {}
599
+ headers = T.cast(headers, T::Hash[String, String])
600
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :body, :json)
601
+ headers['content-type'] = req_content_type
602
+ body = encode_request_body(req_content_type, data, form)
603
+ headers['Accept'] = CONTENT_TYPE_JSON
604
+ headers[USER_AGENT_HEADER] = @sdk_configuration.user_agent
605
+
606
+ security = @sdk_configuration.security_source&.call
607
+
608
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
609
+ timeout ||= @sdk_configuration.timeout
610
+
611
+
612
+ connection = @sdk_configuration.client
613
+
614
+ hook_ctx = SDKHooks::HookContext.new(
615
+ config: @sdk_configuration,
616
+ base_url: base_url,
617
+ oauth2_scopes: nil,
618
+ operation_id: 'update-live-stream-user-agent-restrictions',
619
+ security_source: @sdk_configuration.security_source
620
+ )
621
+
622
+ error = T.let(nil, T.nilable(StandardError))
623
+ http_response = T.let(nil, T.nilable(Faraday::Response))
624
+
625
+
626
+ begin
627
+ http_response = T.must(connection).patch(url) do |req|
628
+ req.body = body
629
+ req.headers.merge!(headers)
630
+ req.options.timeout = timeout unless timeout.nil?
631
+ Utils.configure_request_security(req, security)
632
+
633
+ @sdk_configuration.hooks.before_request(
634
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
635
+ hook_ctx: hook_ctx
636
+ ),
637
+ request: req
638
+ )
639
+ end
640
+ rescue StandardError => e
641
+ error = e
642
+ ensure
643
+ http_response = apply_after_request_hooks(http_response, error, hook_ctx)
644
+ end
645
+
646
+ content_type = http_response.headers.fetch(CONTENT_TYPE_HEADER, DEFAULT_CONTENT_TYPE)
647
+ if Utils.match_status_code(http_response.status, ['200'])
648
+ if Utils.match_content_type(content_type, CONTENT_TYPE_JSON)
649
+ http_response = @sdk_configuration.hooks.after_success(
650
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
651
+ hook_ctx: hook_ctx
652
+ ),
653
+ response: http_response
654
+ )
655
+ response_data = http_response.env.response_body
656
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::UpdateLiveStreamUserAgentRestrictionsResponseBody)
657
+ response = Models::Operations::UpdateLiveStreamUserAgentRestrictionsResponse.new(
658
+ status_code: http_response.status,
659
+ content_type: content_type,
660
+ raw_response: http_response,
661
+ object: T.unsafe(obj)
662
+ )
663
+
664
+ return response
665
+ else
666
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), UNKNOWN_CONTENT_TYPE_ERROR
667
+ end
668
+ elsif Utils.match_status_code(http_response.status, ['4XX'])
669
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), API_ERROR_OCCURRED
670
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
671
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), API_ERROR_OCCURRED
672
+ else
673
+ if Utils.match_content_type(content_type, CONTENT_TYPE_JSON)
674
+ http_response = @sdk_configuration.hooks.after_success(
675
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
676
+ hook_ctx: hook_ctx
677
+ ),
678
+ response: http_response
679
+ )
680
+ response_data = http_response.env.response_body
681
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::DefaultError)
682
+ response = Models::Operations::UpdateLiveStreamUserAgentRestrictionsResponse.new(
683
+ status_code: http_response.status,
684
+ content_type: content_type,
685
+ raw_response: http_response,
686
+ default_error: T.unsafe(obj)
687
+ )
688
+
689
+ return response
690
+ else
691
+ raise ::FastpixClient::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), UNKNOWN_CONTENT_TYPE_ERROR
692
+ end
693
+ end
694
+ end
442
695
  end
443
696
  end
@@ -25,7 +25,7 @@ module FastpixClient
25
25
  # Title of the track.
26
26
  field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
27
27
 
28
- sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::AddTrackResponseType), url: T.nilable(::String), language_code: T.nilable(::String), language_name: T.nilable(::String), title: T.nilable(::String)).void }
28
+ sig { params(id: T.nilable(::String), type: T.nilable(T.any(Models::Components::AddTrackResponseType, String)), url: T.nilable(::String), language_code: T.nilable(::String), language_name: T.nilable(::String), title: T.nilable(::String)).void }
29
29
  def initialize(id: nil, type: nil, url: nil, language_code: nil, language_name: nil, title: nil)
30
30
  @id = id
31
31
  @type = type
@@ -27,7 +27,7 @@ module FastpixClient
27
27
  #
28
28
  field :language_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('languageCode') } }
29
29
 
30
- sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::AudioTrackType), status: T.nilable(::String), title: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
30
+ sig { params(id: T.nilable(::String), type: T.nilable(T.any(Models::Components::AudioTrackType, String)), status: T.nilable(::String), title: T.nilable(::String), language_name: T.nilable(::String), language_code: T.nilable(::String)).void }
31
31
  def initialize(id: nil, type: nil, status: nil, title: nil, language_name: nil, language_code: nil)
32
32
  @id = id
33
33
  @type = type
@@ -41,7 +41,7 @@ module FastpixClient
41
41
  #
42
42
  field :trial, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('trial') } }
43
43
 
44
- sig { params(id: T.nilable(::String), status: T.nilable(Models::Components::CreateMediaResponseStatus), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), metadata: T.nilable(T::Hash[Symbol, ::String]), media_quality: T.nilable(Models::Components::CreateMediaResponseMediaQuality), source_access: T.nilable(T::Boolean), max_resolution: T.nilable(Models::Components::CreateMediaResponseMaxResolution), inputs: T.nilable(T::Array[Models::Components::CreateMediaResponseInput]), optimize_audio: T.nilable(T::Boolean), trial: T.nilable(T::Boolean)).void }
44
+ sig { params(id: T.nilable(::String), status: T.nilable(T.any(Models::Components::CreateMediaResponseStatus, String)), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), metadata: T.nilable(T::Hash[Symbol, ::String]), media_quality: T.nilable(T.any(Models::Components::CreateMediaResponseMediaQuality, String)), source_access: T.nilable(T::Boolean), max_resolution: T.nilable(T.any(Models::Components::CreateMediaResponseMaxResolution, String)), inputs: T.nilable(T::Array[Models::Components::CreateMediaResponseInput]), optimize_audio: T.nilable(T::Boolean), trial: T.nilable(T::Boolean)).void }
45
45
  def initialize(id: nil, status: nil, created_at: nil, updated_at: nil, playback_ids: nil, metadata: nil, media_quality: nil, source_access: nil, max_resolution: nil, inputs: nil, optimize_audio: nil, trial: true)
46
46
  @id = id
47
47
  @status = status
@@ -21,7 +21,7 @@ module FastpixClient
21
21
  # The maximum resolution for the playback ID.
22
22
  field :resolution, Crystalline::Nilable.new(Models::Components::Resolution), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('resolution'), 'decoder': Utils.enum_from_string(Models::Components::Resolution, true) } }
23
23
 
24
- sig { params(id: T.nilable(::String), access_policy: T.nilable(Models::Components::AccessPolicy), access_restrictions: T.nilable(Models::Components::CreatePlaybackIdAccessRestrictions), resolution: T.nilable(Models::Components::Resolution)).void }
24
+ sig { params(id: T.nilable(::String), access_policy: T.nilable(T.any(Models::Components::AccessPolicy, String)), access_restrictions: T.nilable(Models::Components::CreatePlaybackIdAccessRestrictions), resolution: T.nilable(T.any(Models::Components::Resolution, String))).void }
25
25
  def initialize(id: nil, access_policy: nil, access_restrictions: nil, resolution: nil)
26
26
  @id = id
27
27
  @access_policy = access_policy
@@ -19,7 +19,7 @@ module FastpixClient
19
19
  # A list of domains that are explicitly blocked from accessing the resource.
20
20
  field :deny, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('deny') } }
21
21
 
22
- sig { params(default_policy: T.nilable(Models::Components::PolicyAction), allow: T.nilable(T::Array[::String]), deny: T.nilable(T::Array[::String])).void }
22
+ sig { params(default_policy: T.nilable(T.any(Models::Components::PolicyAction, String)), allow: T.nilable(T::Array[::String]), deny: T.nilable(T::Array[::String])).void }
23
23
  def initialize(default_policy: nil, allow: nil, deny: nil)
24
24
  @default_policy = default_policy
25
25
  @allow = allow
@@ -19,7 +19,7 @@ module FastpixClient
19
19
  # A list of specific user agents that are blocked.
20
20
  field :deny, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('deny') } }
21
21
 
22
- sig { params(default_policy: T.nilable(Models::Components::PolicyAction), allow: T.nilable(T::Array[::String]), deny: T.nilable(T::Array[::String])).void }
22
+ sig { params(default_policy: T.nilable(T.any(Models::Components::PolicyAction, String)), allow: T.nilable(T::Array[::String]), deny: T.nilable(T::Array[::String])).void }
23
23
  def initialize(default_policy: nil, allow: nil, deny: nil)
24
24
  @default_policy = default_policy
25
25
  @allow = allow
@@ -28,7 +28,7 @@ module FastpixClient
28
28
  #
29
29
  field :timeout, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('timeout') } }
30
30
 
31
- sig { params(upload_id: T.nilable(::String), trial: T.nilable(T::Boolean), status: T.nilable(Models::Components::DirectUploadStatus), url: T.nilable(::String), cors_origin: T.nilable(::String), push_media_settings: T.nilable(Models::Components::DirectUploadResponse), timeout: T.nilable(::Float)).void }
31
+ sig { params(upload_id: T.nilable(::String), trial: T.nilable(T::Boolean), status: T.nilable(T.any(Models::Components::DirectUploadStatus, String)), url: T.nilable(::String), cors_origin: T.nilable(::String), push_media_settings: T.nilable(Models::Components::DirectUploadResponse), timeout: T.nilable(::Float)).void }
32
32
  def initialize(upload_id: nil, trial: nil, status: nil, url: nil, cors_origin: nil, push_media_settings: nil, timeout: 14_400.0)
33
33
  @upload_id = upload_id
34
34
  @trial = trial
@@ -26,7 +26,7 @@ module FastpixClient
26
26
  #
27
27
  field :optimize_audio, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('optimizeAudio') } }
28
28
 
29
- sig { params(playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), metadata: T.nilable(T::Hash[Symbol, ::String]), media_quality: T.nilable(Models::Components::DirectUploadResponseMediaQuality), source_access: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean)).void }
29
+ sig { params(playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), metadata: T.nilable(T::Hash[Symbol, ::String]), media_quality: T.nilable(T.any(Models::Components::DirectUploadResponseMediaQuality, String)), source_access: T.nilable(T::Boolean), optimize_audio: T.nilable(T::Boolean)).void }
30
30
  def initialize(playback_ids: nil, metadata: nil, media_quality: nil, source_access: nil, optimize_audio: nil)
31
31
  @playback_ids = playback_ids
32
32
  @metadata = metadata
@@ -27,7 +27,7 @@ module FastpixClient
27
27
  # Title of the track.
28
28
  field :title, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('title') } }
29
29
 
30
- sig { params(id: T.nilable(::String), type: T.nilable(Models::Components::GenerateTrackResponseType), language_code: T.nilable(Models::Components::GenerateTrackResponseLanguageCode), language_name: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String)).void }
30
+ sig { params(id: T.nilable(::String), type: T.nilable(T.any(Models::Components::GenerateTrackResponseType, String)), language_code: T.nilable(T.any(Models::Components::GenerateTrackResponseLanguageCode, String)), language_name: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), title: T.nilable(::String)).void }
31
31
  def initialize(id: nil, type: nil, language_code: nil, language_name: nil, metadata: nil, title: nil)
32
32
  @id = id
33
33
  @type = type
@@ -40,8 +40,8 @@ module FastpixClient
40
40
  field :named_entities, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('namedEntities') } }
41
41
  # Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
42
42
  field :moderation, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('moderation') } }
43
- # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
44
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
43
+ # Duration of the media in seconds.
44
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
45
45
  # Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
46
46
  field :frame_rate, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('frameRate') } }
47
47
  # Time the media was created, defined as a localDateTime (UTC Time).
@@ -72,7 +72,7 @@ module FastpixClient
72
72
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
73
73
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
74
74
 
75
- sig { params(id: T.nilable(::String), source_media_id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), media_quality: T.nilable(Models::Components::GetAllMediaResponseMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::GetAllMediaResponseStatus), mp4_support: T.nilable(T::Array[Models::Components::GetAllMediaResponseMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrackForGetAll, 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), frame_rate: 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::GetAllMediaResponseMaxResolution), source_resolution: T.nilable(Models::Components::GetAllMediaResponseSourceResolution), 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 }
75
+ sig { params(id: T.nilable(::String), source_media_id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), media_quality: T.nilable(T.any(Models::Components::GetAllMediaResponseMediaQuality, String)), creator_id: T.nilable(::String), status: T.nilable(T.any(Models::Components::GetAllMediaResponseStatus, String)), mp4_support: T.nilable(T::Array[Models::Components::GetAllMediaResponseMp4Support]), playback_ids: T.nilable(T::Array[Models::Components::PlaybackId]), tracks: T.nilable(T::Array[T.any(Models::Components::VideoTrackForGetAll, 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), frame_rate: 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(T.any(Models::Components::GetAllMediaResponseMaxResolution, String)), source_resolution: T.nilable(T.any(Models::Components::GetAllMediaResponseSourceResolution, String)), 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 }
76
76
  def initialize(id: nil, source_media_id: nil, workspace_id: nil, stream_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, frame_rate: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::GetAllMediaResponseMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::GetAllMediaResponseSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
77
77
  @id = id
78
78
  @source_media_id = source_media_id
@@ -37,7 +37,7 @@ class FastpixClient::Models::Components::GetAllMediaResponse
37
37
  def moderation(); end
38
38
  def moderation=(str_); end
39
39
  def duration(); end
40
- def duration=(str_); end
40
+ def duration=(float_); end
41
41
  def frame_rate(); end
42
42
  def frame_rate=(str_); end
43
43
  def created_at(); end
@@ -40,8 +40,8 @@ module FastpixClient
40
40
  field :named_entities, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('namedEntities') } }
41
41
  # Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
42
42
  field :moderation, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('moderation') } }
43
- # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
44
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
43
+ # Duration of the media in seconds.
44
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
45
45
  # Frame rate quantifies the speed at which frames are displayed per second. It represents the range of frames available for a specific track. The indeterminable frame rate of the input file is indicated by a value of -1.
46
46
  field :frame_rate, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('frameRate') } }
47
47
  # Time the media was created, defined as a localDateTime (UTC Time).
@@ -72,7 +72,7 @@ module FastpixClient
72
72
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
73
73
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
74
74
 
75
- sig { params(id: T.nilable(::String), source_media_id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), media_quality: T.nilable(Models::Components::GetMediaDetailResponseMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::GetMediaDetailResponseStatus), mp4_support: T.nilable(T::Array[Models::Components::GetMediaDetailResponseMp4Support]), 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), frame_rate: 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::GetMediaDetailResponseMaxResolution), source_resolution: T.nilable(Models::Components::GetMediaDetailResponseSourceResolution), 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 }
75
+ sig { params(id: T.nilable(::String), source_media_id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), media_quality: T.nilable(T.any(Models::Components::GetMediaDetailResponseMediaQuality, String)), creator_id: T.nilable(::String), status: T.nilable(T.any(Models::Components::GetMediaDetailResponseStatus, String)), mp4_support: T.nilable(T::Array[Models::Components::GetMediaDetailResponseMp4Support]), 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), frame_rate: 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(T.any(Models::Components::GetMediaDetailResponseMaxResolution, String)), source_resolution: T.nilable(T.any(Models::Components::GetMediaDetailResponseSourceResolution, String)), 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 }
76
76
  def initialize(id: nil, source_media_id: nil, workspace_id: nil, stream_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, frame_rate: nil, created_at: nil, updated_at: nil, thumbnail: nil, metadata: nil, title: nil, max_resolution: Models::Components::GetMediaDetailResponseMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::GetMediaDetailResponseSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
77
77
  @id = id
78
78
  @source_media_id = source_media_id
@@ -37,7 +37,7 @@ class FastpixClient::Models::Components::GetMediaDetailResponse
37
37
  def moderation(); end
38
38
  def moderation=(str_); end
39
39
  def duration(); end
40
- def duration=(str_); end
40
+ def duration=(float_); end
41
41
  def frame_rate(); end
42
42
  def frame_rate=(str_); end
43
43
  def created_at(); end
@@ -19,6 +19,9 @@ module FastpixClient
19
19
  # Enables DVR (Digital Video Recorder) functionality, allowing viewers to pause, rewind, and resume live playback.
20
20
  #
21
21
  field :enable_dvr_mode, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('enableDvrMode') } }
22
+ # Controls whether the livestream is recorded to a VOD asset (Live-to-VOD). When true (default), FastPix records and stores the livestream for on-demand viewing. When false, the livestream is not recorded.
23
+ #
24
+ field :enable_recording, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('enableRecording') } }
22
25
  # Defines the maximum resolution for encoding, storage, and playback of the live stream.
23
26
  #
24
27
  field :max_resolution, Crystalline::Nilable.new(Models::Components::CreateLiveStreamRequestMaxResolution), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('maxResolution'), 'decoder': Utils.enum_from_string(Models::Components::CreateLiveStreamRequestMaxResolution, true) } }
@@ -28,10 +31,11 @@ module FastpixClient
28
31
  # Basic access policy for media content
29
32
  field :media_policy, Crystalline::Nilable.new(Models::Components::BasicAccessPolicy), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mediaPolicy'), 'decoder': Utils.enum_from_string(Models::Components::BasicAccessPolicy, true) } }
30
33
 
31
- sig { params(metadata: T.nilable(T::Hash[Symbol, ::String]), enable_dvr_mode: T.nilable(T::Boolean), max_resolution: T.nilable(Models::Components::CreateLiveStreamRequestMaxResolution), reconnect_window: T.nilable(::Integer), media_policy: T.nilable(Models::Components::BasicAccessPolicy)).void }
32
- def initialize(metadata: nil, enable_dvr_mode: nil, max_resolution: Models::Components::CreateLiveStreamRequestMaxResolution::ONE_THOUSAND_AND_EIGHTYP, reconnect_window: 60, media_policy: Models::Components::BasicAccessPolicy::PUBLIC)
34
+ sig { params(metadata: T.nilable(T::Hash[Symbol, ::String]), enable_dvr_mode: T.nilable(T::Boolean), enable_recording: T.nilable(T::Boolean), max_resolution: T.nilable(Models::Components::CreateLiveStreamRequestMaxResolution), reconnect_window: T.nilable(::Integer), media_policy: T.nilable(Models::Components::BasicAccessPolicy)).void }
35
+ def initialize(metadata: nil, enable_dvr_mode: nil, enable_recording: true, max_resolution: Models::Components::CreateLiveStreamRequestMaxResolution::ONE_THOUSAND_AND_EIGHTYP, reconnect_window: 60, media_policy: Models::Components::BasicAccessPolicy::PUBLIC)
33
36
  @metadata = metadata
34
37
  @enable_dvr_mode = enable_dvr_mode
38
+ @enable_recording = enable_recording
35
39
  @max_resolution = max_resolution
36
40
  @reconnect_window = reconnect_window
37
41
  @media_policy = media_policy
@@ -42,6 +46,7 @@ module FastpixClient
42
46
  return false unless other.is_a? self.class
43
47
  return false unless @metadata == other.metadata
44
48
  return false unless @enable_dvr_mode == other.enable_dvr_mode
49
+ return false unless @enable_recording == other.enable_recording
45
50
  return false unless @max_resolution == other.max_resolution
46
51
  return false unless @reconnect_window == other.reconnect_window
47
52
  return false unless @media_policy == other.media_policy
@@ -12,6 +12,8 @@ class FastpixClient::Models::Components::InputMediaSettings
12
12
  def metadata=(str_); end
13
13
  def enable_dvr_mode(); end
14
14
  def enable_dvr_mode=(str_); end
15
+ def enable_recording(); end
16
+ def enable_recording=(str_); end
15
17
  def max_resolution(); end
16
18
  def max_resolution=(str_); end
17
19
  def reconnect_window(); end
@@ -30,8 +30,8 @@ module FastpixClient
30
30
  field :tracks, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Components::VideoTrack, Models::Components::AudioTrack, Models::Components::SubtitleTrack))), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('tracks') } }
31
31
  # The MP4 renditions generated for the media. Present only when MP4 support is enabled.
32
32
  field :mp4_support, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::LiveMediaClipsMp4Support)), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('mp4Support') } }
33
- # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
34
- field :duration, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
33
+ # Duration of the media in seconds.
34
+ field :duration, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('duration') } }
35
35
  # Time the media was created, defined as a localDateTime (UTC Time).
36
36
  field :created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('createdAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
37
37
  # Time the media was updated, defined as a localDateTime (UTC Time).
@@ -55,7 +55,7 @@ module FastpixClient
55
55
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
56
56
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
57
57
 
58
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), creator_id: T.nilable(::String), status: T.nilable(Models::Components::LiveMediaClipsStatus), 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)]), mp4_support: T.nilable(T::Array[Models::Components::LiveMediaClipsMp4Support]), duration: T.nilable(::String), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(Models::Components::LiveMediaClipsMaxResolution), source_resolution: T.nilable(Models::Components::LiveMediaClipsSourceResolution), 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 }
58
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), stream_id: T.nilable(::String), creator_id: T.nilable(::String), status: T.nilable(T.any(Models::Components::LiveMediaClipsStatus, String)), 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)]), mp4_support: T.nilable(T::Array[Models::Components::LiveMediaClipsMp4Support]), duration: T.nilable(::Float), created_at: T.nilable(::DateTime), updated_at: T.nilable(::DateTime), thumbnail: T.nilable(::String), title: T.nilable(::String), max_resolution: T.nilable(T.any(Models::Components::LiveMediaClipsMaxResolution, String)), source_resolution: T.nilable(T.any(Models::Components::LiveMediaClipsSourceResolution, String)), 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 }
59
59
  def initialize(id: nil, workspace_id: nil, stream_id: nil, creator_id: nil, status: nil, source_access: nil, playback_ids: nil, tracks: nil, mp4_support: nil, duration: nil, created_at: nil, updated_at: nil, thumbnail: nil, title: nil, max_resolution: Models::Components::LiveMediaClipsMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::LiveMediaClipsSourceResolution::ONE_THOUSAND_AND_EIGHTYP, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
60
60
  @id = id
61
61
  @workspace_id = workspace_id
@@ -27,7 +27,7 @@ class FastpixClient::Models::Components::LiveMediaClips
27
27
  def mp4_support(); end
28
28
  def mp4_support=(str_); end
29
29
  def duration(); end
30
- def duration=(str_); end
30
+ def duration=(float_); end
31
31
  def created_at(); end
32
32
  def created_at=(str_); end
33
33
  def updated_at(); end
@@ -36,8 +36,8 @@ module FastpixClient
36
36
  field :named_entities, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('namedEntities') } }
37
37
  # Represents an AI response record containing status and data for AI-generated features like summary, chapters, named entities, or moderation.
38
38
  field :moderation, Crystalline::Nilable.new(Models::Components::AiResponseRecord), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('moderation') } }
39
- # The length of the media in seconds, with a maximum allowed duration of 12 hours per individual media.
40
- 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') } }
41
41
  # Time the media was created, defined as a localDateTime (UTC Time).
42
42
  field :created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('createdAt'), 'decoder': Utils.datetime_from_iso_format(true) } }
43
43
  # Time the media was updated, defined as a localDateTime (UTC Time).
@@ -66,7 +66,7 @@ module FastpixClient
66
66
  # The aspect ratio of a video is a value that describes the relative shape of a video based on its width and height.
67
67
  field :aspect_ratio, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::FastpixClient::Utils.field_name('aspectRatio') } }
68
68
 
69
- sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(Models::Components::MediaMediaQuality), creator_id: T.nilable(::String), status: T.nilable(Models::Components::MediaStatus), mp4_support: T.nilable(T::Array[Models::Components::MediaMp4Support]), 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::MediaMaxResolution), source_resolution: T.nilable(Models::Components::MediaSourceResolution), 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 }
69
+ sig { params(id: T.nilable(::String), workspace_id: T.nilable(::String), media_quality: T.nilable(T.any(Models::Components::MediaMediaQuality, String)), creator_id: T.nilable(::String), status: T.nilable(T.any(Models::Components::MediaStatus, String)), mp4_support: T.nilable(T::Array[Models::Components::MediaMp4Support]), 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(T.any(Models::Components::MediaMaxResolution, String)), source_resolution: T.nilable(T.any(Models::Components::MediaSourceResolution, String)), 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
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::MediaMaxResolution::ONE_THOUSAND_AND_EIGHTYP, source_resolution: Models::Components::MediaSourceResolution::ONE_THOUSAND_AND_EIGHTYP, source_access: nil, generated_subtitles: nil, is_audio_only: nil, subtitle_available: nil, optimize_audio: nil, aspect_ratio: nil)
71
71
  @id = id
72
72
  @workspace_id = workspace_id
@@ -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