plex_ruby_sdk 0.15.0 → 0.17.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/plex_ruby_sdk/models/operations/flattenseasons.rb +1 -0
  3. data/lib/plex_ruby_sdk/models/operations/get_actors_library_mediacontainer.rb +6 -6
  4. data/lib/plex_ruby_sdk/models/operations/get_library_items_collection.rb +3 -3
  5. data/lib/plex_ruby_sdk/models/operations/get_library_items_country.rb +10 -4
  6. data/lib/plex_ruby_sdk/models/operations/get_library_items_director.rb +12 -4
  7. data/lib/plex_ruby_sdk/models/operations/get_library_items_filter.rb +2 -6
  8. data/lib/plex_ruby_sdk/models/operations/get_library_items_genre.rb +13 -6
  9. data/lib/plex_ruby_sdk/models/operations/{mediaguid.rb → get_library_items_guids.rb} +2 -3
  10. data/lib/plex_ruby_sdk/models/operations/get_library_items_hasthumbnail.rb +2 -1
  11. data/lib/plex_ruby_sdk/models/operations/get_library_items_image.rb +2 -2
  12. data/lib/plex_ruby_sdk/models/operations/{get_search_all_libraries_collection.rb → get_library_items_library_optimizedforstreaming.rb} +5 -9
  13. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_response_type.rb +6 -41
  14. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_type.rb +42 -14
  15. data/lib/plex_ruby_sdk/models/operations/get_library_items_location.rb +3 -3
  16. data/lib/plex_ruby_sdk/models/operations/get_library_items_media.rb +32 -25
  17. data/lib/plex_ruby_sdk/models/operations/get_library_items_mediacontainer.rb +39 -48
  18. data/lib/plex_ruby_sdk/models/operations/get_library_items_meta.rb +3 -3
  19. data/lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb +146 -141
  20. data/lib/plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb +12 -4
  21. data/lib/plex_ruby_sdk/models/operations/{get_library_items_library_response_200_type.rb → get_library_items_optimizedforstreaming_1.rb} +3 -5
  22. data/lib/plex_ruby_sdk/models/operations/get_library_items_part.rb +36 -28
  23. data/lib/plex_ruby_sdk/models/operations/get_library_items_producer.rb +53 -0
  24. data/lib/plex_ruby_sdk/models/operations/get_library_items_role.rb +12 -18
  25. data/lib/plex_ruby_sdk/models/operations/get_library_items_similar.rb +41 -0
  26. data/lib/plex_ruby_sdk/models/operations/get_library_items_type.rb +14 -46
  27. data/lib/plex_ruby_sdk/models/operations/get_library_items_writer.rb +12 -4
  28. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_media.rb +2 -2
  29. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_mediacontainer.rb +10 -10
  30. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_metadata.rb +6 -6
  31. data/lib/plex_ruby_sdk/models/operations/{streamtype.rb → get_library_sections_all_optimizedforstreaming_library_1.rb} +4 -9
  32. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_part.rb +2 -2
  33. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_stream.rb +5 -5
  34. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_attributes.rb +37 -0
  35. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_chapter.rb +53 -0
  36. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_extras.rb +33 -0
  37. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_hasthumbnail.rb +1 -0
  38. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_library_optimizedforstreaming.rb +1 -0
  39. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_marker.rb +53 -0
  40. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_media.rb +5 -3
  41. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_mediacontainer.rb +10 -10
  42. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb +22 -22
  43. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_part.rb +16 -15
  44. data/lib/plex_ruby_sdk/models/operations/{metadatarating.rb → get_media_meta_data_ratings.rb} +3 -3
  45. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb +18 -18
  46. data/lib/plex_ruby_sdk/models/operations/get_recently_added_metadata.rb +18 -18
  47. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_country.rb +10 -4
  48. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_director.rb +12 -4
  49. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_directory.rb +81 -0
  50. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_flattenseasons.rb +1 -0
  51. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_genre.rb +13 -6
  52. data/lib/plex_ruby_sdk/models/operations/{get_search_all_libraries_mediaguid.rb → get_search_all_libraries_guids.rb} +2 -3
  53. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_hasthumbnail.rb +2 -1
  54. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_library_optimizedforstreaming.rb +29 -0
  55. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_location.rb +3 -3
  56. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_media.rb +32 -25
  57. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_mediacontainer.rb +32 -4
  58. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_metadata.rb +128 -147
  59. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_optimizedforstreaming.rb +12 -4
  60. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_optimizedforstreaming_1.rb +20 -0
  61. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_optimizedforstreaming_library_1.rb +20 -0
  62. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_part.rb +36 -28
  63. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_role.rb +12 -18
  64. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_showordering.rb +6 -5
  65. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_writer.rb +12 -4
  66. data/lib/plex_ruby_sdk/models/operations/searchresult.rb +10 -6
  67. data/lib/plex_ruby_sdk/models/operations/showordering.rb +6 -5
  68. data/lib/plex_ruby_sdk/models/operations/stream.rb +5 -5
  69. data/lib/plex_ruby_sdk/models/operations.rb +18 -24
  70. data/lib/plex_ruby_sdk/sdkconfiguration.rb +3 -3
  71. metadata +18 -24
  72. data/lib/plex_ruby_sdk/models/operations/enablecreditsmarkergeneration.rb +0 -20
  73. data/lib/plex_ruby_sdk/models/operations/episodesort.rb +0 -21
  74. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_activedirection.rb +0 -21
  75. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_defaultdirection.rb +0 -21
  76. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_field.rb +0 -45
  77. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_fieldtype.rb +0 -37
  78. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_filter.rb +0 -49
  79. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_operator.rb +0 -37
  80. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_sort.rb +0 -63
  81. data/lib/plex_ruby_sdk/models/operations/get_library_items_stream.rb +0 -181
  82. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_streamtype.rb +0 -25
  83. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_streamtype.rb +0 -25
  84. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_enablecreditsmarkergeneration.rb +0 -20
  85. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_episodesort.rb +0 -21
  86. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_metadatarating.rb +0 -41
  87. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_stream.rb +0 -181
@@ -0,0 +1,53 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module PlexRubySDK
8
+ module Models
9
+ module Operations
10
+
11
+ # The thumbnail for the chapter
12
+ class GetMediaMetaDataChapter
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :end_time_offset, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('endTimeOffset') } }
18
+
19
+ field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
20
+
21
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
22
+
23
+ field :index, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } }
24
+
25
+ field :start_time_offset, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('startTimeOffset') } }
26
+
27
+ field :thumb, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
28
+
29
+
30
+ sig { params(end_time_offset: ::Integer, filter: ::String, id: ::Integer, index: ::Integer, start_time_offset: ::Integer, thumb: ::String).void }
31
+ def initialize(end_time_offset: nil, filter: nil, id: nil, index: nil, start_time_offset: nil, thumb: nil)
32
+ @end_time_offset = end_time_offset
33
+ @filter = filter
34
+ @id = id
35
+ @index = index
36
+ @start_time_offset = start_time_offset
37
+ @thumb = thumb
38
+ end
39
+
40
+ def ==(other)
41
+ return false unless other.is_a? self.class
42
+ return false unless @end_time_offset == other.end_time_offset
43
+ return false unless @filter == other.filter
44
+ return false unless @id == other.id
45
+ return false unless @index == other.index
46
+ return false unless @start_time_offset == other.start_time_offset
47
+ return false unless @thumb == other.thumb
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,33 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module PlexRubySDK
8
+ module Models
9
+ module Operations
10
+
11
+
12
+ class GetMediaMetaDataExtras
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The size of the extras.
17
+ field :size, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
18
+
19
+
20
+ sig { params(size: T.nilable(::Integer)).void }
21
+ def initialize(size: nil)
22
+ @size = size
23
+ end
24
+
25
+ def ==(other)
26
+ return false unless other.is_a? self.class
27
+ return false unless @size == other.size
28
+ true
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -9,6 +9,7 @@ module PlexRubySDK
9
9
  module Operations
10
10
 
11
11
  # GetMediaMetaDataHasThumbnail - Indicates if the part has a thumbnail.
12
+ #
12
13
  class GetMediaMetaDataHasThumbnail < T::Enum
13
14
  enums do
14
15
  FALSE = new('0')
@@ -9,6 +9,7 @@ module PlexRubySDK
9
9
  module Operations
10
10
 
11
11
  # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
12
+ #
12
13
  class GetMediaMetaDataLibraryOptimizedForStreaming
13
14
  extend T::Sig
14
15
  include Crystalline::MetadataFields
@@ -0,0 +1,53 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module PlexRubySDK
8
+ module Models
9
+ module Operations
10
+
11
+ # The final status of the marker
12
+ class GetMediaMetaDataMarker
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+
17
+ field :end_time_offset, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('endTimeOffset') } }
18
+
19
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
+
21
+ field :start_time_offset, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('startTimeOffset') } }
22
+
23
+ field :type, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type') } }
24
+ # Attributes associated with the marker.
25
+ field :attributes, T.nilable(Models::Operations::GetMediaMetaDataAttributes), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Attributes') } }
26
+
27
+ field :final, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('final') } }
28
+
29
+
30
+ sig { params(end_time_offset: ::Integer, id: ::Integer, start_time_offset: ::Integer, type: ::String, attributes: T.nilable(Models::Operations::GetMediaMetaDataAttributes), final: T.nilable(T::Boolean)).void }
31
+ def initialize(end_time_offset: nil, id: nil, start_time_offset: nil, type: nil, attributes: nil, final: nil)
32
+ @end_time_offset = end_time_offset
33
+ @id = id
34
+ @start_time_offset = start_time_offset
35
+ @type = type
36
+ @attributes = attributes
37
+ @final = final
38
+ end
39
+
40
+ def ==(other)
41
+ return false unless other.is_a? self.class
42
+ return false unless @end_time_offset == other.end_time_offset
43
+ return false unless @id == other.id
44
+ return false unless @start_time_offset == other.start_time_offset
45
+ return false unless @type == other.type
46
+ return false unless @attributes == other.attributes
47
+ return false unless @final == other.final
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -25,13 +25,15 @@ module PlexRubySDK
25
25
  field :audio_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioProfile') } }
26
26
  # Bitrate in bits per second.
27
27
  field :bitrate, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('bitrate') } }
28
- # File container type.
28
+ # Container format of the media.
29
29
  field :container, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } }
30
30
 
31
31
  field :display_offset, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayOffset') } }
32
32
  # Duration of the media in milliseconds.
33
33
  field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } }
34
-
34
+ # Indicates whether the media has 64-bit offsets.
35
+ # This is relevant for media files that may require larger offsets than what 32-bit integers can provide.
36
+ #
35
37
  field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } }
36
38
  # Indicates whether voice activity is detected.
37
39
  field :has_voice_activity, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasVoiceActivity') } }
@@ -39,7 +41,7 @@ module PlexRubySDK
39
41
  field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } }
40
42
  # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
41
43
  field :optimized_for_streaming, T.nilable(T.any(Models::Operations::GetMediaMetaDataOptimizedForStreaming1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
42
- # An array of parts for this media item.
44
+
43
45
  field :part, T.nilable(T::Array[Models::Operations::GetMediaMetaDataPart]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } }
44
46
  # Video codec used.
45
47
  field :video_codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoCodec') } }
@@ -17,10 +17,6 @@ module PlexRubySDK
17
17
  field :allow_sync, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('allowSync') } }
18
18
  # An plugin identifier for the media container.
19
19
  field :identifier, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('identifier') } }
20
- # The unique identifier for the library section.
21
- field :library_section_id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } }
22
- # The title of the library section.
23
- field :library_section_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } }
24
20
  # The prefix used for media tag resource paths.
25
21
  field :media_tag_prefix, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaTagPrefix') } }
26
22
  # The version number for media tags.
@@ -29,20 +25,24 @@ module PlexRubySDK
29
25
  field :metadata, T::Array[Models::Operations::GetMediaMetaDataMetadata], { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Metadata') } }
30
26
  # Number of media items returned in this response.
31
27
  field :size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
28
+ # The unique identifier for the library section.
29
+ field :library_section_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } }
30
+ # The title of the library section.
31
+ field :library_section_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } }
32
32
  # The universally unique identifier for the library section.
33
33
  field :library_section_uuid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionUUID') } }
34
34
 
35
35
 
36
- sig { params(allow_sync: T::Boolean, identifier: ::String, library_section_id: ::Integer, library_section_title: ::String, media_tag_prefix: ::String, media_tag_version: ::Integer, metadata: T::Array[Models::Operations::GetMediaMetaDataMetadata], size: ::Integer, library_section_uuid: T.nilable(::String)).void }
37
- def initialize(allow_sync: nil, identifier: nil, library_section_id: nil, library_section_title: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, size: nil, library_section_uuid: nil)
36
+ sig { params(allow_sync: T::Boolean, identifier: ::String, media_tag_prefix: ::String, media_tag_version: ::Integer, metadata: T::Array[Models::Operations::GetMediaMetaDataMetadata], size: ::Integer, library_section_id: T.nilable(::Integer), library_section_title: T.nilable(::String), library_section_uuid: T.nilable(::String)).void }
37
+ def initialize(allow_sync: nil, identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, size: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil)
38
38
  @allow_sync = allow_sync
39
39
  @identifier = identifier
40
- @library_section_id = library_section_id
41
- @library_section_title = library_section_title
42
40
  @media_tag_prefix = media_tag_prefix
43
41
  @media_tag_version = media_tag_version
44
42
  @metadata = metadata
45
43
  @size = size
44
+ @library_section_id = library_section_id
45
+ @library_section_title = library_section_title
46
46
  @library_section_uuid = library_section_uuid
47
47
  end
48
48
 
@@ -50,12 +50,12 @@ module PlexRubySDK
50
50
  return false unless other.is_a? self.class
51
51
  return false unless @allow_sync == other.allow_sync
52
52
  return false unless @identifier == other.identifier
53
- return false unless @library_section_id == other.library_section_id
54
- return false unless @library_section_title == other.library_section_title
55
53
  return false unless @media_tag_prefix == other.media_tag_prefix
56
54
  return false unless @media_tag_version == other.media_tag_version
57
55
  return false unless @metadata == other.metadata
58
56
  return false unless @size == other.size
57
+ return false unless @library_section_id == other.library_section_id
58
+ return false unless @library_section_title == other.library_section_title
59
59
  return false unless @library_section_uuid == other.library_section_uuid
60
60
  true
61
61
  end
@@ -30,14 +30,6 @@ module PlexRubySDK
30
30
  field :index, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('index') } }
31
31
  # The unique key for the media item.
32
32
  field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
33
- # The identifier for the library section.
34
- field :library_section_id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } }
35
- # The key corresponding to the library section.
36
- field :library_section_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionKey') } }
37
- # The title of the library section.
38
- field :library_section_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } }
39
- # The original release date of the media item.
40
- field :originally_available_at, ::Date, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(false) } }
41
33
  # The critic rating for the media item.
42
34
  field :rating, ::Float, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('rating') } }
43
35
  # The rating key (Media ID) of this media item. Note: Although this is always an integer, it is represented as a string in the API.
@@ -63,7 +55,7 @@ module PlexRubySDK
63
55
  # The URL for the audience rating image.
64
56
  field :audience_rating_image, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audienceRatingImage') } }
65
57
 
66
- field :chapter, T.nilable(T::Array[Models::Operations::Chapter]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Chapter') } }
58
+ field :chapter, T.nilable(T::Array[Models::Operations::GetMediaMetaDataChapter]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Chapter') } }
67
59
  # The source from which chapter data is derived.
68
60
  field :chapter_source, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chapterSource') } }
69
61
  # The content rating for the media item.
@@ -77,7 +69,7 @@ module PlexRubySDK
77
69
 
78
70
  field :director, T.nilable(T::Array[Models::Operations::GetMediaMetaDataDirector]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Director') } }
79
71
 
80
- field :extras, T.nilable(Models::Operations::Extras), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Extras') } }
72
+ field :extras, T.nilable(Models::Operations::GetMediaMetaDataExtras), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Extras') } }
81
73
 
82
74
  field :genre, T.nilable(T::Array[Models::Operations::GetMediaMetaDataGenre]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Genre') } }
83
75
  # The art URL for the grandparent media item.
@@ -106,12 +98,20 @@ module PlexRubySDK
106
98
  field :last_viewed_at, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('lastViewedAt') } }
107
99
  # The number of leaf items (end nodes) under this media item.
108
100
  field :leaf_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('leafCount') } }
101
+ # The identifier for the library section.
102
+ field :library_section_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } }
103
+ # The key corresponding to the library section.
104
+ field :library_section_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionKey') } }
105
+ # The title of the library section.
106
+ field :library_section_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } }
109
107
 
110
108
  field :location, T.nilable(T::Array[Models::Operations::GetMediaMetaDataLocation]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Location') } }
111
109
 
112
- field :marker, T.nilable(T::Array[Models::Operations::Marker]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Marker') } }
110
+ field :marker, T.nilable(T::Array[Models::Operations::GetMediaMetaDataMarker]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Marker') } }
113
111
 
114
112
  field :media, T.nilable(T::Array[Models::Operations::GetMediaMetaDataMedia]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Media') } }
113
+ # The original release date of the media item.
114
+ field :originally_available_at, T.nilable(::Date), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
115
115
  # The original title of the media item (if different).
116
116
  field :original_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originalTitle') } }
117
117
  # The GUID of the parent media item.
@@ -133,7 +133,7 @@ module PlexRubySDK
133
133
  # The URL for the rating image.
134
134
  field :rating_image, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('ratingImage') } }
135
135
 
136
- field :ratings, T.nilable(T::Array[Models::Operations::Ratings]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Rating') } }
136
+ field :ratings, T.nilable(T::Array[Models::Operations::GetMediaMetaDataRatings]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Rating') } }
137
137
 
138
138
  field :role, T.nilable(T::Array[Models::Operations::GetMediaMetaDataRole]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Role') } }
139
139
 
@@ -162,8 +162,8 @@ module PlexRubySDK
162
162
  field :year, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } }
163
163
 
164
164
 
165
- sig { params(added_at: ::Integer, art: ::String, audience_rating: ::Float, child_count: ::Integer, duration: ::Integer, guid: ::String, index: ::Integer, key: ::String, library_section_id: ::Integer, library_section_key: ::String, library_section_title: ::String, originally_available_at: ::Date, rating: ::Float, rating_key: ::String, season_count: ::Integer, slug: ::String, summary: ::String, tagline: ::String, theme: ::String, thumb: ::String, title: ::String, title_sort: ::String, type: Models::Operations::GetMediaMetaDataType, audience_rating_image: T.nilable(::String), chapter: T.nilable(T::Array[Models::Operations::Chapter]), chapter_source: T.nilable(::String), content_rating: T.nilable(::String), country: T.nilable(T::Array[Models::Operations::GetMediaMetaDataCountry]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[Models::Operations::GetMediaMetaDataDirector]), extras: T.nilable(Models::Operations::Extras), genre: T.nilable(T::Array[Models::Operations::GetMediaMetaDataGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[Models::Operations::GetMediaMetaDataGuids]), image: T.nilable(T::Array[Models::Operations::GetMediaMetaDataImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), location: T.nilable(T::Array[Models::Operations::GetMediaMetaDataLocation]), marker: T.nilable(T::Array[Models::Operations::Marker]), media: T.nilable(T::Array[Models::Operations::GetMediaMetaDataMedia]), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), primary_extra_key: T.nilable(::String), producer: T.nilable(T::Array[Models::Operations::GetMediaMetaDataProducer]), rating_image: T.nilable(::String), ratings: T.nilable(T::Array[Models::Operations::Ratings]), role: T.nilable(T::Array[Models::Operations::GetMediaMetaDataRole]), similar: T.nilable(T::Array[Models::Operations::GetMediaMetaDataSimilar]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(Models::Operations::GetMediaMetaDataUltraBlurColors), updated_at: T.nilable(::Integer), user_rating: T.nilable(::Float), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[Models::Operations::GetMediaMetaDataWriter]), year: T.nilable(::Integer)).void }
166
- def initialize(added_at: nil, art: nil, audience_rating: nil, child_count: nil, duration: nil, guid: nil, index: nil, key: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, originally_available_at: nil, rating: nil, rating_key: nil, season_count: nil, slug: nil, summary: nil, tagline: nil, theme: nil, thumb: nil, title: nil, title_sort: nil, type: nil, audience_rating_image: nil, chapter: nil, chapter_source: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: nil, extras: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guids: nil, image: nil, last_rated_at: nil, last_viewed_at: nil, leaf_count: nil, location: nil, marker: nil, media: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, primary_extra_key: nil, producer: nil, rating_image: nil, ratings: nil, role: nil, similar: nil, skip_count: nil, studio: nil, subtype: nil, ultra_blur_colors: nil, updated_at: nil, user_rating: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil)
165
+ sig { params(added_at: ::Integer, art: ::String, audience_rating: ::Float, child_count: ::Integer, duration: ::Integer, guid: ::String, index: ::Integer, key: ::String, rating: ::Float, rating_key: ::String, season_count: ::Integer, slug: ::String, summary: ::String, tagline: ::String, theme: ::String, thumb: ::String, title: ::String, title_sort: ::String, type: Models::Operations::GetMediaMetaDataType, audience_rating_image: T.nilable(::String), chapter: T.nilable(T::Array[Models::Operations::GetMediaMetaDataChapter]), chapter_source: T.nilable(::String), content_rating: T.nilable(::String), country: T.nilable(T::Array[Models::Operations::GetMediaMetaDataCountry]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[Models::Operations::GetMediaMetaDataDirector]), extras: T.nilable(Models::Operations::GetMediaMetaDataExtras), genre: T.nilable(T::Array[Models::Operations::GetMediaMetaDataGenre]), grandparent_art: T.nilable(::String), grandparent_guid: T.nilable(::String), grandparent_key: T.nilable(::String), grandparent_rating_key: T.nilable(::String), grandparent_slug: T.nilable(::String), grandparent_theme: T.nilable(::String), grandparent_thumb: T.nilable(::String), grandparent_title: T.nilable(::String), guids: T.nilable(T::Array[Models::Operations::GetMediaMetaDataGuids]), image: T.nilable(T::Array[Models::Operations::GetMediaMetaDataImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), library_section_id: T.nilable(::Integer), library_section_key: T.nilable(::String), library_section_title: T.nilable(::String), location: T.nilable(T::Array[Models::Operations::GetMediaMetaDataLocation]), marker: T.nilable(T::Array[Models::Operations::GetMediaMetaDataMarker]), media: T.nilable(T::Array[Models::Operations::GetMediaMetaDataMedia]), originally_available_at: T.nilable(::Date), original_title: T.nilable(::String), parent_guid: T.nilable(::String), parent_index: T.nilable(::Integer), parent_key: T.nilable(::String), parent_rating_key: T.nilable(::String), parent_thumb: T.nilable(::String), parent_title: T.nilable(::String), primary_extra_key: T.nilable(::String), producer: T.nilable(T::Array[Models::Operations::GetMediaMetaDataProducer]), rating_image: T.nilable(::String), ratings: T.nilable(T::Array[Models::Operations::GetMediaMetaDataRatings]), role: T.nilable(T::Array[Models::Operations::GetMediaMetaDataRole]), similar: T.nilable(T::Array[Models::Operations::GetMediaMetaDataSimilar]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(Models::Operations::GetMediaMetaDataUltraBlurColors), updated_at: T.nilable(::Integer), user_rating: T.nilable(::Float), view_count: T.nilable(::Integer), viewed_leaf_count: T.nilable(::Integer), view_offset: T.nilable(::Integer), writer: T.nilable(T::Array[Models::Operations::GetMediaMetaDataWriter]), year: T.nilable(::Integer)).void }
166
+ def initialize(added_at: nil, art: nil, audience_rating: nil, child_count: nil, duration: nil, guid: nil, index: nil, key: nil, rating: nil, rating_key: nil, season_count: nil, slug: nil, summary: nil, tagline: nil, theme: nil, thumb: nil, title: nil, title_sort: nil, type: nil, audience_rating_image: nil, chapter: nil, chapter_source: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: nil, extras: nil, genre: nil, grandparent_art: nil, grandparent_guid: nil, grandparent_key: nil, grandparent_rating_key: nil, grandparent_slug: nil, grandparent_theme: nil, grandparent_thumb: nil, grandparent_title: nil, guids: nil, image: nil, last_rated_at: nil, last_viewed_at: nil, leaf_count: nil, library_section_id: nil, library_section_key: nil, library_section_title: nil, location: nil, marker: nil, media: nil, originally_available_at: nil, original_title: nil, parent_guid: nil, parent_index: nil, parent_key: nil, parent_rating_key: nil, parent_thumb: nil, parent_title: nil, primary_extra_key: nil, producer: nil, rating_image: nil, ratings: nil, role: nil, similar: nil, skip_count: nil, studio: nil, subtype: nil, ultra_blur_colors: nil, updated_at: nil, user_rating: nil, view_count: nil, viewed_leaf_count: nil, view_offset: nil, writer: nil, year: nil)
167
167
  @added_at = added_at
168
168
  @art = art
169
169
  @audience_rating = audience_rating
@@ -172,10 +172,6 @@ module PlexRubySDK
172
172
  @guid = guid
173
173
  @index = index
174
174
  @key = key
175
- @library_section_id = library_section_id
176
- @library_section_key = library_section_key
177
- @library_section_title = library_section_title
178
- @originally_available_at = originally_available_at
179
175
  @rating = rating
180
176
  @rating_key = rating_key
181
177
  @season_count = season_count
@@ -210,9 +206,13 @@ module PlexRubySDK
210
206
  @last_rated_at = last_rated_at
211
207
  @last_viewed_at = last_viewed_at
212
208
  @leaf_count = leaf_count
209
+ @library_section_id = library_section_id
210
+ @library_section_key = library_section_key
211
+ @library_section_title = library_section_title
213
212
  @location = location
214
213
  @marker = marker
215
214
  @media = media
215
+ @originally_available_at = originally_available_at
216
216
  @original_title = original_title
217
217
  @parent_guid = parent_guid
218
218
  @parent_index = parent_index
@@ -249,10 +249,6 @@ module PlexRubySDK
249
249
  return false unless @guid == other.guid
250
250
  return false unless @index == other.index
251
251
  return false unless @key == other.key
252
- return false unless @library_section_id == other.library_section_id
253
- return false unless @library_section_key == other.library_section_key
254
- return false unless @library_section_title == other.library_section_title
255
- return false unless @originally_available_at == other.originally_available_at
256
252
  return false unless @rating == other.rating
257
253
  return false unless @rating_key == other.rating_key
258
254
  return false unless @season_count == other.season_count
@@ -287,9 +283,13 @@ module PlexRubySDK
287
283
  return false unless @last_rated_at == other.last_rated_at
288
284
  return false unless @last_viewed_at == other.last_viewed_at
289
285
  return false unless @leaf_count == other.leaf_count
286
+ return false unless @library_section_id == other.library_section_id
287
+ return false unless @library_section_key == other.library_section_key
288
+ return false unless @library_section_title == other.library_section_title
290
289
  return false unless @location == other.location
291
290
  return false unless @marker == other.marker
292
291
  return false unless @media == other.media
292
+ return false unless @originally_available_at == other.originally_available_at
293
293
  return false unless @original_title == other.original_title
294
294
  return false unless @parent_guid == other.parent_guid
295
295
  return false unless @parent_index == other.parent_index
@@ -13,14 +13,8 @@ module PlexRubySDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # File path for the part.
17
- field :file, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('file') } }
18
16
  # Unique part identifier.
19
17
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
- # Key to access this part.
21
- field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
22
- # File size in bytes.
23
- field :size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
24
18
  # Indicates if the part is accessible.
25
19
  field :accessible, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('accessible') } }
26
20
  # The audio profile used for the media (e.g., DTS, Dolby Digital, etc.).
@@ -31,58 +25,65 @@ module PlexRubySDK
31
25
  field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } }
32
26
  # Indicates if the part exists.
33
27
  field :exists, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('exists') } }
28
+ # File path for the part.
29
+ field :file, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('file') } }
34
30
 
35
31
  field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } }
36
32
 
37
33
  field :has_thumbnail, T.nilable(Models::Operations::GetMediaMetaDataHasThumbnail), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasThumbnail'), 'decoder': Utils.enum_from_string(Models::Operations::GetMediaMetaDataHasThumbnail, true) } }
38
34
 
39
35
  field :indexes, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('indexes') } }
36
+ # Key to access this part.
37
+ field :key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
40
38
  # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
39
+ #
41
40
  field :optimized_for_streaming, T.nilable(T.any(Models::Operations::GetMediaMetaDataOptimizedForStreamingLibrary1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
42
41
 
43
42
  field :packet_length, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('packetLength') } }
44
- # An array of streams for this part.
43
+ # File size in bytes.
44
+ field :size, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
45
+
45
46
  field :stream, T.nilable(T::Array[Models::Operations::GetMediaMetaDataStream]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Stream') } }
46
47
  # Video profile for the part.
47
48
  field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } }
48
49
 
49
50
 
50
- sig { params(file: ::String, id: ::Integer, key: ::String, size: ::Integer, accessible: T.nilable(T::Boolean), audio_profile: T.nilable(::String), container: T.nilable(::String), duration: T.nilable(::Integer), exists: T.nilable(T::Boolean), has64bit_offsets: T.nilable(T::Boolean), has_thumbnail: T.nilable(Models::Operations::GetMediaMetaDataHasThumbnail), indexes: T.nilable(::String), optimized_for_streaming: T.nilable(T.any(Models::Operations::GetMediaMetaDataOptimizedForStreamingLibrary1, T::Boolean)), packet_length: T.nilable(::Integer), stream: T.nilable(T::Array[Models::Operations::GetMediaMetaDataStream]), video_profile: T.nilable(::String)).void }
51
- def initialize(file: nil, id: nil, key: nil, size: nil, accessible: nil, audio_profile: nil, container: nil, duration: nil, exists: nil, has64bit_offsets: nil, has_thumbnail: nil, indexes: nil, optimized_for_streaming: nil, packet_length: nil, stream: nil, video_profile: nil)
52
- @file = file
51
+ sig { params(id: ::Integer, accessible: T.nilable(T::Boolean), audio_profile: T.nilable(::String), container: T.nilable(::String), duration: T.nilable(::Integer), exists: T.nilable(T::Boolean), file: T.nilable(::String), has64bit_offsets: T.nilable(T::Boolean), has_thumbnail: T.nilable(Models::Operations::GetMediaMetaDataHasThumbnail), indexes: T.nilable(::String), key: T.nilable(::String), optimized_for_streaming: T.nilable(T.any(Models::Operations::GetMediaMetaDataOptimizedForStreamingLibrary1, T::Boolean)), packet_length: T.nilable(::Integer), size: T.nilable(::Integer), stream: T.nilable(T::Array[Models::Operations::GetMediaMetaDataStream]), video_profile: T.nilable(::String)).void }
52
+ def initialize(id: nil, accessible: nil, audio_profile: nil, container: nil, duration: nil, exists: nil, file: nil, has64bit_offsets: nil, has_thumbnail: nil, indexes: nil, key: nil, optimized_for_streaming: nil, packet_length: nil, size: nil, stream: nil, video_profile: nil)
53
53
  @id = id
54
- @key = key
55
- @size = size
56
54
  @accessible = accessible
57
55
  @audio_profile = audio_profile
58
56
  @container = container
59
57
  @duration = duration
60
58
  @exists = exists
59
+ @file = file
61
60
  @has64bit_offsets = has64bit_offsets
62
61
  @has_thumbnail = has_thumbnail
63
62
  @indexes = indexes
63
+ @key = key
64
64
  @optimized_for_streaming = optimized_for_streaming
65
65
  @packet_length = packet_length
66
+ @size = size
66
67
  @stream = stream
67
68
  @video_profile = video_profile
68
69
  end
69
70
 
70
71
  def ==(other)
71
72
  return false unless other.is_a? self.class
72
- return false unless @file == other.file
73
73
  return false unless @id == other.id
74
- return false unless @key == other.key
75
- return false unless @size == other.size
76
74
  return false unless @accessible == other.accessible
77
75
  return false unless @audio_profile == other.audio_profile
78
76
  return false unless @container == other.container
79
77
  return false unless @duration == other.duration
80
78
  return false unless @exists == other.exists
79
+ return false unless @file == other.file
81
80
  return false unless @has64bit_offsets == other.has64bit_offsets
82
81
  return false unless @has_thumbnail == other.has_thumbnail
83
82
  return false unless @indexes == other.indexes
83
+ return false unless @key == other.key
84
84
  return false unless @optimized_for_streaming == other.optimized_for_streaming
85
85
  return false unless @packet_length == other.packet_length
86
+ return false unless @size == other.size
86
87
  return false unless @stream == other.stream
87
88
  return false unless @video_profile == other.video_profile
88
89
  true
@@ -9,15 +9,15 @@ module PlexRubySDK
9
9
  module Operations
10
10
 
11
11
 
12
- class MetaDataRating
12
+ class GetMediaMetaDataRatings
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # A URI or path to the rating image.
16
+ # The image or reference for the rating.
17
17
  field :image, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('image') } }
18
18
  # The type of rating (e.g., audience, critic).
19
19
  field :type, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type') } }
20
- # The value of the rating.
20
+ # The rating value.
21
21
  field :value, ::Float, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('value') } }
22
22
 
23
23
 
@@ -13,20 +13,14 @@ module PlexRubySDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # Codec used by the stream.
17
- field :codec, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codec') } }
18
- # Display title for the stream.
19
- field :display_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayTitle') } }
20
- # Extended display title for the stream.
21
- field :extended_display_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('extendedDisplayTitle') } }
22
16
  # Unique stream identifier.
23
17
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
24
18
  # Stream type:
25
- # - 1 = video
26
- # - 2 = audio
27
- # - 3 = subtitle
19
+ # - VIDEO = 1
20
+ # - AUDIO = 2
21
+ # - SUBTITLE = 3
28
22
  #
29
- field :stream_type, Models::Operations::GetMediaMetaDataStreamType, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType'), 'decoder': Utils.enum_from_string(Models::Operations::GetMediaMetaDataStreamType, false) } }
23
+ field :stream_type, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType') } }
30
24
  # Audio channel layout.
31
25
  field :audio_channel_layout, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioChannelLayout') } }
32
26
  # Bit depth of the video stream.
@@ -43,6 +37,8 @@ module PlexRubySDK
43
37
  field :chroma_subsampling, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('chromaSubsampling') } }
44
38
 
45
39
  field :closed_captions, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('closedCaptions') } }
40
+ # Codec used by the stream.
41
+ field :codec, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codec') } }
46
42
  # Coded video height.
47
43
  field :coded_height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('codedHeight') } }
48
44
  # Coded video width.
@@ -57,6 +53,8 @@ module PlexRubySDK
57
53
  field :color_trc, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('colorTrc') } }
58
54
  # Indicates if this stream is default.
59
55
  field :default, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('default') } }
56
+ # Display title for the stream.
57
+ field :display_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('displayTitle') } }
60
58
  # Dolby Vision BL compatibility ID.
61
59
  field :dovibl_compat_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('DOVIBLCompatID') } }
62
60
  # Indicates if Dolby Vision BL is present.
@@ -77,6 +75,8 @@ module PlexRubySDK
77
75
  field :dub, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('dub') } }
78
76
 
79
77
  field :embedded_in_video, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('embeddedInVideo') } }
78
+ # Extended display title for the stream.
79
+ field :extended_display_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('extendedDisplayTitle') } }
80
80
 
81
81
  field :forced, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('forced') } }
82
82
  # Format of the stream (e.g., srt).
@@ -121,11 +121,8 @@ module PlexRubySDK
121
121
  field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } }
122
122
 
123
123
 
124
- sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, id: ::Integer, stream_type: Models::Operations::GetMediaMetaDataStreamType, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), closed_captions: T.nilable(T::Boolean), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), embedded_in_video: T.nilable(::String), forced: T.nilable(T::Boolean), format: T.nilable(::String), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), index: T.nilable(::Integer), key: T.nilable(::String), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void }
125
- def initialize(codec: nil, display_title: nil, extended_display_title: nil, id: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, closed_captions: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, embedded_in_video: nil, forced: nil, format: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, index: nil, key: nil, language: nil, language_code: nil, language_tag: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil)
126
- @codec = codec
127
- @display_title = display_title
128
- @extended_display_title = extended_display_title
124
+ sig { params(id: ::Integer, stream_type: ::Integer, audio_channel_layout: T.nilable(::String), bit_depth: T.nilable(::Integer), bitrate: T.nilable(::Integer), can_auto_sync: T.nilable(T::Boolean), channels: T.nilable(::Integer), chroma_location: T.nilable(::String), chroma_subsampling: T.nilable(::String), closed_captions: T.nilable(T::Boolean), codec: T.nilable(::String), coded_height: T.nilable(::Integer), coded_width: T.nilable(::Integer), color_primaries: T.nilable(::String), color_range: T.nilable(::String), color_space: T.nilable(::String), color_trc: T.nilable(::String), default: T.nilable(T::Boolean), display_title: T.nilable(::String), dovibl_compat_id: T.nilable(::Integer), dovibl_present: T.nilable(T::Boolean), doviel_present: T.nilable(T::Boolean), dovi_level: T.nilable(::Integer), dovi_present: T.nilable(T::Boolean), dovi_profile: T.nilable(::Integer), dovirpu_present: T.nilable(T::Boolean), dovi_version: T.nilable(::String), dub: T.nilable(T::Boolean), embedded_in_video: T.nilable(::String), extended_display_title: T.nilable(::String), forced: T.nilable(T::Boolean), format: T.nilable(::String), frame_rate: T.nilable(::Float), has_scaling_matrix: T.nilable(T::Boolean), header_compression: T.nilable(T::Boolean), hearing_impaired: T.nilable(T::Boolean), height: T.nilable(::Integer), index: T.nilable(::Integer), key: T.nilable(::String), language: T.nilable(::String), language_code: T.nilable(::String), language_tag: T.nilable(::String), level: T.nilable(::Integer), original: T.nilable(T::Boolean), profile: T.nilable(::String), ref_frames: T.nilable(::Integer), sampling_rate: T.nilable(::Integer), scan_type: T.nilable(::String), selected: T.nilable(T::Boolean), title: T.nilable(::String), width: T.nilable(::Integer)).void }
125
+ def initialize(id: nil, stream_type: nil, audio_channel_layout: nil, bit_depth: nil, bitrate: nil, can_auto_sync: nil, channels: nil, chroma_location: nil, chroma_subsampling: nil, closed_captions: nil, codec: nil, coded_height: nil, coded_width: nil, color_primaries: nil, color_range: nil, color_space: nil, color_trc: nil, default: nil, display_title: nil, dovibl_compat_id: nil, dovibl_present: nil, doviel_present: nil, dovi_level: nil, dovi_present: nil, dovi_profile: nil, dovirpu_present: nil, dovi_version: nil, dub: nil, embedded_in_video: nil, extended_display_title: nil, forced: nil, format: nil, frame_rate: nil, has_scaling_matrix: nil, header_compression: nil, hearing_impaired: nil, height: nil, index: nil, key: nil, language: nil, language_code: nil, language_tag: nil, level: nil, original: nil, profile: nil, ref_frames: nil, sampling_rate: nil, scan_type: nil, selected: nil, title: nil, width: nil)
129
126
  @id = id
130
127
  @stream_type = stream_type
131
128
  @audio_channel_layout = audio_channel_layout
@@ -136,6 +133,7 @@ module PlexRubySDK
136
133
  @chroma_location = chroma_location
137
134
  @chroma_subsampling = chroma_subsampling
138
135
  @closed_captions = closed_captions
136
+ @codec = codec
139
137
  @coded_height = coded_height
140
138
  @coded_width = coded_width
141
139
  @color_primaries = color_primaries
@@ -143,6 +141,7 @@ module PlexRubySDK
143
141
  @color_space = color_space
144
142
  @color_trc = color_trc
145
143
  @default = default
144
+ @display_title = display_title
146
145
  @dovibl_compat_id = dovibl_compat_id
147
146
  @dovibl_present = dovibl_present
148
147
  @doviel_present = doviel_present
@@ -153,6 +152,7 @@ module PlexRubySDK
153
152
  @dovi_version = dovi_version
154
153
  @dub = dub
155
154
  @embedded_in_video = embedded_in_video
155
+ @extended_display_title = extended_display_title
156
156
  @forced = forced
157
157
  @format = format
158
158
  @frame_rate = frame_rate
@@ -178,9 +178,6 @@ module PlexRubySDK
178
178
 
179
179
  def ==(other)
180
180
  return false unless other.is_a? self.class
181
- return false unless @codec == other.codec
182
- return false unless @display_title == other.display_title
183
- return false unless @extended_display_title == other.extended_display_title
184
181
  return false unless @id == other.id
185
182
  return false unless @stream_type == other.stream_type
186
183
  return false unless @audio_channel_layout == other.audio_channel_layout
@@ -191,6 +188,7 @@ module PlexRubySDK
191
188
  return false unless @chroma_location == other.chroma_location
192
189
  return false unless @chroma_subsampling == other.chroma_subsampling
193
190
  return false unless @closed_captions == other.closed_captions
191
+ return false unless @codec == other.codec
194
192
  return false unless @coded_height == other.coded_height
195
193
  return false unless @coded_width == other.coded_width
196
194
  return false unless @color_primaries == other.color_primaries
@@ -198,6 +196,7 @@ module PlexRubySDK
198
196
  return false unless @color_space == other.color_space
199
197
  return false unless @color_trc == other.color_trc
200
198
  return false unless @default == other.default
199
+ return false unless @display_title == other.display_title
201
200
  return false unless @dovibl_compat_id == other.dovibl_compat_id
202
201
  return false unless @dovibl_present == other.dovibl_present
203
202
  return false unless @doviel_present == other.doviel_present
@@ -208,6 +207,7 @@ module PlexRubySDK
208
207
  return false unless @dovi_version == other.dovi_version
209
208
  return false unless @dub == other.dub
210
209
  return false unless @embedded_in_video == other.embedded_in_video
210
+ return false unless @extended_display_title == other.extended_display_title
211
211
  return false unless @forced == other.forced
212
212
  return false unless @format == other.format
213
213
  return false unless @frame_rate == other.frame_rate