plex_ruby_sdk 0.13.1 → 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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/lib/plex_ruby_sdk/library.rb +13 -12
  3. data/lib/plex_ruby_sdk/models/errors/{get_all_media_library_badrequest.rb → get_library_sections_all_badrequest.rb} +3 -3
  4. data/lib/plex_ruby_sdk/models/errors/{get_all_media_library_errors.rb → get_library_sections_all_errors.rb} +1 -1
  5. data/lib/plex_ruby_sdk/models/errors/{get_all_media_library_library_errors.rb → get_library_sections_all_library_errors.rb} +1 -1
  6. data/lib/plex_ruby_sdk/models/errors/{get_all_media_library_unauthorized.rb → get_library_sections_all_unauthorized.rb} +3 -3
  7. data/lib/plex_ruby_sdk/models/errors.rb +4 -4
  8. data/lib/plex_ruby_sdk/models/operations/country.rb +8 -6
  9. data/lib/plex_ruby_sdk/models/operations/director.rb +18 -2
  10. data/lib/plex_ruby_sdk/models/operations/flattenseasons.rb +1 -0
  11. data/lib/plex_ruby_sdk/models/operations/genre.rb +3 -1
  12. data/lib/plex_ruby_sdk/models/operations/get_actors_library_mediacontainer.rb +6 -6
  13. data/lib/plex_ruby_sdk/models/operations/get_actors_library_queryparam_type.rb +5 -3
  14. data/lib/plex_ruby_sdk/models/operations/get_all_libraries_type.rb +4 -0
  15. data/lib/plex_ruby_sdk/models/operations/get_countries_library_queryparam_type.rb +5 -3
  16. data/lib/plex_ruby_sdk/models/operations/get_genres_library_queryparam_type.rb +5 -3
  17. data/lib/plex_ruby_sdk/models/operations/get_library_items_collection.rb +3 -3
  18. data/lib/plex_ruby_sdk/models/operations/get_library_items_country.rb +10 -4
  19. data/lib/plex_ruby_sdk/models/operations/get_library_items_director.rb +12 -4
  20. data/lib/plex_ruby_sdk/models/operations/get_library_items_filter.rb +2 -6
  21. data/lib/plex_ruby_sdk/models/operations/get_library_items_genre.rb +13 -6
  22. data/lib/plex_ruby_sdk/models/operations/{mediaguid.rb → get_library_items_guids.rb} +2 -3
  23. data/lib/plex_ruby_sdk/models/operations/get_library_items_hasthumbnail.rb +2 -1
  24. data/lib/plex_ruby_sdk/models/operations/get_library_items_image.rb +2 -2
  25. data/lib/plex_ruby_sdk/models/operations/{get_search_all_libraries_collection.rb → get_library_items_library_optimizedforstreaming.rb} +5 -9
  26. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_response_type.rb +6 -41
  27. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_type.rb +42 -10
  28. data/lib/plex_ruby_sdk/models/operations/get_library_items_location.rb +3 -3
  29. data/lib/plex_ruby_sdk/models/operations/get_library_items_media.rb +32 -25
  30. data/lib/plex_ruby_sdk/models/operations/get_library_items_mediacontainer.rb +39 -48
  31. data/lib/plex_ruby_sdk/models/operations/get_library_items_meta.rb +3 -3
  32. data/lib/plex_ruby_sdk/models/operations/get_library_items_metadata.rb +146 -141
  33. data/lib/plex_ruby_sdk/models/operations/get_library_items_optimizedforstreaming.rb +12 -4
  34. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_optimizedforstreaming_1.rb → get_library_items_optimizedforstreaming_1.rb} +1 -1
  35. data/lib/plex_ruby_sdk/models/operations/get_library_items_part.rb +36 -28
  36. data/lib/plex_ruby_sdk/models/operations/get_library_items_producer.rb +53 -0
  37. data/lib/plex_ruby_sdk/models/operations/get_library_items_queryparam_type.rb +5 -3
  38. data/lib/plex_ruby_sdk/models/operations/get_library_items_role.rb +12 -18
  39. data/lib/plex_ruby_sdk/models/operations/get_library_items_similar.rb +41 -0
  40. data/lib/plex_ruby_sdk/models/operations/get_library_items_type.rb +14 -46
  41. data/lib/plex_ruby_sdk/models/operations/get_library_items_writer.rb +12 -4
  42. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_activedirection.rb → get_library_sections_all_activedirection.rb} +2 -2
  43. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_collection.rb → get_library_sections_all_collection.rb} +1 -1
  44. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_country.rb → get_library_sections_all_country.rb} +1 -1
  45. data/lib/plex_ruby_sdk/models/operations/{get_library_items_library_activedirection.rb → get_library_sections_all_defaultdirection.rb} +2 -2
  46. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_director.rb → get_library_sections_all_director.rb} +1 -1
  47. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_field.rb → get_library_sections_all_field.rb} +1 -1
  48. data/lib/plex_ruby_sdk/models/operations/{get_library_items_library_fieldtype.rb → get_library_sections_all_fieldtype.rb} +3 -3
  49. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_filter.rb → get_library_sections_all_filter.rb} +1 -1
  50. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_genre.rb → get_library_sections_all_genre.rb} +1 -1
  51. data/lib/plex_ruby_sdk/models/operations/{get_search_all_libraries_mediaguid.rb → get_library_sections_all_guids.rb} +2 -3
  52. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_hasthumbnail.rb → get_library_sections_all_hasthumbnail.rb} +2 -2
  53. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_image.rb → get_library_sections_all_image.rb} +3 -3
  54. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_library_optimizedforstreaming.rb → get_library_sections_all_library_optimizedforstreaming.rb} +1 -1
  55. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_library_response_type.rb → get_library_sections_all_library_response_type.rb} +1 -1
  56. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_library_type.rb → get_library_sections_all_library_type.rb} +6 -2
  57. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_media.rb → get_library_sections_all_media.rb} +4 -4
  58. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_mediacontainer.rb → get_library_sections_all_mediacontainer.rb} +13 -13
  59. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_meta.rb → get_library_sections_all_meta.rb} +4 -4
  60. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_metadata.rb → get_library_sections_all_metadata.rb} +18 -18
  61. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_operator.rb → get_library_sections_all_operator.rb} +1 -1
  62. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_optimizedforstreaming.rb → get_library_sections_all_optimizedforstreaming.rb} +1 -1
  63. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_optimizedforstreaming_1.rb +20 -0
  64. data/lib/plex_ruby_sdk/models/operations/get_library_sections_all_optimizedforstreaming_library_1.rb +20 -0
  65. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_part.rb → get_library_sections_all_part.rb} +5 -5
  66. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_queryparam_includemeta.rb → get_library_sections_all_queryparam_includemeta.rb} +2 -2
  67. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_queryparam_type.rb → get_library_sections_all_queryparam_type.rb} +7 -5
  68. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_request.rb → get_library_sections_all_request.rb} +4 -4
  69. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_response.rb → get_library_sections_all_response.rb} +3 -3
  70. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_responsebody.rb → get_library_sections_all_responsebody.rb} +3 -3
  71. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_role.rb → get_library_sections_all_role.rb} +1 -1
  72. data/lib/plex_ruby_sdk/models/operations/{get_library_items_library_sort.rb → get_library_sections_all_sort.rb} +4 -4
  73. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_stream.rb → get_library_sections_all_stream.rb} +6 -6
  74. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_type.rb → get_library_sections_all_type.rb} +5 -5
  75. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_ultrablurcolors.rb → get_library_sections_all_ultrablurcolors.rb} +1 -1
  76. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_writer.rb → get_library_sections_all_writer.rb} +1 -1
  77. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_attributes.rb +37 -0
  78. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_chapter.rb +53 -0
  79. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_country.rb +8 -6
  80. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_director.rb +4 -4
  81. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_extras.rb +33 -0
  82. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_genre.rb +3 -1
  83. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_guids.rb +2 -1
  84. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_hasthumbnail.rb +1 -0
  85. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_library_optimizedforstreaming.rb +1 -0
  86. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_marker.rb +53 -0
  87. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_media.rb +5 -3
  88. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_mediacontainer.rb +10 -10
  89. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_metadata.rb +22 -22
  90. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_part.rb +16 -15
  91. data/lib/plex_ruby_sdk/models/operations/{metadatarating.rb → get_media_meta_data_ratings.rb} +3 -3
  92. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_request.rb +3 -3
  93. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_role.rb +12 -8
  94. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_stream.rb +18 -18
  95. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_type.rb +5 -1
  96. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_writer.rb +2 -2
  97. data/lib/plex_ruby_sdk/models/operations/get_recently_added_hubs_type.rb +5 -1
  98. data/lib/plex_ruby_sdk/models/operations/get_recently_added_metadata.rb +18 -18
  99. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_country.rb +10 -4
  100. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_director.rb +12 -4
  101. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_directory.rb +81 -0
  102. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_flattenseasons.rb +1 -0
  103. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_genre.rb +13 -6
  104. data/lib/plex_ruby_sdk/models/operations/{get_all_media_library_guids.rb → get_search_all_libraries_guids.rb} +4 -4
  105. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_hasthumbnail.rb +2 -1
  106. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_library_optimizedforstreaming.rb +29 -0
  107. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_location.rb +3 -3
  108. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_media.rb +32 -25
  109. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_mediacontainer.rb +32 -4
  110. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_metadata.rb +128 -147
  111. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_optimizedforstreaming.rb +12 -4
  112. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_optimizedforstreaming_1.rb +20 -0
  113. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_optimizedforstreaming_library_1.rb +20 -0
  114. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_part.rb +36 -28
  115. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_role.rb +12 -18
  116. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_showordering.rb +6 -5
  117. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_type.rb +5 -1
  118. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_writer.rb +12 -4
  119. data/lib/plex_ruby_sdk/models/operations/get_search_library_queryparam_type.rb +5 -3
  120. data/lib/plex_ruby_sdk/models/operations/getplaylistcontents_queryparam_type.rb +5 -3
  121. data/lib/plex_ruby_sdk/models/operations/gettopwatchedcontent_mediacontainer.rb +14 -14
  122. data/lib/plex_ruby_sdk/models/operations/{streamtype.rb → gettopwatchedcontent_queryparam_includeguids.rb} +4 -8
  123. data/lib/plex_ruby_sdk/models/operations/gettopwatchedcontent_queryparam_type.rb +5 -3
  124. data/lib/plex_ruby_sdk/models/operations/gettopwatchedcontent_request.rb +3 -3
  125. data/lib/plex_ruby_sdk/models/operations/guids.rb +3 -3
  126. data/lib/plex_ruby_sdk/models/operations/producer.rb +5 -4
  127. data/lib/plex_ruby_sdk/models/operations/queryparam_type.rb +5 -3
  128. data/lib/plex_ruby_sdk/models/operations/rating.rb +1 -1
  129. data/lib/plex_ruby_sdk/models/operations/role.rb +12 -8
  130. data/lib/plex_ruby_sdk/models/operations/searchresult.rb +10 -6
  131. data/lib/plex_ruby_sdk/models/operations/showordering.rb +6 -5
  132. data/lib/plex_ruby_sdk/models/operations/stream.rb +5 -5
  133. data/lib/plex_ruby_sdk/models/operations/type.rb +5 -3
  134. data/lib/plex_ruby_sdk/models/operations/writer.rb +7 -3
  135. data/lib/plex_ruby_sdk/models/operations.rb +54 -59
  136. data/lib/plex_ruby_sdk/sdkconfiguration.rb +3 -3
  137. metadata +57 -62
  138. data/lib/plex_ruby_sdk/models/operations/enablecreditsmarkergeneration.rb +0 -20
  139. data/lib/plex_ruby_sdk/models/operations/episodesort.rb +0 -21
  140. data/lib/plex_ruby_sdk/models/operations/get_all_media_library_defaultdirection.rb +0 -21
  141. data/lib/plex_ruby_sdk/models/operations/get_all_media_library_fieldtype.rb +0 -37
  142. data/lib/plex_ruby_sdk/models/operations/get_all_media_library_sort.rb +0 -63
  143. data/lib/plex_ruby_sdk/models/operations/get_all_media_library_streamtype.rb +0 -25
  144. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_defaultdirection.rb +0 -21
  145. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_field.rb +0 -45
  146. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_filter.rb +0 -49
  147. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_operator.rb +0 -37
  148. data/lib/plex_ruby_sdk/models/operations/get_library_items_library_response_200_type.rb +0 -22
  149. data/lib/plex_ruby_sdk/models/operations/get_library_items_stream.rb +0 -181
  150. data/lib/plex_ruby_sdk/models/operations/get_media_meta_data_streamtype.rb +0 -25
  151. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_enablecreditsmarkergeneration.rb +0 -20
  152. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_episodesort.rb +0 -21
  153. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_metadatarating.rb +0 -41
  154. data/lib/plex_ruby_sdk/models/operations/get_search_all_libraries_stream.rb +0 -181
@@ -9,7 +9,7 @@ module PlexRubySDK
9
9
  module Operations
10
10
 
11
11
 
12
- class GetAllMediaLibraryWriter
12
+ class GetLibrarySectionsAllWriter
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
@@ -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
@@ -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
@@ -14,25 +14,27 @@ module PlexRubySDK
14
14
  include Crystalline::MetadataFields
15
15
 
16
16
 
17
+ field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
18
+ # The unique identifier for the country.
19
+ # NOTE: This is different for each Plex server and is not globally unique.
20
+ #
17
21
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
18
22
  # The country of origin of this media item
19
23
  field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
20
24
 
21
- field :filter, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
22
25
 
23
-
24
- sig { params(id: ::Integer, tag: ::String, filter: T.nilable(::String)).void }
25
- def initialize(id: nil, tag: nil, filter: nil)
26
+ sig { params(filter: ::String, id: ::Integer, tag: ::String).void }
27
+ def initialize(filter: nil, id: nil, tag: nil)
28
+ @filter = filter
26
29
  @id = id
27
30
  @tag = tag
28
- @filter = filter
29
31
  end
30
32
 
31
33
  def ==(other)
32
34
  return false unless other.is_a? self.class
35
+ return false unless @filter == other.filter
33
36
  return false unless @id == other.id
34
37
  return false unless @tag == other.tag
35
- return false unless @filter == other.filter
36
38
  true
37
39
  end
38
40
  end
@@ -19,13 +19,13 @@ module PlexRubySDK
19
19
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
20
  # The role of Director
21
21
  field :tag, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tag') } }
22
- # A unique key associated with the director's tag, used for internal identification.
23
- field :tag_key, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } }
24
- # The URL of the thumbnail image for the director.
22
+ # A unique 24-character hexadecimal key associated with the director's tag, used for internal identification.
23
+ field :tag_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('tagKey') } }
24
+ # The absolute URL of the thumbnail image for the director.
25
25
  field :thumb, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
26
26
 
27
27
 
28
- sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: T.nilable(::String), thumb: T.nilable(::String)).void }
28
+ sig { params(filter: ::String, id: ::Integer, tag: ::String, tag_key: ::String, thumb: T.nilable(::String)).void }
29
29
  def initialize(filter: nil, id: nil, tag: nil, tag_key: nil, thumb: nil)
30
30
  @filter = filter
31
31
  @id = id
@@ -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
@@ -15,7 +15,9 @@ module PlexRubySDK
15
15
 
16
16
 
17
17
  field :filter, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('filter') } }
18
-
18
+ # The unique identifier for the genre.
19
+ # NOTE: This is different for each Plex server and is not globally unique.
20
+ #
19
21
  field :id, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
20
22
  # The genre name of this media-item
21
23
  #
@@ -13,7 +13,8 @@ module PlexRubySDK
13
13
  extend T::Sig
14
14
  include Crystalline::MetadataFields
15
15
 
16
- # The GUID value.
16
+ # The unique identifier for the Guid. Can be prefixed with imdb://, tmdb://, tvdb://
17
+ #
17
18
  field :id, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('id') } }
18
19
 
19
20
 
@@ -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