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
@@ -13,66 +13,74 @@ module PlexRubySDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The container format of the media file.
17
- #
18
- field :container, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } }
19
-
20
- field :file, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('file') } }
21
-
16
+ # Unique part identifier.
22
17
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
23
-
24
- field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
25
-
26
- field :size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
27
-
18
+ # Indicates if the part is accessible.
19
+ field :accessible, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('accessible') } }
20
+ # The audio profile used for the media (e.g., DTS, Dolby Digital, etc.).
28
21
  field :audio_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioProfile') } }
29
-
22
+ # Container format of the part.
23
+ field :container, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('container') } }
24
+ # Duration of the part in milliseconds.
30
25
  field :duration, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('duration') } }
26
+ # Indicates if the part exists.
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') } }
31
30
 
32
31
  field :has64bit_offsets, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('has64bitOffsets') } }
33
32
 
34
33
  field :has_thumbnail, T.nilable(Models::Operations::GetLibraryItemsHasThumbnail), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('hasThumbnail'), 'decoder': Utils.enum_from_string(Models::Operations::GetLibraryItemsHasThumbnail, true) } }
35
34
 
36
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') } }
38
+ # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
39
+ #
40
+ field :optimized_for_streaming, T.nilable(T.any(Models::Operations::GetLibraryItemsOptimizedForStreaming1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
37
41
 
38
- field :optimized_for_streaming, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
39
-
40
- field :stream, T.nilable(T::Array[Models::Operations::GetLibraryItemsStream]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Stream') } }
41
-
42
+ field :packet_length, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('packetLength') } }
43
+ # File size in bytes.
44
+ field :size, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
45
+ # Video profile for the part.
42
46
  field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } }
43
47
 
44
48
 
45
- sig { params(container: ::String, file: ::String, id: ::Integer, key: ::String, size: ::Integer, audio_profile: T.nilable(::String), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_thumbnail: T.nilable(Models::Operations::GetLibraryItemsHasThumbnail), indexes: T.nilable(::String), optimized_for_streaming: T.nilable(T::Boolean), stream: T.nilable(T::Array[Models::Operations::GetLibraryItemsStream]), video_profile: T.nilable(::String)).void }
46
- def initialize(container: nil, file: nil, id: nil, key: nil, size: nil, audio_profile: nil, duration: nil, has64bit_offsets: nil, has_thumbnail: nil, indexes: nil, optimized_for_streaming: nil, stream: nil, video_profile: nil)
47
- @container = container
48
- @file = file
49
+ 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::GetLibraryItemsHasThumbnail), indexes: T.nilable(::String), key: T.nilable(::String), optimized_for_streaming: T.nilable(T.any(Models::Operations::GetLibraryItemsOptimizedForStreaming1, T::Boolean)), packet_length: T.nilable(::Integer), size: T.nilable(::Integer), video_profile: T.nilable(::String)).void }
50
+ 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, video_profile: nil)
49
51
  @id = id
50
- @key = key
51
- @size = size
52
+ @accessible = accessible
52
53
  @audio_profile = audio_profile
54
+ @container = container
53
55
  @duration = duration
56
+ @exists = exists
57
+ @file = file
54
58
  @has64bit_offsets = has64bit_offsets
55
59
  @has_thumbnail = has_thumbnail
56
60
  @indexes = indexes
61
+ @key = key
57
62
  @optimized_for_streaming = optimized_for_streaming
58
- @stream = stream
63
+ @packet_length = packet_length
64
+ @size = size
59
65
  @video_profile = video_profile
60
66
  end
61
67
 
62
68
  def ==(other)
63
69
  return false unless other.is_a? self.class
64
- return false unless @container == other.container
65
- return false unless @file == other.file
66
70
  return false unless @id == other.id
67
- return false unless @key == other.key
68
- return false unless @size == other.size
71
+ return false unless @accessible == other.accessible
69
72
  return false unless @audio_profile == other.audio_profile
73
+ return false unless @container == other.container
70
74
  return false unless @duration == other.duration
75
+ return false unless @exists == other.exists
76
+ return false unless @file == other.file
71
77
  return false unless @has64bit_offsets == other.has64bit_offsets
72
78
  return false unless @has_thumbnail == other.has_thumbnail
73
79
  return false unless @indexes == other.indexes
80
+ return false unless @key == other.key
74
81
  return false unless @optimized_for_streaming == other.optimized_for_streaming
75
- return false unless @stream == other.stream
82
+ return false unless @packet_length == other.packet_length
83
+ return false unless @size == other.size
76
84
  return false unless @video_profile == other.video_profile
77
85
  true
78
86
  end
@@ -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
+
12
+ class GetLibraryItemsProducer
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The filter string for the role.
17
+ field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
18
+ # The unique role identifier.
19
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
+ # The actor's name.
21
+ field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
22
+ # A key associated with the actor tag.
23
+ field :tag_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } }
24
+ # The character name or role.
25
+ field :role, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('role') } }
26
+ # URL for the role thumbnail image.
27
+ field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
28
+
29
+
30
+ sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: ::String, role: T.nilable(::String), thumb: T.nilable(::String)).void }
31
+ def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, role: nil, thumb: nil)
32
+ @filter = filter
33
+ @id = id
34
+ @tag = tag
35
+ @tag_key = tag_key
36
+ @role = role
37
+ @thumb = thumb
38
+ end
39
+
40
+ def ==(other)
41
+ return false unless other.is_a? self.class
42
+ return false unless @filter == other.filter
43
+ return false unless @id == other.id
44
+ return false unless @tag == other.tag
45
+ return false unless @tag_key == other.tag_key
46
+ return false unless @role == other.role
47
+ return false unless @thumb == other.thumb
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -13,37 +13,31 @@ module PlexRubySDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The filter used to find the actor or tag.
17
- field :filter, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
18
- # The ID of the tag or actor.
19
- field :id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
- # The role of the actor or tag in the media.
16
+ # The unique identifier for the role.
17
+ # NOTE: This is different for each Plex server and is not globally unique.
18
+ #
19
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
+ # The display tag for the actor (typically the actor's name).
21
+ field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
22
+ # The role played by the actor in the media item.
21
23
  field :role, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('role') } }
22
- # The name of the tag or actor.
23
- field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
24
- # Unique identifier for the tag.
25
- field :tag_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } }
26
- # The thumbnail of the actor
24
+ # The absolute URL of the thumbnail image for the actor.
27
25
  field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
28
26
 
29
27
 
30
- sig { params(filter: T.nilable(::String), id: T.nilable(::Integer), role: T.nilable(::String), tag: T.nilable(::String), tag_key: T.nilable(::String), thumb: T.nilable(::String)).void }
31
- def initialize(filter: nil, id: nil, role: nil, tag: nil, tag_key: nil, thumb: nil)
32
- @filter = filter
28
+ sig { params(id: ::Integer, tag: ::String, role: T.nilable(::String), thumb: T.nilable(::String)).void }
29
+ def initialize(id: nil, tag: nil, role: nil, thumb: nil)
33
30
  @id = id
34
- @role = role
35
31
  @tag = tag
36
- @tag_key = tag_key
32
+ @role = role
37
33
  @thumb = thumb
38
34
  end
39
35
 
40
36
  def ==(other)
41
37
  return false unless other.is_a? self.class
42
- return false unless @filter == other.filter
43
38
  return false unless @id == other.id
44
- return false unless @role == other.role
45
39
  return false unless @tag == other.tag
46
- return false unless @tag_key == other.tag_key
40
+ return false unless @role == other.role
47
41
  return false unless @thumb == other.thumb
48
42
  true
49
43
  end
@@ -0,0 +1,41 @@
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 GetLibraryItemsSimilar
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The filter string for similar items.
17
+ field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
18
+ # The unique similar item identifier.
19
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
+ # The tag or title of the similar content.
21
+ field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
22
+
23
+
24
+ sig { params(filter: ::String, id: ::Integer, tag: ::String).void }
25
+ def initialize(filter: nil, id: nil, tag: nil)
26
+ @filter = filter
27
+ @id = id
28
+ @tag = tag
29
+ end
30
+
31
+ def ==(other)
32
+ return false unless other.is_a? self.class
33
+ return false unless @filter == other.filter
34
+ return false unless @id == other.id
35
+ return false unless @tag == other.tag
36
+ true
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -8,52 +8,20 @@ module PlexRubySDK
8
8
  module Models
9
9
  module Operations
10
10
 
11
-
12
- class GetLibraryItemsType
13
- extend T::Sig
14
- include Crystalline::MetadataFields
15
-
16
-
17
- field :active, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('active') } }
18
-
19
- field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
20
-
21
- field :title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('title') } }
22
-
23
- field :type, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('type') } }
24
-
25
- field :field, T.nilable(T::Array[Models::Operations::GetLibraryItemsField]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Field') } }
26
-
27
- field :filter, T.nilable(T::Array[Models::Operations::GetLibraryItemsFilter]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Filter') } }
28
-
29
- field :sort, T.nilable(T::Array[Models::Operations::GetLibraryItemsSort]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Sort') } }
30
-
31
- field :subtype, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('subtype') } }
32
-
33
-
34
- sig { params(active: T::Boolean, key: ::String, title: ::String, type: ::String, field: T.nilable(T::Array[Models::Operations::GetLibraryItemsField]), filter: T.nilable(T::Array[Models::Operations::GetLibraryItemsFilter]), sort: T.nilable(T::Array[Models::Operations::GetLibraryItemsSort]), subtype: T.nilable(::String)).void }
35
- def initialize(active: nil, key: nil, title: nil, type: nil, field: nil, filter: nil, sort: nil, subtype: nil)
36
- @active = active
37
- @key = key
38
- @title = title
39
- @type = type
40
- @field = field
41
- @filter = filter
42
- @sort = sort
43
- @subtype = subtype
44
- end
45
-
46
- def ==(other)
47
- return false unless other.is_a? self.class
48
- return false unless @active == other.active
49
- return false unless @key == other.key
50
- return false unless @title == other.title
51
- return false unless @type == other.type
52
- return false unless @field == other.field
53
- return false unless @filter == other.filter
54
- return false unless @sort == other.sort
55
- return false unless @subtype == other.subtype
56
- true
11
+ # GetLibraryItemsType - The type of media content in the Plex library. This can represent videos, music, or photos.
12
+ #
13
+ class GetLibraryItemsType < T::Enum
14
+ enums do
15
+ MOVIE = new('movie')
16
+ TV_SHOW = new('show')
17
+ SEASON = new('season')
18
+ EPISODE = new('episode')
19
+ ARTIST = new('artist')
20
+ ALBUM = new('album')
21
+ TRACK = new('track')
22
+ PHOTO_ALBUM = new('photoalbum')
23
+ PHOTO = new('photo')
24
+ COLLECTION = new('collection')
57
25
  end
58
26
  end
59
27
  end
@@ -13,18 +13,26 @@ module PlexRubySDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
+ # Unique identifier for the writer.
17
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
18
+ # The role of Writer
19
+ field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
20
+ # The absolute URL of the thumbnail image for the writer.
21
+ field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
16
22
 
17
- field :tag, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
18
23
 
19
-
20
- sig { params(tag: T.nilable(::String)).void }
21
- def initialize(tag: nil)
24
+ sig { params(id: ::Integer, tag: ::String, thumb: T.nilable(::String)).void }
25
+ def initialize(id: nil, tag: nil, thumb: nil)
26
+ @id = id
22
27
  @tag = tag
28
+ @thumb = thumb
23
29
  end
24
30
 
25
31
  def ==(other)
26
32
  return false unless other.is_a? self.class
33
+ return false unless @id == other.id
27
34
  return false unless @tag == other.tag
35
+ return false unless @thumb == other.thumb
28
36
  true
29
37
  end
30
38
  end
@@ -38,7 +38,7 @@ module PlexRubySDK
38
38
  # Video height in pixels.
39
39
  field :height, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('height') } }
40
40
  # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
41
- field :optimized_for_streaming, T.nilable(T.any(Models::Operations::OptimizedForStreaming1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
41
+ field :optimized_for_streaming, T.nilable(T.any(Models::Operations::GetLibrarySectionsAllOptimizedForStreaming1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
42
42
  # An array of parts for this media item.
43
43
  field :part, T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllPart]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Part') } }
44
44
  # Video codec used.
@@ -54,7 +54,7 @@ module PlexRubySDK
54
54
  field :width, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('width') } }
55
55
 
56
56
 
57
- sig { params(id: ::Integer, aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(T.any(Models::Operations::OptimizedForStreaming1, T::Boolean)), part: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllPart]), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void }
57
+ sig { params(id: ::Integer, aspect_ratio: T.nilable(::Float), audio_channels: T.nilable(::Integer), audio_codec: T.nilable(::String), audio_profile: T.nilable(::String), bitrate: T.nilable(::Integer), container: T.nilable(::String), display_offset: T.nilable(::Integer), duration: T.nilable(::Integer), has64bit_offsets: T.nilable(T::Boolean), has_voice_activity: T.nilable(T::Boolean), height: T.nilable(::Integer), optimized_for_streaming: T.nilable(T.any(Models::Operations::GetLibrarySectionsAllOptimizedForStreaming1, T::Boolean)), part: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllPart]), video_codec: T.nilable(::String), video_frame_rate: T.nilable(::String), video_profile: T.nilable(::String), video_resolution: T.nilable(::String), width: T.nilable(::Integer)).void }
58
58
  def initialize(id: nil, aspect_ratio: nil, audio_channels: nil, audio_codec: nil, audio_profile: nil, bitrate: nil, container: nil, display_offset: nil, duration: nil, has64bit_offsets: nil, has_voice_activity: nil, height: nil, optimized_for_streaming: nil, part: nil, video_codec: nil, video_frame_rate: nil, video_profile: nil, video_resolution: nil, width: nil)
59
59
  @id = id
60
60
  @aspect_ratio = aspect_ratio
@@ -21,10 +21,6 @@ module PlexRubySDK
21
21
  field :content, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('content') } }
22
22
  # An plugin identifier for the media container.
23
23
  field :identifier, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('identifier') } }
24
- # The unique identifier for the library section.
25
- field :library_section_id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } }
26
- # The title of the library section.
27
- field :library_section_title, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } }
28
24
  # The prefix used for media tag resource paths.
29
25
  field :media_tag_prefix, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaTagPrefix') } }
30
26
  # The version number for media tags.
@@ -45,6 +41,10 @@ module PlexRubySDK
45
41
  field :total_size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('totalSize') } }
46
42
  # Identifier for the view group layout.
47
43
  field :view_group, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('viewGroup') } }
44
+ # The unique identifier for the library section.
45
+ field :library_section_id, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionID') } }
46
+ # The title of the library section.
47
+ field :library_section_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionTitle') } }
48
48
  # The universally unique identifier for the library section.
49
49
  field :library_section_uuid, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('librarySectionUUID') } }
50
50
  # The Meta object is only included in the response if the `includeMeta` parameter is set to `1`.
@@ -54,14 +54,12 @@ module PlexRubySDK
54
54
  field :metadata, T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllMetadata]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Metadata') } }
55
55
 
56
56
 
57
- sig { params(allow_sync: T::Boolean, art: ::String, content: ::String, identifier: ::String, library_section_id: ::Integer, library_section_title: ::String, media_tag_prefix: ::String, media_tag_version: ::Integer, nocache: T::Boolean, offset: ::Integer, size: ::Integer, thumb: ::String, title1: ::String, title2: ::String, total_size: ::Integer, view_group: ::String, library_section_uuid: T.nilable(::String), meta: T.nilable(Models::Operations::GetLibrarySectionsAllMeta), metadata: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllMetadata])).void }
58
- def initialize(allow_sync: nil, art: nil, content: nil, identifier: nil, library_section_id: nil, library_section_title: nil, media_tag_prefix: nil, media_tag_version: nil, nocache: nil, offset: nil, size: nil, thumb: nil, title1: nil, title2: nil, total_size: nil, view_group: nil, library_section_uuid: nil, meta: nil, metadata: nil)
57
+ sig { params(allow_sync: T::Boolean, art: ::String, content: ::String, identifier: ::String, media_tag_prefix: ::String, media_tag_version: ::Integer, nocache: T::Boolean, offset: ::Integer, size: ::Integer, thumb: ::String, title1: ::String, title2: ::String, total_size: ::Integer, view_group: ::String, library_section_id: T.nilable(::Integer), library_section_title: T.nilable(::String), library_section_uuid: T.nilable(::String), meta: T.nilable(Models::Operations::GetLibrarySectionsAllMeta), metadata: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllMetadata])).void }
58
+ def initialize(allow_sync: nil, art: nil, content: nil, identifier: nil, media_tag_prefix: nil, media_tag_version: nil, nocache: nil, offset: nil, size: nil, thumb: nil, title1: nil, title2: nil, total_size: nil, view_group: nil, library_section_id: nil, library_section_title: nil, library_section_uuid: nil, meta: nil, metadata: nil)
59
59
  @allow_sync = allow_sync
60
60
  @art = art
61
61
  @content = content
62
62
  @identifier = identifier
63
- @library_section_id = library_section_id
64
- @library_section_title = library_section_title
65
63
  @media_tag_prefix = media_tag_prefix
66
64
  @media_tag_version = media_tag_version
67
65
  @nocache = nocache
@@ -72,6 +70,8 @@ module PlexRubySDK
72
70
  @title2 = title2
73
71
  @total_size = total_size
74
72
  @view_group = view_group
73
+ @library_section_id = library_section_id
74
+ @library_section_title = library_section_title
75
75
  @library_section_uuid = library_section_uuid
76
76
  @meta = meta
77
77
  @metadata = metadata
@@ -83,8 +83,6 @@ module PlexRubySDK
83
83
  return false unless @art == other.art
84
84
  return false unless @content == other.content
85
85
  return false unless @identifier == other.identifier
86
- return false unless @library_section_id == other.library_section_id
87
- return false unless @library_section_title == other.library_section_title
88
86
  return false unless @media_tag_prefix == other.media_tag_prefix
89
87
  return false unless @media_tag_version == other.media_tag_version
90
88
  return false unless @nocache == other.nocache
@@ -95,6 +93,8 @@ module PlexRubySDK
95
93
  return false unless @title2 == other.title2
96
94
  return false unless @total_size == other.total_size
97
95
  return false unless @view_group == other.view_group
96
+ return false unless @library_section_id == other.library_section_id
97
+ return false unless @library_section_title == other.library_section_title
98
98
  return false unless @library_section_uuid == other.library_section_uuid
99
99
  return false unless @meta == other.meta
100
100
  return false unless @metadata == other.metadata
@@ -30,8 +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 original release date of the media item.
34
- field :originally_available_at, ::Date, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(false) } }
35
33
  # The critic rating for the media item.
36
34
  field :rating, ::Float, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('rating') } }
37
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.
@@ -100,6 +98,8 @@ module PlexRubySDK
100
98
  field :leaf_count, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('leafCount') } }
101
99
 
102
100
  field :media, T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllMedia]), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Media') } }
101
+ # The original release date of the media item.
102
+ field :originally_available_at, T.nilable(::Date), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originallyAvailableAt'), 'decoder': Utils.date_from_iso_format(true) } }
103
103
  # The original title of the media item (if different).
104
104
  field :original_title, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('originalTitle') } }
105
105
  # The GUID of the parent media item.
@@ -144,8 +144,8 @@ module PlexRubySDK
144
144
  field :year, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('year') } }
145
145
 
146
146
 
147
- sig { params(added_at: ::Integer, art: ::String, audience_rating: ::Float, child_count: ::Integer, duration: ::Integer, guid: ::String, index: ::Integer, key: ::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::GetLibrarySectionsAllLibraryType, audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), collection: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllCollection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllCountry]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllDirector]), genre: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllGenre]), 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::GetLibrarySectionsAllGuids]), image: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), media: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllMedia]), 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), rating_image: T.nilable(::String), role: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllRole]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(Models::Operations::GetLibrarySectionsAllUltraBlurColors), 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::GetLibrarySectionsAllWriter]), year: T.nilable(::Integer)).void }
148
- def initialize(added_at: nil, art: nil, audience_rating: nil, child_count: nil, duration: nil, guid: nil, index: nil, key: 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_source: nil, collection: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: 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, 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, rating_image: nil, role: 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)
147
+ 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::GetLibrarySectionsAllLibraryType, audience_rating_image: T.nilable(::String), chapter_source: T.nilable(::String), collection: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllCollection]), content_rating: T.nilable(::String), country: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllCountry]), created_at_accuracy: T.nilable(::String), created_at_tz_offset: T.nilable(::String), director: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllDirector]), genre: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllGenre]), 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::GetLibrarySectionsAllGuids]), image: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllImage]), last_rated_at: T.nilable(::Integer), last_viewed_at: T.nilable(::Integer), leaf_count: T.nilable(::Integer), media: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllMedia]), 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), rating_image: T.nilable(::String), role: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllRole]), skip_count: T.nilable(::Integer), studio: T.nilable(::String), subtype: T.nilable(::String), ultra_blur_colors: T.nilable(Models::Operations::GetLibrarySectionsAllUltraBlurColors), 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::GetLibrarySectionsAllWriter]), year: T.nilable(::Integer)).void }
148
+ 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_source: nil, collection: nil, content_rating: nil, country: nil, created_at_accuracy: nil, created_at_tz_offset: nil, director: 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, 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, rating_image: nil, role: 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)
149
149
  @added_at = added_at
150
150
  @art = art
151
151
  @audience_rating = audience_rating
@@ -154,7 +154,6 @@ module PlexRubySDK
154
154
  @guid = guid
155
155
  @index = index
156
156
  @key = key
157
- @originally_available_at = originally_available_at
158
157
  @rating = rating
159
158
  @rating_key = rating_key
160
159
  @season_count = season_count
@@ -189,6 +188,7 @@ module PlexRubySDK
189
188
  @last_viewed_at = last_viewed_at
190
189
  @leaf_count = leaf_count
191
190
  @media = media
191
+ @originally_available_at = originally_available_at
192
192
  @original_title = original_title
193
193
  @parent_guid = parent_guid
194
194
  @parent_index = parent_index
@@ -222,7 +222,6 @@ module PlexRubySDK
222
222
  return false unless @guid == other.guid
223
223
  return false unless @index == other.index
224
224
  return false unless @key == other.key
225
- return false unless @originally_available_at == other.originally_available_at
226
225
  return false unless @rating == other.rating
227
226
  return false unless @rating_key == other.rating_key
228
227
  return false unless @season_count == other.season_count
@@ -257,6 +256,7 @@ module PlexRubySDK
257
256
  return false unless @last_viewed_at == other.last_viewed_at
258
257
  return false unless @leaf_count == other.leaf_count
259
258
  return false unless @media == other.media
259
+ return false unless @originally_available_at == other.originally_available_at
260
260
  return false unless @original_title == other.original_title
261
261
  return false unless @parent_guid == other.parent_guid
262
262
  return false unless @parent_index == other.parent_index
@@ -8,16 +8,11 @@ module PlexRubySDK
8
8
  module Models
9
9
  module Operations
10
10
 
11
- # StreamType - Stream type:
12
- # - 1 = video
13
- # - 2 = audio
14
- # - 3 = subtitle
15
- #
16
- class StreamType < T::Enum
11
+
12
+ class GetLibrarySectionsAllOptimizedForStreamingLibrary1 < T::Enum
17
13
  enums do
18
- VIDEO = new(1)
19
- AUDIO = new(2)
20
- SUBTITLE = new(3)
14
+ ZERO = new(0)
15
+ ONE = new(1)
21
16
  end
22
17
  end
23
18
  end
@@ -38,7 +38,7 @@ module PlexRubySDK
38
38
 
39
39
  field :indexes, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('indexes') } }
40
40
  # Has this media been optimized for streaming. NOTE: This can be 0, 1, false or true
41
- field :optimized_for_streaming, T.nilable(T.any(Models::Operations::GetLibrarySectionsAllOptimizedForStreaming1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
41
+ field :optimized_for_streaming, T.nilable(T.any(Models::Operations::GetLibrarySectionsAllOptimizedForStreamingLibrary1, T::Boolean)), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('optimizedForStreaming') } }
42
42
 
43
43
  field :packet_length, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('packetLength') } }
44
44
  # An array of streams for this part.
@@ -47,7 +47,7 @@ module PlexRubySDK
47
47
  field :video_profile, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('videoProfile') } }
48
48
 
49
49
 
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::GetLibrarySectionsAllHasThumbnail), indexes: T.nilable(::String), optimized_for_streaming: T.nilable(T.any(Models::Operations::GetLibrarySectionsAllOptimizedForStreaming1, T::Boolean)), packet_length: T.nilable(::Integer), stream: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllStream]), video_profile: T.nilable(::String)).void }
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::GetLibrarySectionsAllHasThumbnail), indexes: T.nilable(::String), optimized_for_streaming: T.nilable(T.any(Models::Operations::GetLibrarySectionsAllOptimizedForStreamingLibrary1, T::Boolean)), packet_length: T.nilable(::Integer), stream: T.nilable(T::Array[Models::Operations::GetLibrarySectionsAllStream]), video_profile: T.nilable(::String)).void }
51
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
52
  @file = file
53
53
  @id = id
@@ -22,11 +22,11 @@ module PlexRubySDK
22
22
  # Unique stream identifier.
23
23
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
24
24
  # Stream type:
25
- # - 1 = video
26
- # - 2 = audio
27
- # - 3 = subtitle
25
+ # - VIDEO = 1
26
+ # - AUDIO = 2
27
+ # - SUBTITLE = 3
28
28
  #
29
- field :stream_type, Models::Operations::GetLibrarySectionsAllStreamType, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType'), 'decoder': Utils.enum_from_string(Models::Operations::GetLibrarySectionsAllStreamType, false) } }
29
+ field :stream_type, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('streamType') } }
30
30
  # Audio channel layout.
31
31
  field :audio_channel_layout, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('audioChannelLayout') } }
32
32
  # Bit depth of the video stream.
@@ -121,7 +121,7 @@ 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::GetLibrarySectionsAllStreamType, 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 }
124
+ sig { params(codec: ::String, display_title: ::String, extended_display_title: ::String, 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), 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
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
126
  @codec = codec
127
127
  @display_title = display_title
@@ -0,0 +1,37 @@
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
+ # Attributes associated with the marker.
12
+ class GetMediaMetaDataAttributes
13
+ extend T::Sig
14
+ include Crystalline::MetadataFields
15
+
16
+ # The identifier for the attributes.
17
+ field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
18
+ # The version number of the marker attributes.
19
+ field :version, T.nilable(::Integer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('version') } }
20
+
21
+
22
+ sig { params(id: ::Integer, version: T.nilable(::Integer)).void }
23
+ def initialize(id: nil, version: nil)
24
+ @id = id
25
+ @version = version
26
+ end
27
+
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @id == other.id
31
+ return false unless @version == other.version
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end