plex_ruby_sdk 0.7.7 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/plex_ruby_sdk/activities.rb +115 -12
  3. data/lib/plex_ruby_sdk/authentication.rb +233 -29
  4. data/lib/plex_ruby_sdk/butler.rb +283 -30
  5. data/lib/plex_ruby_sdk/hubs.rb +174 -21
  6. data/lib/plex_ruby_sdk/library.rb +1307 -110
  7. data/lib/plex_ruby_sdk/log.rb +179 -24
  8. data/lib/plex_ruby_sdk/media.rb +288 -35
  9. data/lib/plex_ruby_sdk/models/operations/get_media_arts_mediacontainer.rb +36 -0
  10. data/lib/plex_ruby_sdk/models/operations/get_media_arts_metadata.rb +36 -0
  11. data/lib/plex_ruby_sdk/models/operations/get_media_arts_request.rb +24 -0
  12. data/lib/plex_ruby_sdk/models/operations/get_media_arts_response.rb +33 -0
  13. data/lib/plex_ruby_sdk/models/operations/get_media_arts_responsebody.rb +24 -0
  14. data/lib/plex_ruby_sdk/models/operations/get_media_posters_mediacontainer.rb +36 -0
  15. data/lib/plex_ruby_sdk/models/operations/get_media_posters_metadata.rb +36 -0
  16. data/lib/plex_ruby_sdk/models/operations/get_media_posters_request.rb +24 -0
  17. data/lib/plex_ruby_sdk/models/operations/get_media_posters_response.rb +33 -0
  18. data/lib/plex_ruby_sdk/models/operations/get_media_posters_responsebody.rb +24 -0
  19. data/lib/plex_ruby_sdk/models/operations/post_media_arts_request.rb +30 -0
  20. data/lib/plex_ruby_sdk/models/operations/post_media_arts_response.rb +30 -0
  21. data/lib/plex_ruby_sdk/models/operations/post_media_poster_request.rb +30 -0
  22. data/lib/plex_ruby_sdk/models/operations/post_media_poster_response.rb +30 -0
  23. data/lib/plex_ruby_sdk/models/operations.rb +14 -0
  24. data/lib/plex_ruby_sdk/playlists.rb +513 -60
  25. data/lib/plex_ruby_sdk/plex.rb +388 -38
  26. data/lib/plex_ruby_sdk/plex_api.rb +29 -10
  27. data/lib/plex_ruby_sdk/sdk_hooks/hooks.rb +103 -0
  28. data/lib/plex_ruby_sdk/sdk_hooks/registration.rb +35 -0
  29. data/lib/plex_ruby_sdk/sdk_hooks/types.rb +152 -0
  30. data/lib/plex_ruby_sdk/sdkconfiguration.rb +26 -7
  31. data/lib/plex_ruby_sdk/search.rb +174 -21
  32. data/lib/plex_ruby_sdk/server.rb +505 -53
  33. data/lib/plex_ruby_sdk/sessions.rb +228 -25
  34. data/lib/plex_ruby_sdk/statistics.rb +174 -21
  35. data/lib/plex_ruby_sdk/updater.rb +173 -20
  36. data/lib/plex_ruby_sdk/users.rb +56 -4
  37. data/lib/plex_ruby_sdk/utils/retries.rb +95 -0
  38. data/lib/plex_ruby_sdk/utils/utils.rb +10 -0
  39. data/lib/plex_ruby_sdk/video.rb +117 -14
  40. data/lib/plex_ruby_sdk/watchlist.rb +60 -7
  41. metadata +50 -4
@@ -0,0 +1,36 @@
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 Operations
9
+
10
+
11
+ class GetMediaArtsMetadata < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # The URL of the artwork.
15
+ field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
16
+ # The URL of the artwork.
17
+ field :rating_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('ratingKey') } }
18
+ # Whether this is the selected artwork.
19
+ field :selected, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('selected') } }
20
+ # The URL of the artwork thumbnail.
21
+ field :thumb, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
22
+ # The provider of the artwork.
23
+ field :provider, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('provider') } }
24
+
25
+
26
+ sig { params(key: ::String, rating_key: ::String, selected: T::Boolean, thumb: ::String, provider: T.nilable(::String)).void }
27
+ def initialize(key: nil, rating_key: nil, selected: nil, thumb: nil, provider: nil)
28
+ @key = key
29
+ @rating_key = rating_key
30
+ @selected = selected
31
+ @thumb = thumb
32
+ @provider = provider
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,24 @@
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 Operations
9
+
10
+
11
+ class GetMediaArtsRequest < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # the id of the library item to return the artwork of.
15
+ field :rating_key, ::Integer, { 'path_param': { 'field_name': 'ratingKey', 'style': 'simple', 'explode': false } }
16
+
17
+
18
+ sig { params(rating_key: ::Integer).void }
19
+ def initialize(rating_key: nil)
20
+ @rating_key = rating_key
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module PlexRubySDK
8
+ module Operations
9
+
10
+
11
+ class GetMediaArtsResponse < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # HTTP response content type for this operation
15
+ field :content_type, ::String
16
+ # Raw HTTP response; suitable for custom response parsing
17
+ field :raw_response, ::Faraday::Response
18
+ # HTTP response status code for this operation
19
+ field :status_code, ::Integer
20
+ # The available background artwork for the library item.
21
+ field :object, T.nilable(::PlexRubySDK::Operations::GetMediaArtsResponseBody)
22
+
23
+
24
+ sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, object: T.nilable(::PlexRubySDK::Operations::GetMediaArtsResponseBody)).void }
25
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
26
+ @content_type = content_type
27
+ @raw_response = raw_response
28
+ @status_code = status_code
29
+ @object = object
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,24 @@
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 Operations
9
+
10
+ # The available background artwork for the library item.
11
+ class GetMediaArtsResponseBody < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+
15
+ field :media_container, T.nilable(::PlexRubySDK::Operations::GetMediaArtsMediaContainer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('MediaContainer') } }
16
+
17
+
18
+ sig { params(media_container: T.nilable(::PlexRubySDK::Operations::GetMediaArtsMediaContainer)).void }
19
+ def initialize(media_container: nil)
20
+ @media_container = media_container
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,36 @@
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 Operations
9
+
10
+
11
+ class GetMediaPostersMediaContainer < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # An plugin identifier for the media container.
15
+ field :identifier, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('identifier') } }
16
+ # The prefix used for media tag resource paths.
17
+ field :media_tag_prefix, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaTagPrefix') } }
18
+ # The version number for media tags.
19
+ field :media_tag_version, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('mediaTagVersion') } }
20
+
21
+ field :metadata, T::Array[::PlexRubySDK::Operations::GetMediaPostersMetadata], { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('Metadata') } }
22
+ # Number of media items returned in this response.
23
+ field :size, ::Integer, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('size') } }
24
+
25
+
26
+ sig { params(identifier: ::String, media_tag_prefix: ::String, media_tag_version: ::Integer, metadata: T::Array[::PlexRubySDK::Operations::GetMediaPostersMetadata], size: ::Integer).void }
27
+ def initialize(identifier: nil, media_tag_prefix: nil, media_tag_version: nil, metadata: nil, size: nil)
28
+ @identifier = identifier
29
+ @media_tag_prefix = media_tag_prefix
30
+ @media_tag_version = media_tag_version
31
+ @metadata = metadata
32
+ @size = size
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,36 @@
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 Operations
9
+
10
+
11
+ class GetMediaPostersMetadata < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # The URL of the poster.
15
+ field :key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('key') } }
16
+ # The URL of the poster.
17
+ field :rating_key, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('ratingKey') } }
18
+ # Whether this is the selected poster.
19
+ field :selected, T::Boolean, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('selected') } }
20
+ # The URL of the poster thumbnail.
21
+ field :thumb, ::String, { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('thumb') } }
22
+ # The provider of the poster.
23
+ field :provider, T.nilable(::String), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('provider') } }
24
+
25
+
26
+ sig { params(key: ::String, rating_key: ::String, selected: T::Boolean, thumb: ::String, provider: T.nilable(::String)).void }
27
+ def initialize(key: nil, rating_key: nil, selected: nil, thumb: nil, provider: nil)
28
+ @key = key
29
+ @rating_key = rating_key
30
+ @selected = selected
31
+ @thumb = thumb
32
+ @provider = provider
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,24 @@
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 Operations
9
+
10
+
11
+ class GetMediaPostersRequest < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # the id of the library item to return the posters of.
15
+ field :rating_key, ::Integer, { 'path_param': { 'field_name': 'ratingKey', 'style': 'simple', 'explode': false } }
16
+
17
+
18
+ sig { params(rating_key: ::Integer).void }
19
+ def initialize(rating_key: nil)
20
+ @rating_key = rating_key
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module PlexRubySDK
8
+ module Operations
9
+
10
+
11
+ class GetMediaPostersResponse < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # HTTP response content type for this operation
15
+ field :content_type, ::String
16
+ # Raw HTTP response; suitable for custom response parsing
17
+ field :raw_response, ::Faraday::Response
18
+ # HTTP response status code for this operation
19
+ field :status_code, ::Integer
20
+ # The available posters for the library item.
21
+ field :object, T.nilable(::PlexRubySDK::Operations::GetMediaPostersResponseBody)
22
+
23
+
24
+ sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, object: T.nilable(::PlexRubySDK::Operations::GetMediaPostersResponseBody)).void }
25
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, object: nil)
26
+ @content_type = content_type
27
+ @raw_response = raw_response
28
+ @status_code = status_code
29
+ @object = object
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,24 @@
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 Operations
9
+
10
+ # The available posters for the library item.
11
+ class GetMediaPostersResponseBody < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+
15
+ field :media_container, T.nilable(::PlexRubySDK::Operations::GetMediaPostersMediaContainer), { 'format_json': { 'letter_case': ::PlexRubySDK::Utils.field_name('MediaContainer') } }
16
+
17
+
18
+ sig { params(media_container: T.nilable(::PlexRubySDK::Operations::GetMediaPostersMediaContainer)).void }
19
+ def initialize(media_container: nil)
20
+ @media_container = media_container
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,30 @@
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 Operations
9
+
10
+
11
+ class PostMediaArtsRequest < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # the id of the library item to return the posters of.
15
+ field :rating_key, ::Integer, { 'path_param': { 'field_name': 'ratingKey', 'style': 'simple', 'explode': false } }
16
+ # The contents of the image, if uploading a local file
17
+ field :request_body, T.nilable(::String), { 'request': { 'media_type': 'image/*' } }
18
+ # The URL of the image, if uploading a remote image
19
+ field :url, T.nilable(::String), { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
20
+
21
+
22
+ sig { params(rating_key: ::Integer, request_body: T.nilable(::String), url: T.nilable(::String)).void }
23
+ def initialize(rating_key: nil, request_body: nil, url: nil)
24
+ @rating_key = rating_key
25
+ @request_body = request_body
26
+ @url = url
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
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 Operations
9
+
10
+
11
+ class PostMediaArtsResponse < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # HTTP response content type for this operation
15
+ field :content_type, ::String
16
+ # Raw HTTP response; suitable for custom response parsing
17
+ field :raw_response, ::Faraday::Response
18
+ # HTTP response status code for this operation
19
+ field :status_code, ::Integer
20
+
21
+
22
+ sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer).void }
23
+ def initialize(content_type: nil, raw_response: nil, status_code: nil)
24
+ @content_type = content_type
25
+ @raw_response = raw_response
26
+ @status_code = status_code
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
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 Operations
9
+
10
+
11
+ class PostMediaPosterRequest < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # the id of the library item to return the posters of.
15
+ field :rating_key, ::Integer, { 'path_param': { 'field_name': 'ratingKey', 'style': 'simple', 'explode': false } }
16
+ # The contents of the image, if uploading a local file
17
+ field :request_body, T.nilable(::String), { 'request': { 'media_type': 'image/*' } }
18
+ # The URL of the image, if uploading a remote image
19
+ field :url, T.nilable(::String), { 'query_param': { 'field_name': 'url', 'style': 'form', 'explode': true } }
20
+
21
+
22
+ sig { params(rating_key: ::Integer, request_body: T.nilable(::String), url: T.nilable(::String)).void }
23
+ def initialize(rating_key: nil, request_body: nil, url: nil)
24
+ @rating_key = rating_key
25
+ @request_body = request_body
26
+ @url = url
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
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 Operations
9
+
10
+
11
+ class PostMediaPosterResponse < ::Crystalline::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # HTTP response content type for this operation
15
+ field :content_type, ::String
16
+ # Raw HTTP response; suitable for custom response parsing
17
+ field :raw_response, ::Faraday::Response
18
+ # HTTP response status code for this operation
19
+ field :status_code, ::Integer
20
+
21
+
22
+ sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer).void }
23
+ def initialize(content_type: nil, raw_response: nil, status_code: nil)
24
+ @content_type = content_type
25
+ @raw_response = raw_response
26
+ @status_code = status_code
27
+ end
28
+ end
29
+ end
30
+ end
@@ -574,6 +574,20 @@ module PlexRubySDK
574
574
  autoload :GetMediaMetaDataMediaContainer, 'plex_ruby_sdk/models/operations/get_media_meta_data_mediacontainer.rb'
575
575
  autoload :GetMediaMetaDataResponseBody, 'plex_ruby_sdk/models/operations/get_media_meta_data_responsebody.rb'
576
576
  autoload :GetMediaMetaDataResponse, 'plex_ruby_sdk/models/operations/get_media_meta_data_response.rb'
577
+ autoload :GetMediaArtsRequest, 'plex_ruby_sdk/models/operations/get_media_arts_request.rb'
578
+ autoload :GetMediaArtsMetadata, 'plex_ruby_sdk/models/operations/get_media_arts_metadata.rb'
579
+ autoload :GetMediaArtsMediaContainer, 'plex_ruby_sdk/models/operations/get_media_arts_mediacontainer.rb'
580
+ autoload :GetMediaArtsResponseBody, 'plex_ruby_sdk/models/operations/get_media_arts_responsebody.rb'
581
+ autoload :GetMediaArtsResponse, 'plex_ruby_sdk/models/operations/get_media_arts_response.rb'
582
+ autoload :PostMediaArtsRequest, 'plex_ruby_sdk/models/operations/post_media_arts_request.rb'
583
+ autoload :PostMediaArtsResponse, 'plex_ruby_sdk/models/operations/post_media_arts_response.rb'
584
+ autoload :GetMediaPostersRequest, 'plex_ruby_sdk/models/operations/get_media_posters_request.rb'
585
+ autoload :GetMediaPostersMetadata, 'plex_ruby_sdk/models/operations/get_media_posters_metadata.rb'
586
+ autoload :GetMediaPostersMediaContainer, 'plex_ruby_sdk/models/operations/get_media_posters_mediacontainer.rb'
587
+ autoload :GetMediaPostersResponseBody, 'plex_ruby_sdk/models/operations/get_media_posters_responsebody.rb'
588
+ autoload :GetMediaPostersResponse, 'plex_ruby_sdk/models/operations/get_media_posters_response.rb'
589
+ autoload :PostMediaPosterRequest, 'plex_ruby_sdk/models/operations/post_media_poster_request.rb'
590
+ autoload :PostMediaPosterResponse, 'plex_ruby_sdk/models/operations/post_media_poster_response.rb'
577
591
  autoload :GetMetadataChildrenRequest, 'plex_ruby_sdk/models/operations/getmetadatachildren_request.rb'
578
592
  autoload :GetMetadataChildrenLibraryErrors, 'plex_ruby_sdk/models/operations/getmetadatachildren_library_errors.rb'
579
593
  autoload :GetMetadataChildrenUnauthorized, 'plex_ruby_sdk/models/operations/getmetadatachildren_unauthorized.rb'