Compare commits

..

3 Commits

Author SHA1 Message Date
speakeasybot
0077561a6a ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.535.1 2025-04-19 00:29:11 +00:00
speakeasybot
4b28ca3416 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.531.4 2025-04-14 00:32:09 +00:00
speakeasybot
dd781d1e27 ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.529.1 2025-04-06 00:31:55 +00:00
93 changed files with 9443 additions and 1543 deletions

3
.gitattributes vendored
View File

@@ -8,5 +8,4 @@
*.bat text eol=crlf
# This allows generated code to be indexed correctly
*.java linguist-generated=false
*.java linguist-generated=false

File diff suppressed because one or more lines are too long

View File

@@ -15,7 +15,7 @@ generation:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false
java:
version: 0.14.1
version: 0.16.0
additionalDependencies: []
additionalPlugins: []
artifactID: plexapi

View File

@@ -1,4 +1,4 @@
speakeasyVersion: 1.528.1
speakeasyVersion: 1.535.1
sources:
my-source:
sourceNamespace: my-source
@@ -8,19 +8,19 @@ sources:
- latest
plexapi:
sourceNamespace: plexapi
sourceRevisionDigest: sha256:b5580df6ec4a386e12249ff13f35b916fe5559e101de4a816b53e47d6947f1a5
sourceBlobDigest: sha256:6108b6c35fbe7e9163ffe0c804170f5e3a6edb63b8e745454ea8ee249bd790c3
sourceRevisionDigest: sha256:b2f9599237ceb13cf8f9c1693e38b290177b65fb389cebf0c3c60b8ef4778615
sourceBlobDigest: sha256:f8df9ef88ada992cd981d601e6c0b45cc82db76aba3d915c2f9d08f90c81ced9
tags:
- latest
- speakeasy-sdk-regen-1743640078
- speakeasy-sdk-regen-1745022464
targets:
plexjava:
source: plexapi
sourceNamespace: plexapi
sourceRevisionDigest: sha256:b5580df6ec4a386e12249ff13f35b916fe5559e101de4a816b53e47d6947f1a5
sourceBlobDigest: sha256:6108b6c35fbe7e9163ffe0c804170f5e3a6edb63b8e745454ea8ee249bd790c3
sourceRevisionDigest: sha256:b2f9599237ceb13cf8f9c1693e38b290177b65fb389cebf0c3c60b8ef4778615
sourceBlobDigest: sha256:f8df9ef88ada992cd981d601e6c0b45cc82db76aba3d915c2f9d08f90c81ced9
codeSamplesNamespace: code-samples-java-plexjava
codeSamplesRevisionDigest: sha256:5ac1b6e0506bbf85ab353ce21dbf6646b6590efa4ba68ab778ba9836b378e0f6
codeSamplesRevisionDigest: sha256:7d8c3b846b1e7bfd87558d16b7a6daceae1f8e2a3628296155e438ed1cd72721
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest

View File

@@ -69,7 +69,7 @@ The samples below show how a published SDK artifact is used:
Gradle:
```groovy
implementation 'dev.plexapi:plexapi:0.14.1'
implementation 'dev.plexapi:plexapi:0.16.0'
```
Maven:
@@ -77,7 +77,7 @@ Maven:
<dependency>
<groupId>dev.plexapi</groupId>
<artifactId>plexapi</artifactId>
<version>0.14.1</version>
<version>0.16.0</version>
</dependency>
```
@@ -94,6 +94,29 @@ On Windows:
```bash
gradlew.bat publishToMavenLocal -Pskip.signing
```
### Logging
A logging framework/facade has not yet been adopted but is under consideration.
For request and response logging (especially json bodies) use:
```java
SpeakeasyHTTPClient.setDebugLogging(true); // experimental API only (may change without warning)
```
Example output:
```
Sending request: http://localhost:35123/bearer#global GET
Request headers: {Accept=[application/json], Authorization=[******], Client-Level-Header=[added by client], Idempotency-Key=[some-key], x-speakeasy-user-agent=[speakeasy-sdk/java 0.0.1 internal 0.1.0 org.openapis.openapi]}
Received response: (GET http://localhost:35123/bearer#global) 200
Response headers: {access-control-allow-credentials=[true], access-control-allow-origin=[*], connection=[keep-alive], content-length=[50], content-type=[application/json], date=[Wed, 09 Apr 2025 01:43:29 GMT], server=[gunicorn/19.9.0]}
Response body:
{
"authenticated": true,
"token": "global"
}
```
WARNING: This should only used for temporary debugging purposes. Leaving this option on in a production system could expose credentials/secrets in logs. <i>Authorization</i> headers are redacted by default and there is the ability to specify redacted header names via `SpeakeasyHTTPClient.setRedactedHeaders`.
Another option is to set the System property `-Djdk.httpclient.HttpClient.log=all`. However, this second option does not log bodies.
<!-- End SDK Installation [installation] -->
<!-- Start SDK Example Usage [usage] -->

View File

@@ -298,4 +298,34 @@ Based on:
### Generated
- [java v0.14.1] .
### Releases
- [Maven Central v0.14.1] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.14.1 - .
- [Maven Central v0.14.1] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.14.1 - .
## 2025-04-06 00:30:19
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.529.1 (2.566.5) https://github.com/speakeasy-api/speakeasy
### Generated
- [java v0.14.2] .
### Releases
- [Maven Central v0.14.2] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.14.2 - .
## 2025-04-14 00:30:37
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.531.4 (2.570.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [java v0.15.0] .
### Releases
- [Maven Central v0.15.0] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.15.0 - .
## 2025-04-19 00:27:27
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.535.1 (2.585.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [java v0.16.0] .
### Releases
- [Maven Central v0.16.0] https://central.sonatype.com/artifact/dev.plexapi/plexapi/0.16.0 - .

View File

@@ -103,7 +103,7 @@ publishing {
// https://github.com/gradle/gradle/issues/18619
groupId = "dev.plexapi"
artifactId = "plexapi"
version = "0.14.1"
version = "0.16.0"
from components.java

File diff suppressed because it is too large Load Diff

View File

@@ -3,26 +3,26 @@
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| `allowSync` | *boolean* | :heavy_check_mark: | N/A | true |
| `art` | *String* | :heavy_check_mark: | N/A | /:/resources/movie-fanart.jpg |
| `composite` | *String* | :heavy_check_mark: | N/A | /library/sections/1/composite/1705615584 |
| `filters` | *boolean* | :heavy_check_mark: | N/A | true |
| `refreshing` | *boolean* | :heavy_check_mark: | N/A | false |
| `thumb` | *String* | :heavy_check_mark: | N/A | /:/resources/movie.png |
| `key` | *String* | :heavy_check_mark: | N/A | 1 |
| `type` | *String* | :heavy_check_mark: | N/A | movie |
| `title` | *String* | :heavy_check_mark: | N/A | Movies |
| `agent` | *String* | :heavy_check_mark: | N/A | tv.plex.agents.movie |
| `scanner` | *String* | :heavy_check_mark: | N/A | Plex Movie |
| `language` | *String* | :heavy_check_mark: | N/A | en-US |
| `uuid` | *String* | :heavy_check_mark: | N/A | 322a231a-b7f7-49f5-920f-14c61199cd30 |
| `updatedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `createdAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `scannedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `content` | *boolean* | :heavy_check_mark: | N/A | true |
| `directory` | *boolean* | :heavy_check_mark: | N/A | true |
| `contentChangedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `hidden` | *int* | :heavy_check_mark: | N/A | 0 |
| `location` | List\<[GetAllLibrariesLocation](../../models/operations/GetAllLibrariesLocation.md)> | :heavy_check_mark: | N/A | |
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `allowSync` | *boolean* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `art` | *String* | :heavy_check_mark: | URL for the background artwork of the media container. | /:/resources/show-fanart.jpg |
| `composite` | *String* | :heavy_check_mark: | The relative path to the composite media item. | /library/sections/1/composite/1743824484 |
| `filters` | *boolean* | :heavy_check_mark: | UNKNOWN | true |
| `refreshing` | *boolean* | :heavy_check_mark: | Indicates whether the library is currently being refreshed or updated | true |
| `thumb` | *String* | :heavy_check_mark: | URL for the thumbnail image of the media container. | /:/resources/show.png |
| `key` | *String* | :heavy_check_mark: | The library key representing the unique identifier | 1 |
| `type` | [GetAllLibrariesType](../../models/operations/GetAllLibrariesType.md) | :heavy_check_mark: | N/A | movie |
| `title` | *String* | :heavy_check_mark: | The title of the library | Movies |
| `agent` | *String* | :heavy_check_mark: | The Plex agent used to match and retrieve media metadata. | tv.plex.agents.movie |
| `scanner` | *String* | :heavy_check_mark: | UNKNOWN | Plex Movie |
| `language` | *String* | :heavy_check_mark: | The Plex library language that has been set | en-US |
| `uuid` | *String* | :heavy_check_mark: | The universally unique identifier for the library. | e69655a2-ef48-4aba-bb19-01e7d3cc34d6 |
| `updatedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `createdAt` | *Optional\<Long>* | :heavy_minus_sign: | N/A | 1556281940 |
| `scannedAt` | *long* | :heavy_check_mark: | Unix epoch datetime in seconds | 1556281940 |
| `content` | *boolean* | :heavy_check_mark: | UNKNOWN | true |
| `directory` | *boolean* | :heavy_check_mark: | UNKNOWN | true |
| `contentChangedAt` | *long* | :heavy_check_mark: | Timestamp (in seconds) representing the last time the content was modified.<br/>NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64<br/> | 9173960 |
| `hidden` | [Optional\<Hidden>](../../models/operations/Hidden.md) | :heavy_minus_sign: | N/A | 1 |
| `location` | List\<[GetAllLibrariesLocation](../../models/operations/GetAllLibrariesLocation.md)> | :heavy_check_mark: | N/A | |

View File

@@ -3,7 +3,7 @@
## Fields
| Field | Type | Required | Description | Example |
| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| `id` | *int* | :heavy_check_mark: | N/A | 1 |
| `path` | *String* | :heavy_check_mark: | N/A | /movies |
| Field | Type | Required | Description | Example |
| --------------------------- | --------------------------- | --------------------------- | --------------------------- | --------------------------- |
| `id` | *int* | :heavy_check_mark: | The ID of the location. | 1 |
| `path` | *String* | :heavy_check_mark: | The path to the media item. | /Movies |

View File

@@ -5,7 +5,7 @@
| Field | Type | Required | Description | Example |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `size` | *int* | :heavy_check_mark: | N/A | 5 |
| `allowSync` | *boolean* | :heavy_check_mark: | N/A | false |
| `title1` | *String* | :heavy_check_mark: | N/A | Plex Library |
| `directory` | List\<[GetAllLibrariesDirectory](../../models/operations/GetAllLibrariesDirectory.md)> | :heavy_check_mark: | N/A | |
| `size` | *int* | :heavy_check_mark: | Number of media items returned in this response. | 50 |
| `allowSync` | *boolean* | :heavy_check_mark: | Indicates whether syncing is allowed. | false |
| `title1` | *String* | :heavy_check_mark: | The primary title of the media container. | TV Series |
| `directory` | List\<[GetAllLibrariesDirectory](../../models/operations/GetAllLibrariesDirectory.md)> | :heavy_minus_sign: | N/A | |

View File

@@ -5,6 +5,6 @@ The libraries available on the Server
## Fields
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `mediaContainer` | [GetAllLibrariesMediaContainer](../../models/operations/GetAllLibrariesMediaContainer.md) | :heavy_check_mark: | N/A |
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `mediaContainer` | [Optional\<GetAllLibrariesMediaContainer>](../../models/operations/GetAllLibrariesMediaContainer.md) | :heavy_minus_sign: | N/A |

View File

@@ -0,0 +1,15 @@
# GetAllLibrariesType
The library type
## Values
| Name | Value |
| --------- | --------- |
| `Movie` | movie |
| `TvShow` | show |
| `Season` | season |
| `Episode` | episode |
| `Artist` | artist |
| `Album` | album |

View File

@@ -3,7 +3,7 @@
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `includeDetails` | [Optional\<IncludeDetails>](../../models/operations/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
| `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `includeDetails` | [Optional\<IncludeDetails>](../../models/operations/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).<br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
| `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |

View File

@@ -0,0 +1,11 @@
# Hidden
UNKNOWN
## Values
| Name | Value |
| --------- | --------- |
| `Disable` | 0 |
| `Enable` | 1 |

View File

@@ -1,6 +1,6 @@
# IncludeDetails
Whether or not to include details for a section (types, filters, and sorts).
Whether or not to include details for a section (types, filters, and sorts).
Only exists for backwards compatibility, media providers other than the server libraries have it on always.

View File

@@ -1,10 +1,10 @@
# Level
An integer log level to write to the PMS log with.
0: Error
1: Warning
2: Info
3: Debug
An integer log level to write to the PMS log with.
0: Error
1: Warning
2: Info
3: Debug
4: Verbose

View File

@@ -3,8 +3,8 @@
## Fields
| Field | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `level` | [Level](../../models/operations/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with. <br/>0: Error <br/>1: Warning <br/>2: Info <br/>3: Debug <br/>4: Verbose<br/> | |
| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
| Field | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `level` | [Level](../../models/operations/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.<br/>0: Error<br/>1: Warning<br/>2: Info<br/>3: Debug<br/>4: Verbose<br/> | |
| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman |

View File

@@ -1,8 +1,8 @@
# QueryParamForce
Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
Force overwriting of duplicate playlists.
By default, a playlist file uploaded with the same path will overwrite the existing playlist.
The `force` argument is used to disable overwriting.
If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.

View File

@@ -3,8 +3,8 @@
## Fields
| Field | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename. <br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `force` | [QueryParamForce](../../models/operations/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists. <br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>The `force` argument is used to disable overwriting. <br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | |
| `sectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |
| Field | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `force` | [QueryParamForce](../../models/operations/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.<br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>The `force` argument is used to disable overwriting.<br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | |
| `sectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |

View File

@@ -25,7 +25,6 @@ import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetGlobalHubsBadRequest;
import dev.plexapi.sdk.models.errors.GetGlobalHubsUnauthorized;
import dev.plexapi.sdk.models.operations.GetGlobalHubsResponse;
import dev.plexapi.sdk.models.operations.OnlyTransient;
import java.lang.Exception;
public class Application {
@@ -37,8 +36,6 @@ public class Application {
.build();
GetGlobalHubsResponse res = sdk.hubs().getGlobalHubs()
.count(1262.49)
.onlyTransient(OnlyTransient.ONE)
.call();
if (res.object().isPresent()) {
@@ -136,7 +133,6 @@ import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetLibraryHubsBadRequest;
import dev.plexapi.sdk.models.errors.GetLibraryHubsUnauthorized;
import dev.plexapi.sdk.models.operations.GetLibraryHubsResponse;
import dev.plexapi.sdk.models.operations.QueryParamOnlyTransient;
import java.lang.Exception;
public class Application {
@@ -149,8 +145,6 @@ public class Application {
GetLibraryHubsResponse res = sdk.hubs().getLibraryHubs()
.sectionId(6728.76)
.count(6728.76)
.onlyTransient(QueryParamOnlyTransient.ZERO)
.call();
if (res.object().isPresent()) {

View File

@@ -54,7 +54,6 @@ public class Application {
GetFileHashResponse res = sdk.library().getFileHash()
.url("file://C:\Image.png&type=13")
.type(4462.17)
.call();
// handle response
@@ -209,14 +208,14 @@ public class Application {
## Library Details Endpoint
This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
The details include:
### Directories
Organized into three categories:
- **Primary Directories**:
- **Primary Directories**:
- Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
- Most can be replicated via media queries.
- Customizable by users.
@@ -257,7 +256,6 @@ import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetLibraryDetailsBadRequest;
import dev.plexapi.sdk.models.errors.GetLibraryDetailsUnauthorized;
import dev.plexapi.sdk.models.operations.GetLibraryDetailsResponse;
import dev.plexapi.sdk.models.operations.IncludeDetails;
import java.lang.Exception;
public class Application {
@@ -269,7 +267,6 @@ public class Application {
.build();
GetLibraryDetailsResponse res = sdk.library().getLibraryDetails()
.includeDetails(IncludeDetails.ZERO)
.sectionKey(9518)
.call();
@@ -282,10 +279,10 @@ public class Application {
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `includeDetails` | [Optional\<IncludeDetails>](../../models/operations/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts). <br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
| `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `includeDetails` | [Optional\<IncludeDetails>](../../models/operations/IncludeDetails.md) | :heavy_minus_sign: | Whether or not to include details for a section (types, filters, and sorts).<br/>Only exists for backwards compatibility, media providers other than the server libraries have it on always.<br/> | |
| `sectionKey` | *int* | :heavy_check_mark: | The unique key of the Plex library. <br/>Note: This is unique in the context of the Plex server.<br/> | 9518 |
### Response
@@ -973,7 +970,6 @@ package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.operations.PostMediaArtsResponse;
import java.lang.Exception;
import java.nio.charset.StandardCharsets;
public class Application {
@@ -986,7 +982,6 @@ public class Application {
PostMediaArtsResponse res = sdk.library().postMediaArts()
.ratingKey(2268L)
.url("https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b")
.requestBody("0xee51EFC6De".getBytes(StandardCharsets.UTF_8))
.call();
// handle response
@@ -1072,7 +1067,6 @@ package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.operations.PostMediaPosterResponse;
import java.lang.Exception;
import java.nio.charset.StandardCharsets;
public class Application {
@@ -1085,7 +1079,6 @@ public class Application {
PostMediaPosterResponse res = sdk.library().postMediaPoster()
.ratingKey(2268L)
.url("https://api.mediux.pro/assets/fcfdc487-dd07-4993-a0c1-0a3015362e5b")
.requestBody("0x7C3d45ad4B".getBytes(StandardCharsets.UTF_8))
.call();
// handle response

View File

@@ -50,11 +50,11 @@ public class Application {
### Parameters
| Parameter | Type | Required | Description | Example |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `level` | [Level](../../models/operations/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with. <br/>0: Error <br/>1: Warning <br/>2: Info <br/>3: Debug <br/>4: Verbose<br/> | |
| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
| Parameter | Type | Required | Description | Example |
| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| `level` | [Level](../../models/operations/Level.md) | :heavy_check_mark: | An integer log level to write to the PMS log with.<br/>0: Error<br/>1: Warning<br/>2: Info<br/>3: Debug<br/>4: Verbose<br/> | |
| `message` | *String* | :heavy_check_mark: | The text of the message to write to the log. | Test log message |
| `source` | *String* | :heavy_check_mark: | a string indicating the source of the message. | Postman |
### Response
@@ -70,13 +70,13 @@ public class Application {
## logMultiLine
This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
It accepts a text/plain request body, where each line represents a distinct log entry.
Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
It accepts a text/plain request body, where each line represents a distinct log entry.
Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
Log entries are separated by a newline character (`\n`).
Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
Log entries are separated by a newline character (`\n`).
Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
- `0`: Error - Critical issues that require immediate attention.

View File

@@ -3,9 +3,9 @@
## Overview
Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
They can be organized in (optionally nesting) folders.
Retrieving a playlist, or its items, will trigger a refresh of its metadata.
Retrieving a playlist, or its items, will trigger a refresh of its metadata.
This may cause the duration and number of items to change.
@@ -95,7 +95,7 @@ package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetPlaylistsBadRequest;
import dev.plexapi.sdk.models.errors.GetPlaylistsUnauthorized;
import dev.plexapi.sdk.models.operations.*;
import dev.plexapi.sdk.models.operations.GetPlaylistsResponse;
import java.lang.Exception;
public class Application {
@@ -107,8 +107,6 @@ public class Application {
.build();
GetPlaylistsResponse res = sdk.playlists().getPlaylists()
.playlistType(PlaylistType.AUDIO)
.smart(QueryParamSmart.ZERO)
.call();
if (res.object().isPresent()) {
@@ -268,8 +266,6 @@ public class Application {
UpdatePlaylistResponse res = sdk.playlists().updatePlaylist()
.playlistID(3915)
.title("<value>")
.summary("<value>")
.call();
// handle response
@@ -503,11 +499,11 @@ public class Application {
### Parameters
| Parameter | Type | Required | Description | Example |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. <br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed. <br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename. <br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. <br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `force` | [QueryParamForce](../../models/operations/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists. <br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist. <br/>The `force` argument is used to disable overwriting. <br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | |
| `sectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |
| Parameter | Type | Required | Description | Example |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path` | *String* | :heavy_check_mark: | absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.<br/>If the `path` argument is a directory, that path will be scanned for playlist files to be processed.<br/>Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/>If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.<br/>The GUID of each playlist is based on the filename.<br/> | /home/barkley/playlist.m3u |
| `force` | [QueryParamForce](../../models/operations/QueryParamForce.md) | :heavy_check_mark: | Force overwriting of duplicate playlists.<br/>By default, a playlist file uploaded with the same path will overwrite the existing playlist.<br/>The `force` argument is used to disable overwriting.<br/>If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.<br/> | |
| `sectionID` | *long* | :heavy_check_mark: | Possibly the section ID to upload the playlist to, we are not certain. | 1 |
### Response

View File

@@ -225,7 +225,7 @@ package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.GetServerResourcesBadRequest;
import dev.plexapi.sdk.models.errors.GetServerResourcesUnauthorized;
import dev.plexapi.sdk.models.operations.*;
import dev.plexapi.sdk.models.operations.GetServerResourcesResponse;
import java.lang.Exception;
public class Application {
@@ -237,9 +237,6 @@ public class Application {
.build();
GetServerResourcesResponse res = sdk.plex().getServerResources()
.includeHttps(IncludeHttps.Enable)
.includeRelay(IncludeRelay.Enable)
.includeIPv6(IncludeIPv6.Enable)
.clientID("3381b62b-9ab7-4e37-827b-203e9809eb58")
.call();

View File

@@ -49,8 +49,6 @@ public class Application {
PerformSearchResponse res = sdk.search().performSearch()
.query("dylan")
.sectionId(9487.88)
.limit(5)
.call();
// handle response
@@ -107,8 +105,6 @@ public class Application {
PerformVoiceSearchResponse res = sdk.search().performVoiceSearch()
.query("dead+poop")
.sectionId(4094.8)
.limit(5)
.call();
// handle response

View File

@@ -1,3 +1,3 @@
groupId=dev.plexapi
artifactId=plexapi
version=0.14.1
version=0.16.0

View File

@@ -700,14 +700,14 @@ public class Library implements
*
* <p>## Library Details Endpoint
*
* <p>This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
* <p>This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
*
* <p>The details include:
*
* <p>### Directories
* Organized into three categories:
*
* <p>- **Primary Directories**:
* <p>- **Primary Directories**:
* - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
* - Most can be replicated via media queries.
* - Customizable by users.
@@ -749,14 +749,14 @@ public class Library implements
*
* <p>## Library Details Endpoint
*
* <p>This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
* <p>This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
*
* <p>The details include:
*
* <p>### Directories
* Organized into three categories:
*
* <p>- **Primary Directories**:
* <p>- **Primary Directories**:
* - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
* - Most can be replicated via media queries.
* - Customizable by users.
@@ -803,14 +803,14 @@ public class Library implements
*
* <p>## Library Details Endpoint
*
* <p>This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
* <p>This endpoint provides comprehensive details about the library, focusing on organizational aspects rather than the content itself.
*
* <p>The details include:
*
* <p>### Directories
* Organized into three categories:
*
* <p>- **Primary Directories**:
* <p>- **Primary Directories**:
* - Used in some clients for quick access to media subsets (e.g., "All", "On Deck").
* - Most can be replicated via media queries.
* - Customizable by users.
@@ -841,7 +841,7 @@ public class Library implements
*
* <p>&gt; **Note**: Filters and sorts are optional; without them, no filtering controls are rendered.
*
* @param includeDetails Whether or not to include details for a section (types, filters, and sorts).
* @param includeDetails Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*
* @param sectionKey The unique key of the Plex library.

View File

@@ -68,11 +68,11 @@ public class Log implements
*
* <p>This endpoint will write a single-line log message, including a level and source to the main Plex Media Server log.
*
* @param level An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* @param level An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* 4: Verbose
*
* @param message The text of the message to write to the log.
@@ -232,13 +232,13 @@ public class Log implements
/**
* Logging a multi-line message
*
* <p>This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
* It accepts a text/plain request body, where each line represents a distinct log entry.
* Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
* <p>This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
* It accepts a text/plain request body, where each line represents a distinct log entry.
* Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
*
* <p>Log entries are separated by a newline character (`\n`).
* Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
* This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
* <p>Log entries are separated by a newline character (`\n`).
* Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
* This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
*
* <p>The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
* - `0`: Error - Critical issues that require immediate attention.
@@ -263,13 +263,13 @@ public class Log implements
/**
* Logging a multi-line message
*
* <p>This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
* It accepts a text/plain request body, where each line represents a distinct log entry.
* Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
* <p>This endpoint allows for the batch addition of log entries to the main Plex Media Server log.
* It accepts a text/plain request body, where each line represents a distinct log entry.
* Each log entry consists of URL-encoded key-value pairs, specifying log attributes such as 'level', 'message', and 'source'.
*
* <p>Log entries are separated by a newline character (`\n`).
* Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
* This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
* <p>Log entries are separated by a newline character (`\n`).
* Each entry's parameters should be URL-encoded to ensure accurate parsing and handling of special characters.
* This method is efficient for logging multiple entries in a single API call, reducing the overhead of multiple individual requests.
*
* <p>The 'level' parameter specifies the log entry's severity or importance, with the following integer values:
* - `0`: Error - Critical issues that require immediate attention.

View File

@@ -76,9 +76,9 @@ import java.util.List;
import java.util.Optional;
/**
* Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
* Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
* They can be organized in (optionally nesting) folders.
* Retrieving a playlist, or its items, will trigger a refresh of its metadata.
* Retrieving a playlist, or its items, will trigger a refresh of its metadata.
* This may cause the duration and number of items to change.
*/
public class Playlists implements
@@ -1562,16 +1562,16 @@ public class Playlists implements
*
* <p>Imports m3u playlists by passing a path on the server to scan for m3u-formatted playlist files, or a path to a single playlist file.
*
* @param path absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* @param path absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
*
* @param force Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* @param force Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
*
* @param sectionID Possibly the section ID to upload the playlist to, we are not certain.

View File

@@ -52,7 +52,7 @@ public class PlexAPI {
/**
* The full address of your Plex Server
*/
"{protocol}://{ip}:{port}",
"https://10.10.10.47:32400",
};
/**
@@ -117,9 +117,9 @@ public class PlexAPI {
private final Log log;
/**
* Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
* Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
* They can be organized in (optionally nesting) folders.
* Retrieving a playlist, or its items, will trigger a refresh of its metadata.
* Retrieving a playlist, or its items, will trigger a refresh of its metadata.
* This may cause the duration and number of items to change.
*/
private final Playlists playlists;
@@ -231,9 +231,9 @@ public class PlexAPI {
}
/**
* Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
* Playlists are ordered collections of media. They can be dumb (just a list of media) or smart (based on a media query, such as "all albums from 2017").
* They can be organized in (optionally nesting) folders.
* Retrieving a playlist, or its items, will trigger a refresh of its metadata.
* Retrieving a playlist, or its items, will trigger a refresh of its metadata.
* This may cause the duration and number of items to change.
*/
public Playlists playlists() {
@@ -508,4 +508,5 @@ public class PlexAPI {
this.updater = new Updater(sdkConfiguration);
this.users = new Users(sdkConfiguration);
this.sdkConfiguration.initialize();
}}
}
}

View File

@@ -42,8 +42,8 @@ class SDKConfiguration {
} };
private static final String LANGUAGE = "java";
public static final String OPENAPI_DOC_VERSION = "0.0.3";
public static final String SDK_VERSION = "0.14.1";
public static final String GEN_VERSION = "2.565.1";
public static final String SDK_VERSION = "0.16.0";
public static final String GEN_VERSION = "2.585.2";
private static final String BASE_PACKAGE = "dev.plexapi.sdk";
public static final String USER_AGENT =
String.format("speakeasy-sdk/%s %s %s %s %s",

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* CreatePlaylistQueryParamType
*
* <p>type of playlist to create
*/
public enum CreatePlaylistQueryParamType {
AUDIO("audio"),
VIDEO("video"),
PHOTO("photo");
@JsonDeserialize(using = CreatePlaylistQueryParamType._Deserializer.class)
@JsonSerialize(using = CreatePlaylistQueryParamType._Serializer.class)
public class CreatePlaylistQueryParamType {
public static final CreatePlaylistQueryParamType AUDIO = new CreatePlaylistQueryParamType("audio");
public static final CreatePlaylistQueryParamType VIDEO = new CreatePlaylistQueryParamType("video");
public static final CreatePlaylistQueryParamType PHOTO = new CreatePlaylistQueryParamType("photo");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, CreatePlaylistQueryParamType> values = createValuesMap();
private static final Map<String, CreatePlaylistQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private CreatePlaylistQueryParamType(String value) {
this.value = value;
}
/**
* Returns a CreatePlaylistQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as CreatePlaylistQueryParamType
*/
public static CreatePlaylistQueryParamType of(String value) {
synchronized (CreatePlaylistQueryParamType.class) {
return values.computeIfAbsent(value, v -> new CreatePlaylistQueryParamType(v));
}
}
public String value() {
return value;
}
public static Optional<CreatePlaylistQueryParamType> fromValue(String value) {
for (CreatePlaylistQueryParamType o: CreatePlaylistQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<CreatePlaylistQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
CreatePlaylistQueryParamType other = (CreatePlaylistQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "CreatePlaylistQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static CreatePlaylistQueryParamType[] values() {
synchronized (CreatePlaylistQueryParamType.class) {
return values.values().toArray(new CreatePlaylistQueryParamType[] {});
}
}
private static final Map<String, CreatePlaylistQueryParamType> createValuesMap() {
Map<String, CreatePlaylistQueryParamType> map = new LinkedHashMap<>();
map.put("audio", AUDIO);
map.put("video", VIDEO);
map.put("photo", PHOTO);
return map;
}
private static final Map<String, CreatePlaylistQueryParamTypeEnum> createEnumsMap() {
Map<String, CreatePlaylistQueryParamTypeEnum> map = new HashMap<>();
map.put("audio", CreatePlaylistQueryParamTypeEnum.AUDIO);
map.put("video", CreatePlaylistQueryParamTypeEnum.VIDEO);
map.put("photo", CreatePlaylistQueryParamTypeEnum.PHOTO);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<CreatePlaylistQueryParamType> {
protected _Serializer() {
super(CreatePlaylistQueryParamType.class);
}
@Override
public void serialize(CreatePlaylistQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<CreatePlaylistQueryParamType> {
protected _Deserializer() {
super(CreatePlaylistQueryParamType.class);
}
@Override
public CreatePlaylistQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return CreatePlaylistQueryParamType.of(v);
}
}
public enum CreatePlaylistQueryParamTypeEnum {
AUDIO("audio"),
VIDEO("video"),
PHOTO("photo"),;
private final String value;
private CreatePlaylistQueryParamTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* EnableCreditsMarkerGeneration
*
* <p>Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
*/
public enum EnableCreditsMarkerGeneration {
LibraryDefault("-1"),
Disabled("0");
@JsonDeserialize(using = EnableCreditsMarkerGeneration._Deserializer.class)
@JsonSerialize(using = EnableCreditsMarkerGeneration._Serializer.class)
public class EnableCreditsMarkerGeneration {
public static final EnableCreditsMarkerGeneration LibraryDefault = new EnableCreditsMarkerGeneration("-1");
public static final EnableCreditsMarkerGeneration Disabled = new EnableCreditsMarkerGeneration("0");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, EnableCreditsMarkerGeneration> values = createValuesMap();
private static final Map<String, EnableCreditsMarkerGenerationEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private EnableCreditsMarkerGeneration(String value) {
this.value = value;
}
/**
* Returns a EnableCreditsMarkerGeneration with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as EnableCreditsMarkerGeneration
*/
public static EnableCreditsMarkerGeneration of(String value) {
synchronized (EnableCreditsMarkerGeneration.class) {
return values.computeIfAbsent(value, v -> new EnableCreditsMarkerGeneration(v));
}
}
public String value() {
return value;
}
public static Optional<EnableCreditsMarkerGeneration> fromValue(String value) {
for (EnableCreditsMarkerGeneration o: EnableCreditsMarkerGeneration.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<EnableCreditsMarkerGenerationEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
EnableCreditsMarkerGeneration other = (EnableCreditsMarkerGeneration) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "EnableCreditsMarkerGeneration [value=" + value + "]";
}
// return an array just like an enum
public static EnableCreditsMarkerGeneration[] values() {
synchronized (EnableCreditsMarkerGeneration.class) {
return values.values().toArray(new EnableCreditsMarkerGeneration[] {});
}
}
private static final Map<String, EnableCreditsMarkerGeneration> createValuesMap() {
Map<String, EnableCreditsMarkerGeneration> map = new LinkedHashMap<>();
map.put("-1", LibraryDefault);
map.put("0", Disabled);
return map;
}
private static final Map<String, EnableCreditsMarkerGenerationEnum> createEnumsMap() {
Map<String, EnableCreditsMarkerGenerationEnum> map = new HashMap<>();
map.put("-1", EnableCreditsMarkerGenerationEnum.LibraryDefault);
map.put("0", EnableCreditsMarkerGenerationEnum.Disabled);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<EnableCreditsMarkerGeneration> {
protected _Serializer() {
super(EnableCreditsMarkerGeneration.class);
}
@Override
public void serialize(EnableCreditsMarkerGeneration value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<EnableCreditsMarkerGeneration> {
protected _Deserializer() {
super(EnableCreditsMarkerGeneration.class);
}
@Override
public EnableCreditsMarkerGeneration deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return EnableCreditsMarkerGeneration.of(v);
}
}
public enum EnableCreditsMarkerGenerationEnum {
LibraryDefault("-1"),
Disabled("0"),;
private final String value;
private EnableCreditsMarkerGenerationEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* EpisodeSort
*
* <p>Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
*/
public enum EpisodeSort {
LibraryDefault("-1"),
OldestFirst("0"),
NewestFirst("1");
@JsonDeserialize(using = EpisodeSort._Deserializer.class)
@JsonSerialize(using = EpisodeSort._Serializer.class)
public class EpisodeSort {
public static final EpisodeSort LibraryDefault = new EpisodeSort("-1");
public static final EpisodeSort OldestFirst = new EpisodeSort("0");
public static final EpisodeSort NewestFirst = new EpisodeSort("1");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, EpisodeSort> values = createValuesMap();
private static final Map<String, EpisodeSortEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private EpisodeSort(String value) {
this.value = value;
}
/**
* Returns a EpisodeSort with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as EpisodeSort
*/
public static EpisodeSort of(String value) {
synchronized (EpisodeSort.class) {
return values.computeIfAbsent(value, v -> new EpisodeSort(v));
}
}
public String value() {
return value;
}
public static Optional<EpisodeSort> fromValue(String value) {
for (EpisodeSort o: EpisodeSort.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<EpisodeSortEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
EpisodeSort other = (EpisodeSort) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "EpisodeSort [value=" + value + "]";
}
// return an array just like an enum
public static EpisodeSort[] values() {
synchronized (EpisodeSort.class) {
return values.values().toArray(new EpisodeSort[] {});
}
}
private static final Map<String, EpisodeSort> createValuesMap() {
Map<String, EpisodeSort> map = new LinkedHashMap<>();
map.put("-1", LibraryDefault);
map.put("0", OldestFirst);
map.put("1", NewestFirst);
return map;
}
private static final Map<String, EpisodeSortEnum> createEnumsMap() {
Map<String, EpisodeSortEnum> map = new HashMap<>();
map.put("-1", EpisodeSortEnum.LibraryDefault);
map.put("0", EpisodeSortEnum.OldestFirst);
map.put("1", EpisodeSortEnum.NewestFirst);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<EpisodeSort> {
protected _Serializer() {
super(EpisodeSort.class);
}
@Override
public void serialize(EpisodeSort value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<EpisodeSort> {
protected _Deserializer() {
super(EpisodeSort.class);
}
@Override
public EpisodeSort deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return EpisodeSort.of(v);
}
}
public enum EpisodeSortEnum {
LibraryDefault("-1"),
OldestFirst("0"),
NewestFirst("1"),;
private final String value;
private EpisodeSortEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* Filter
*
* <p>Filter
*/
public enum Filter {
ALL("all"),
AVAILABLE("available"),
RELEASED("released");
@JsonDeserialize(using = Filter._Deserializer.class)
@JsonSerialize(using = Filter._Serializer.class)
public class Filter {
public static final Filter ALL = new Filter("all");
public static final Filter AVAILABLE = new Filter("available");
public static final Filter RELEASED = new Filter("released");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, Filter> values = createValuesMap();
private static final Map<String, FilterEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private Filter(String value) {
this.value = value;
}
/**
* Returns a Filter with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as Filter
*/
public static Filter of(String value) {
synchronized (Filter.class) {
return values.computeIfAbsent(value, v -> new Filter(v));
}
}
public String value() {
return value;
}
public static Optional<Filter> fromValue(String value) {
for (Filter o: Filter.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<FilterEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Filter other = (Filter) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "Filter [value=" + value + "]";
}
// return an array just like an enum
public static Filter[] values() {
synchronized (Filter.class) {
return values.values().toArray(new Filter[] {});
}
}
private static final Map<String, Filter> createValuesMap() {
Map<String, Filter> map = new LinkedHashMap<>();
map.put("all", ALL);
map.put("available", AVAILABLE);
map.put("released", RELEASED);
return map;
}
private static final Map<String, FilterEnum> createEnumsMap() {
Map<String, FilterEnum> map = new HashMap<>();
map.put("all", FilterEnum.ALL);
map.put("available", FilterEnum.AVAILABLE);
map.put("released", FilterEnum.RELEASED);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<Filter> {
protected _Serializer() {
super(Filter.class);
}
@Override
public void serialize(Filter value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<Filter> {
protected _Deserializer() {
super(Filter.class);
}
@Override
public Filter deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return Filter.of(v);
}
}
public enum FilterEnum {
ALL("all"),
AVAILABLE("available"),
RELEASED("released"),;
private final String value;
private FilterEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* FlattenSeasons
*
* <p>Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
*/
public enum FlattenSeasons {
LibraryDefault("-1"),
Hide("0"),
Show("1");
@JsonDeserialize(using = FlattenSeasons._Deserializer.class)
@JsonSerialize(using = FlattenSeasons._Serializer.class)
public class FlattenSeasons {
public static final FlattenSeasons LibraryDefault = new FlattenSeasons("-1");
public static final FlattenSeasons Hide = new FlattenSeasons("0");
public static final FlattenSeasons Show = new FlattenSeasons("1");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, FlattenSeasons> values = createValuesMap();
private static final Map<String, FlattenSeasonsEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private FlattenSeasons(String value) {
this.value = value;
}
/**
* Returns a FlattenSeasons with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as FlattenSeasons
*/
public static FlattenSeasons of(String value) {
synchronized (FlattenSeasons.class) {
return values.computeIfAbsent(value, v -> new FlattenSeasons(v));
}
}
public String value() {
return value;
}
public static Optional<FlattenSeasons> fromValue(String value) {
for (FlattenSeasons o: FlattenSeasons.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<FlattenSeasonsEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
FlattenSeasons other = (FlattenSeasons) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "FlattenSeasons [value=" + value + "]";
}
// return an array just like an enum
public static FlattenSeasons[] values() {
synchronized (FlattenSeasons.class) {
return values.values().toArray(new FlattenSeasons[] {});
}
}
private static final Map<String, FlattenSeasons> createValuesMap() {
Map<String, FlattenSeasons> map = new LinkedHashMap<>();
map.put("-1", LibraryDefault);
map.put("0", Hide);
map.put("1", Show);
return map;
}
private static final Map<String, FlattenSeasonsEnum> createEnumsMap() {
Map<String, FlattenSeasonsEnum> map = new HashMap<>();
map.put("-1", FlattenSeasonsEnum.LibraryDefault);
map.put("0", FlattenSeasonsEnum.Hide);
map.put("1", FlattenSeasonsEnum.Show);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<FlattenSeasons> {
protected _Serializer() {
super(FlattenSeasons.class);
}
@Override
public void serialize(FlattenSeasons value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<FlattenSeasons> {
protected _Deserializer() {
super(FlattenSeasons.class);
}
@Override
public FlattenSeasons deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return FlattenSeasons.of(v);
}
}
public enum FlattenSeasonsEnum {
LibraryDefault("-1"),
Hide("0"),
Show("1"),;
private final String value;
private FlattenSeasonsEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetActorsLibraryQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetActorsLibraryQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetActorsLibraryQueryParamType._Deserializer.class)
@JsonSerialize(using = GetActorsLibraryQueryParamType._Serializer.class)
public class GetActorsLibraryQueryParamType {
public static final GetActorsLibraryQueryParamType Movie = new GetActorsLibraryQueryParamType(1L);
public static final GetActorsLibraryQueryParamType TvShow = new GetActorsLibraryQueryParamType(2L);
public static final GetActorsLibraryQueryParamType Season = new GetActorsLibraryQueryParamType(3L);
public static final GetActorsLibraryQueryParamType Episode = new GetActorsLibraryQueryParamType(4L);
public static final GetActorsLibraryQueryParamType Audio = new GetActorsLibraryQueryParamType(8L);
public static final GetActorsLibraryQueryParamType Album = new GetActorsLibraryQueryParamType(9L);
public static final GetActorsLibraryQueryParamType Track = new GetActorsLibraryQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetActorsLibraryQueryParamType> values = createValuesMap();
private static final Map<Long, GetActorsLibraryQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetActorsLibraryQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetActorsLibraryQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetActorsLibraryQueryParamType
*/
public static GetActorsLibraryQueryParamType of(long value) {
synchronized (GetActorsLibraryQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetActorsLibraryQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetActorsLibraryQueryParamType> fromValue(long value) {
for (GetActorsLibraryQueryParamType o: GetActorsLibraryQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetActorsLibraryQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetActorsLibraryQueryParamType other = (GetActorsLibraryQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetActorsLibraryQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetActorsLibraryQueryParamType[] values() {
synchronized (GetActorsLibraryQueryParamType.class) {
return values.values().toArray(new GetActorsLibraryQueryParamType[] {});
}
}
private static final Map<Long, GetActorsLibraryQueryParamType> createValuesMap() {
Map<Long, GetActorsLibraryQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetActorsLibraryQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetActorsLibraryQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetActorsLibraryQueryParamTypeEnum.Movie);
map.put(2L, GetActorsLibraryQueryParamTypeEnum.TvShow);
map.put(3L, GetActorsLibraryQueryParamTypeEnum.Season);
map.put(4L, GetActorsLibraryQueryParamTypeEnum.Episode);
map.put(8L, GetActorsLibraryQueryParamTypeEnum.Audio);
map.put(9L, GetActorsLibraryQueryParamTypeEnum.Album);
map.put(10L, GetActorsLibraryQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetActorsLibraryQueryParamType> {
protected _Serializer() {
super(GetActorsLibraryQueryParamType.class);
}
@Override
public void serialize(GetActorsLibraryQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetActorsLibraryQueryParamType> {
protected _Deserializer() {
super(GetActorsLibraryQueryParamType.class);
}
@Override
public GetActorsLibraryQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetActorsLibraryQueryParamType.of(v);
}
}
public enum GetActorsLibraryQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetActorsLibraryQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -5,54 +5,95 @@ package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.type.TypeReference;
import dev.plexapi.sdk.utils.LazySingletonValue;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
public class GetAllLibrariesDirectory {
/**
* Indicates whether syncing is allowed.
*/
@JsonProperty("allowSync")
private boolean allowSync;
/**
* URL for the background artwork of the media container.
*/
@JsonProperty("art")
private String art;
/**
* The relative path to the composite media item.
*/
@JsonProperty("composite")
private String composite;
/**
* UNKNOWN
*/
@JsonProperty("filters")
private boolean filters;
/**
* Indicates whether the library is currently being refreshed or updated
*/
@JsonProperty("refreshing")
private boolean refreshing;
/**
* URL for the thumbnail image of the media container.
*/
@JsonProperty("thumb")
private String thumb;
/**
* The library key representing the unique identifier
*/
@JsonProperty("key")
private String key;
@JsonProperty("type")
private String type;
private GetAllLibrariesType type;
/**
* The title of the library
*/
@JsonProperty("title")
private String title;
/**
* The Plex agent used to match and retrieve media metadata.
*/
@JsonProperty("agent")
private String agent;
/**
* UNKNOWN
*/
@JsonProperty("scanner")
private String scanner;
/**
* The Plex library language that has been set
*/
@JsonProperty("language")
private String language;
/**
* The universally unique identifier for the library.
*/
@JsonProperty("uuid")
private String uuid;
@@ -62,11 +103,9 @@ public class GetAllLibrariesDirectory {
@JsonProperty("updatedAt")
private long updatedAt;
/**
* Unix epoch datetime in seconds
*/
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("createdAt")
private long createdAt;
private Optional<Long> createdAt;
/**
* Unix epoch datetime in seconds
@@ -74,20 +113,28 @@ public class GetAllLibrariesDirectory {
@JsonProperty("scannedAt")
private long scannedAt;
/**
* UNKNOWN
*/
@JsonProperty("content")
private boolean content;
/**
* UNKNOWN
*/
@JsonProperty("directory")
private boolean directory;
/**
* Unix epoch datetime in seconds
* Timestamp (in seconds) representing the last time the content was modified.
* NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64
*/
@JsonProperty("contentChangedAt")
private long contentChangedAt;
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("hidden")
private int hidden;
private Optional<? extends Hidden> hidden;
@JsonProperty("Location")
private List<GetAllLibrariesLocation> location;
@@ -101,19 +148,19 @@ public class GetAllLibrariesDirectory {
@JsonProperty("refreshing") boolean refreshing,
@JsonProperty("thumb") String thumb,
@JsonProperty("key") String key,
@JsonProperty("type") String type,
@JsonProperty("type") GetAllLibrariesType type,
@JsonProperty("title") String title,
@JsonProperty("agent") String agent,
@JsonProperty("scanner") String scanner,
@JsonProperty("language") String language,
@JsonProperty("uuid") String uuid,
@JsonProperty("updatedAt") long updatedAt,
@JsonProperty("createdAt") long createdAt,
@JsonProperty("createdAt") Optional<Long> createdAt,
@JsonProperty("scannedAt") long scannedAt,
@JsonProperty("content") boolean content,
@JsonProperty("directory") boolean directory,
@JsonProperty("contentChangedAt") long contentChangedAt,
@JsonProperty("hidden") int hidden,
@JsonProperty("hidden") Optional<? extends Hidden> hidden,
@JsonProperty("Location") List<GetAllLibrariesLocation> location) {
Utils.checkNotNull(allowSync, "allowSync");
Utils.checkNotNull(art, "art");
@@ -158,67 +205,126 @@ public class GetAllLibrariesDirectory {
this.hidden = hidden;
this.location = location;
}
public GetAllLibrariesDirectory(
boolean allowSync,
String art,
String composite,
boolean filters,
boolean refreshing,
String thumb,
String key,
GetAllLibrariesType type,
String title,
String agent,
String scanner,
String language,
String uuid,
long updatedAt,
long scannedAt,
boolean content,
boolean directory,
long contentChangedAt,
List<GetAllLibrariesLocation> location) {
this(allowSync, art, composite, filters, refreshing, thumb, key, type, title, agent, scanner, language, uuid, updatedAt, Optional.empty(), scannedAt, content, directory, contentChangedAt, Optional.empty(), location);
}
/**
* Indicates whether syncing is allowed.
*/
@JsonIgnore
public boolean allowSync() {
return allowSync;
}
/**
* URL for the background artwork of the media container.
*/
@JsonIgnore
public String art() {
return art;
}
/**
* The relative path to the composite media item.
*/
@JsonIgnore
public String composite() {
return composite;
}
/**
* UNKNOWN
*/
@JsonIgnore
public boolean filters() {
return filters;
}
/**
* Indicates whether the library is currently being refreshed or updated
*/
@JsonIgnore
public boolean refreshing() {
return refreshing;
}
/**
* URL for the thumbnail image of the media container.
*/
@JsonIgnore
public String thumb() {
return thumb;
}
/**
* The library key representing the unique identifier
*/
@JsonIgnore
public String key() {
return key;
}
@JsonIgnore
public String type() {
public GetAllLibrariesType type() {
return type;
}
/**
* The title of the library
*/
@JsonIgnore
public String title() {
return title;
}
/**
* The Plex agent used to match and retrieve media metadata.
*/
@JsonIgnore
public String agent() {
return agent;
}
/**
* UNKNOWN
*/
@JsonIgnore
public String scanner() {
return scanner;
}
/**
* The Plex library language that has been set
*/
@JsonIgnore
public String language() {
return language;
}
/**
* The universally unique identifier for the library.
*/
@JsonIgnore
public String uuid() {
return uuid;
@@ -232,11 +338,8 @@ public class GetAllLibrariesDirectory {
return updatedAt;
}
/**
* Unix epoch datetime in seconds
*/
@JsonIgnore
public long createdAt() {
public Optional<Long> createdAt() {
return createdAt;
}
@@ -248,27 +351,35 @@ public class GetAllLibrariesDirectory {
return scannedAt;
}
/**
* UNKNOWN
*/
@JsonIgnore
public boolean content() {
return content;
}
/**
* UNKNOWN
*/
@JsonIgnore
public boolean directory() {
return directory;
}
/**
* Unix epoch datetime in seconds
* Timestamp (in seconds) representing the last time the content was modified.
* NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64
*/
@JsonIgnore
public long contentChangedAt() {
return contentChangedAt;
}
@SuppressWarnings("unchecked")
@JsonIgnore
public int hidden() {
return hidden;
public Optional<Hidden> hidden() {
return (Optional<Hidden>) hidden;
}
@JsonIgnore
@@ -280,78 +391,114 @@ public class GetAllLibrariesDirectory {
return new Builder();
}
/**
* Indicates whether syncing is allowed.
*/
public GetAllLibrariesDirectory withAllowSync(boolean allowSync) {
Utils.checkNotNull(allowSync, "allowSync");
this.allowSync = allowSync;
return this;
}
/**
* URL for the background artwork of the media container.
*/
public GetAllLibrariesDirectory withArt(String art) {
Utils.checkNotNull(art, "art");
this.art = art;
return this;
}
/**
* The relative path to the composite media item.
*/
public GetAllLibrariesDirectory withComposite(String composite) {
Utils.checkNotNull(composite, "composite");
this.composite = composite;
return this;
}
/**
* UNKNOWN
*/
public GetAllLibrariesDirectory withFilters(boolean filters) {
Utils.checkNotNull(filters, "filters");
this.filters = filters;
return this;
}
/**
* Indicates whether the library is currently being refreshed or updated
*/
public GetAllLibrariesDirectory withRefreshing(boolean refreshing) {
Utils.checkNotNull(refreshing, "refreshing");
this.refreshing = refreshing;
return this;
}
/**
* URL for the thumbnail image of the media container.
*/
public GetAllLibrariesDirectory withThumb(String thumb) {
Utils.checkNotNull(thumb, "thumb");
this.thumb = thumb;
return this;
}
/**
* The library key representing the unique identifier
*/
public GetAllLibrariesDirectory withKey(String key) {
Utils.checkNotNull(key, "key");
this.key = key;
return this;
}
public GetAllLibrariesDirectory withType(String type) {
public GetAllLibrariesDirectory withType(GetAllLibrariesType type) {
Utils.checkNotNull(type, "type");
this.type = type;
return this;
}
/**
* The title of the library
*/
public GetAllLibrariesDirectory withTitle(String title) {
Utils.checkNotNull(title, "title");
this.title = title;
return this;
}
/**
* The Plex agent used to match and retrieve media metadata.
*/
public GetAllLibrariesDirectory withAgent(String agent) {
Utils.checkNotNull(agent, "agent");
this.agent = agent;
return this;
}
/**
* UNKNOWN
*/
public GetAllLibrariesDirectory withScanner(String scanner) {
Utils.checkNotNull(scanner, "scanner");
this.scanner = scanner;
return this;
}
/**
* The Plex library language that has been set
*/
public GetAllLibrariesDirectory withLanguage(String language) {
Utils.checkNotNull(language, "language");
this.language = language;
return this;
}
/**
* The universally unique identifier for the library.
*/
public GetAllLibrariesDirectory withUuid(String uuid) {
Utils.checkNotNull(uuid, "uuid");
this.uuid = uuid;
@@ -367,10 +514,13 @@ public class GetAllLibrariesDirectory {
return this;
}
/**
* Unix epoch datetime in seconds
*/
public GetAllLibrariesDirectory withCreatedAt(long createdAt) {
Utils.checkNotNull(createdAt, "createdAt");
this.createdAt = Optional.ofNullable(createdAt);
return this;
}
public GetAllLibrariesDirectory withCreatedAt(Optional<Long> createdAt) {
Utils.checkNotNull(createdAt, "createdAt");
this.createdAt = createdAt;
return this;
@@ -385,12 +535,18 @@ public class GetAllLibrariesDirectory {
return this;
}
/**
* UNKNOWN
*/
public GetAllLibrariesDirectory withContent(boolean content) {
Utils.checkNotNull(content, "content");
this.content = content;
return this;
}
/**
* UNKNOWN
*/
public GetAllLibrariesDirectory withDirectory(boolean directory) {
Utils.checkNotNull(directory, "directory");
this.directory = directory;
@@ -398,7 +554,8 @@ public class GetAllLibrariesDirectory {
}
/**
* Unix epoch datetime in seconds
* Timestamp (in seconds) representing the last time the content was modified.
* NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64
*/
public GetAllLibrariesDirectory withContentChangedAt(long contentChangedAt) {
Utils.checkNotNull(contentChangedAt, "contentChangedAt");
@@ -406,7 +563,13 @@ public class GetAllLibrariesDirectory {
return this;
}
public GetAllLibrariesDirectory withHidden(int hidden) {
public GetAllLibrariesDirectory withHidden(Hidden hidden) {
Utils.checkNotNull(hidden, "hidden");
this.hidden = Optional.ofNullable(hidden);
return this;
}
public GetAllLibrariesDirectory withHidden(Optional<? extends Hidden> hidden) {
Utils.checkNotNull(hidden, "hidden");
this.hidden = hidden;
return this;
@@ -520,7 +683,7 @@ public class GetAllLibrariesDirectory {
private String key;
private String type;
private GetAllLibrariesType type;
private String title;
@@ -534,7 +697,7 @@ public class GetAllLibrariesDirectory {
private Long updatedAt;
private Long createdAt;
private Optional<Long> createdAt = Optional.empty();
private Long scannedAt;
@@ -544,7 +707,7 @@ public class GetAllLibrariesDirectory {
private Long contentChangedAt;
private Integer hidden;
private Optional<? extends Hidden> hidden;
private List<GetAllLibrariesLocation> location;
@@ -552,78 +715,114 @@ public class GetAllLibrariesDirectory {
// force use of static builder() method
}
/**
* Indicates whether syncing is allowed.
*/
public Builder allowSync(boolean allowSync) {
Utils.checkNotNull(allowSync, "allowSync");
this.allowSync = allowSync;
return this;
}
/**
* URL for the background artwork of the media container.
*/
public Builder art(String art) {
Utils.checkNotNull(art, "art");
this.art = art;
return this;
}
/**
* The relative path to the composite media item.
*/
public Builder composite(String composite) {
Utils.checkNotNull(composite, "composite");
this.composite = composite;
return this;
}
/**
* UNKNOWN
*/
public Builder filters(boolean filters) {
Utils.checkNotNull(filters, "filters");
this.filters = filters;
return this;
}
/**
* Indicates whether the library is currently being refreshed or updated
*/
public Builder refreshing(boolean refreshing) {
Utils.checkNotNull(refreshing, "refreshing");
this.refreshing = refreshing;
return this;
}
/**
* URL for the thumbnail image of the media container.
*/
public Builder thumb(String thumb) {
Utils.checkNotNull(thumb, "thumb");
this.thumb = thumb;
return this;
}
/**
* The library key representing the unique identifier
*/
public Builder key(String key) {
Utils.checkNotNull(key, "key");
this.key = key;
return this;
}
public Builder type(String type) {
public Builder type(GetAllLibrariesType type) {
Utils.checkNotNull(type, "type");
this.type = type;
return this;
}
/**
* The title of the library
*/
public Builder title(String title) {
Utils.checkNotNull(title, "title");
this.title = title;
return this;
}
/**
* The Plex agent used to match and retrieve media metadata.
*/
public Builder agent(String agent) {
Utils.checkNotNull(agent, "agent");
this.agent = agent;
return this;
}
/**
* UNKNOWN
*/
public Builder scanner(String scanner) {
Utils.checkNotNull(scanner, "scanner");
this.scanner = scanner;
return this;
}
/**
* The Plex library language that has been set
*/
public Builder language(String language) {
Utils.checkNotNull(language, "language");
this.language = language;
return this;
}
/**
* The universally unique identifier for the library.
*/
public Builder uuid(String uuid) {
Utils.checkNotNull(uuid, "uuid");
this.uuid = uuid;
@@ -639,10 +838,13 @@ public class GetAllLibrariesDirectory {
return this;
}
/**
* Unix epoch datetime in seconds
*/
public Builder createdAt(long createdAt) {
Utils.checkNotNull(createdAt, "createdAt");
this.createdAt = Optional.ofNullable(createdAt);
return this;
}
public Builder createdAt(Optional<Long> createdAt) {
Utils.checkNotNull(createdAt, "createdAt");
this.createdAt = createdAt;
return this;
@@ -657,12 +859,18 @@ public class GetAllLibrariesDirectory {
return this;
}
/**
* UNKNOWN
*/
public Builder content(boolean content) {
Utils.checkNotNull(content, "content");
this.content = content;
return this;
}
/**
* UNKNOWN
*/
public Builder directory(boolean directory) {
Utils.checkNotNull(directory, "directory");
this.directory = directory;
@@ -670,7 +878,8 @@ public class GetAllLibrariesDirectory {
}
/**
* Unix epoch datetime in seconds
* Timestamp (in seconds) representing the last time the content was modified.
* NOTE: Some Plex server have some absurd values for this field, like 8457612157633039800 so it should be int64
*/
public Builder contentChangedAt(long contentChangedAt) {
Utils.checkNotNull(contentChangedAt, "contentChangedAt");
@@ -678,7 +887,13 @@ public class GetAllLibrariesDirectory {
return this;
}
public Builder hidden(int hidden) {
public Builder hidden(Hidden hidden) {
Utils.checkNotNull(hidden, "hidden");
this.hidden = Optional.ofNullable(hidden);
return this;
}
public Builder hidden(Optional<? extends Hidden> hidden) {
Utils.checkNotNull(hidden, "hidden");
this.hidden = hidden;
return this;
@@ -691,6 +906,9 @@ public class GetAllLibrariesDirectory {
}
public GetAllLibrariesDirectory build() {
if (hidden == null) {
hidden = _SINGLETON_VALUE_Hidden.value();
}
return new GetAllLibrariesDirectory(
allowSync,
art,
@@ -714,5 +932,11 @@ public class GetAllLibrariesDirectory {
hidden,
location);
}
private static final LazySingletonValue<Optional<? extends Hidden>> _SINGLETON_VALUE_Hidden =
new LazySingletonValue<>(
"hidden",
"0",
new TypeReference<Optional<? extends Hidden>>() {});
}
}

View File

@@ -14,9 +14,15 @@ import java.util.Objects;
public class GetAllLibrariesLocation {
/**
* The ID of the location.
*/
@JsonProperty("id")
private int id;
/**
* The path to the media item.
*/
@JsonProperty("path")
private String path;
@@ -30,11 +36,17 @@ public class GetAllLibrariesLocation {
this.path = path;
}
/**
* The ID of the location.
*/
@JsonIgnore
public int id() {
return id;
}
/**
* The path to the media item.
*/
@JsonIgnore
public String path() {
return path;
@@ -44,12 +56,18 @@ public class GetAllLibrariesLocation {
return new Builder();
}
/**
* The ID of the location.
*/
public GetAllLibrariesLocation withId(int id) {
Utils.checkNotNull(id, "id");
this.id = id;
return this;
}
/**
* The path to the media item.
*/
public GetAllLibrariesLocation withPath(String path) {
Utils.checkNotNull(path, "path");
this.path = path;
@@ -95,12 +113,18 @@ public class GetAllLibrariesLocation {
// force use of static builder() method
}
/**
* The ID of the location.
*/
public Builder id(int id) {
Utils.checkNotNull(id, "id");
this.id = id;
return this;
}
/**
* The path to the media item.
*/
public Builder path(String path) {
Utils.checkNotNull(path, "path");
this.path = path;

View File

@@ -5,35 +5,49 @@ package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
public class GetAllLibrariesMediaContainer {
/**
* Number of media items returned in this response.
*/
@JsonProperty("size")
private int size;
/**
* Indicates whether syncing is allowed.
*/
@JsonProperty("allowSync")
private boolean allowSync;
/**
* The primary title of the media container.
*/
@JsonProperty("title1")
private String title1;
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("Directory")
private List<GetAllLibrariesDirectory> directory;
private Optional<? extends List<GetAllLibrariesDirectory>> directory;
@JsonCreator
public GetAllLibrariesMediaContainer(
@JsonProperty("size") int size,
@JsonProperty("allowSync") boolean allowSync,
@JsonProperty("title1") String title1,
@JsonProperty("Directory") List<GetAllLibrariesDirectory> directory) {
@JsonProperty("Directory") Optional<? extends List<GetAllLibrariesDirectory>> directory) {
Utils.checkNotNull(size, "size");
Utils.checkNotNull(allowSync, "allowSync");
Utils.checkNotNull(title1, "title1");
@@ -43,43 +57,69 @@ public class GetAllLibrariesMediaContainer {
this.title1 = title1;
this.directory = directory;
}
public GetAllLibrariesMediaContainer(
int size,
boolean allowSync,
String title1) {
this(size, allowSync, title1, Optional.empty());
}
/**
* Number of media items returned in this response.
*/
@JsonIgnore
public int size() {
return size;
}
/**
* Indicates whether syncing is allowed.
*/
@JsonIgnore
public boolean allowSync() {
return allowSync;
}
/**
* The primary title of the media container.
*/
@JsonIgnore
public String title1() {
return title1;
}
@SuppressWarnings("unchecked")
@JsonIgnore
public List<GetAllLibrariesDirectory> directory() {
return directory;
public Optional<List<GetAllLibrariesDirectory>> directory() {
return (Optional<List<GetAllLibrariesDirectory>>) directory;
}
public final static Builder builder() {
return new Builder();
}
/**
* Number of media items returned in this response.
*/
public GetAllLibrariesMediaContainer withSize(int size) {
Utils.checkNotNull(size, "size");
this.size = size;
return this;
}
/**
* Indicates whether syncing is allowed.
*/
public GetAllLibrariesMediaContainer withAllowSync(boolean allowSync) {
Utils.checkNotNull(allowSync, "allowSync");
this.allowSync = allowSync;
return this;
}
/**
* The primary title of the media container.
*/
public GetAllLibrariesMediaContainer withTitle1(String title1) {
Utils.checkNotNull(title1, "title1");
this.title1 = title1;
@@ -87,6 +127,12 @@ public class GetAllLibrariesMediaContainer {
}
public GetAllLibrariesMediaContainer withDirectory(List<GetAllLibrariesDirectory> directory) {
Utils.checkNotNull(directory, "directory");
this.directory = Optional.ofNullable(directory);
return this;
}
public GetAllLibrariesMediaContainer withDirectory(Optional<? extends List<GetAllLibrariesDirectory>> directory) {
Utils.checkNotNull(directory, "directory");
this.directory = directory;
return this;
@@ -135,24 +181,33 @@ public class GetAllLibrariesMediaContainer {
private String title1;
private List<GetAllLibrariesDirectory> directory;
private Optional<? extends List<GetAllLibrariesDirectory>> directory = Optional.empty();
private Builder() {
// force use of static builder() method
}
/**
* Number of media items returned in this response.
*/
public Builder size(int size) {
Utils.checkNotNull(size, "size");
this.size = size;
return this;
}
/**
* Indicates whether syncing is allowed.
*/
public Builder allowSync(boolean allowSync) {
Utils.checkNotNull(allowSync, "allowSync");
this.allowSync = allowSync;
return this;
}
/**
* The primary title of the media container.
*/
public Builder title1(String title1) {
Utils.checkNotNull(title1, "title1");
this.title1 = title1;
@@ -160,6 +215,12 @@ public class GetAllLibrariesMediaContainer {
}
public Builder directory(List<GetAllLibrariesDirectory> directory) {
Utils.checkNotNull(directory, "directory");
this.directory = Optional.ofNullable(directory);
return this;
}
public Builder directory(Optional<? extends List<GetAllLibrariesDirectory>> directory) {
Utils.checkNotNull(directory, "directory");
this.directory = directory;
return this;

View File

@@ -5,11 +5,15 @@ package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.Objects;
import java.util.Optional;
/**
* GetAllLibrariesResponseBody
@@ -18,19 +22,25 @@ import java.util.Objects;
*/
public class GetAllLibrariesResponseBody {
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("MediaContainer")
private GetAllLibrariesMediaContainer mediaContainer;
private Optional<? extends GetAllLibrariesMediaContainer> mediaContainer;
@JsonCreator
public GetAllLibrariesResponseBody(
@JsonProperty("MediaContainer") GetAllLibrariesMediaContainer mediaContainer) {
@JsonProperty("MediaContainer") Optional<? extends GetAllLibrariesMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
}
public GetAllLibrariesResponseBody() {
this(Optional.empty());
}
@SuppressWarnings("unchecked")
@JsonIgnore
public GetAllLibrariesMediaContainer mediaContainer() {
return mediaContainer;
public Optional<GetAllLibrariesMediaContainer> mediaContainer() {
return (Optional<GetAllLibrariesMediaContainer>) mediaContainer;
}
public final static Builder builder() {
@@ -38,6 +48,12 @@ public class GetAllLibrariesResponseBody {
}
public GetAllLibrariesResponseBody withMediaContainer(GetAllLibrariesMediaContainer mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = Optional.ofNullable(mediaContainer);
return this;
}
public GetAllLibrariesResponseBody withMediaContainer(Optional<? extends GetAllLibrariesMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
return this;
@@ -71,13 +87,19 @@ public class GetAllLibrariesResponseBody {
public final static class Builder {
private GetAllLibrariesMediaContainer mediaContainer;
private Optional<? extends GetAllLibrariesMediaContainer> mediaContainer = Optional.empty();
private Builder() {
// force use of static builder() method
}
public Builder mediaContainer(GetAllLibrariesMediaContainer mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = Optional.ofNullable(mediaContainer);
return this;
}
public Builder mediaContainer(Optional<? extends GetAllLibrariesMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
return this;

View File

@@ -0,0 +1,200 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetAllLibrariesType
*
* <p>The library type
*/
@JsonDeserialize(using = GetAllLibrariesType._Deserializer.class)
@JsonSerialize(using = GetAllLibrariesType._Serializer.class)
public class GetAllLibrariesType {
public static final GetAllLibrariesType Movie = new GetAllLibrariesType("movie");
public static final GetAllLibrariesType TvShow = new GetAllLibrariesType("show");
public static final GetAllLibrariesType Season = new GetAllLibrariesType("season");
public static final GetAllLibrariesType Episode = new GetAllLibrariesType("episode");
public static final GetAllLibrariesType Artist = new GetAllLibrariesType("artist");
public static final GetAllLibrariesType Album = new GetAllLibrariesType("album");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetAllLibrariesType> values = createValuesMap();
private static final Map<String, GetAllLibrariesTypeEnum> enums = createEnumsMap();
private final String value;
private GetAllLibrariesType(String value) {
this.value = value;
}
/**
* Returns a GetAllLibrariesType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetAllLibrariesType
*/
public static GetAllLibrariesType of(String value) {
synchronized (GetAllLibrariesType.class) {
return values.computeIfAbsent(value, v -> new GetAllLibrariesType(v));
}
}
public String value() {
return value;
}
public Optional<GetAllLibrariesTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetAllLibrariesType other = (GetAllLibrariesType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetAllLibrariesType [value=" + value + "]";
}
// return an array just like an enum
public static GetAllLibrariesType[] values() {
synchronized (GetAllLibrariesType.class) {
return values.values().toArray(new GetAllLibrariesType[] {});
}
}
private static final Map<String, GetAllLibrariesType> createValuesMap() {
Map<String, GetAllLibrariesType> map = new LinkedHashMap<>();
map.put("movie", Movie);
map.put("show", TvShow);
map.put("season", Season);
map.put("episode", Episode);
map.put("artist", Artist);
map.put("album", Album);
return map;
}
private static final Map<String, GetAllLibrariesTypeEnum> createEnumsMap() {
Map<String, GetAllLibrariesTypeEnum> map = new HashMap<>();
map.put("movie", GetAllLibrariesTypeEnum.Movie);
map.put("show", GetAllLibrariesTypeEnum.TvShow);
map.put("season", GetAllLibrariesTypeEnum.Season);
map.put("episode", GetAllLibrariesTypeEnum.Episode);
map.put("artist", GetAllLibrariesTypeEnum.Artist);
map.put("album", GetAllLibrariesTypeEnum.Album);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetAllLibrariesType> {
protected _Serializer() {
super(GetAllLibrariesType.class);
}
@Override
public void serialize(GetAllLibrariesType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetAllLibrariesType> {
protected _Deserializer() {
super(GetAllLibrariesType.class);
}
@Override
public GetAllLibrariesType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetAllLibrariesType.of(v);
}
}
public enum GetAllLibrariesTypeEnum {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album"),;
private final String value;
private GetAllLibrariesTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
}
}

View File

@@ -3,35 +3,185 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum GetAllMediaLibraryLibraryResponseType {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = GetAllMediaLibraryLibraryResponseType._Deserializer.class)
@JsonSerialize(using = GetAllMediaLibraryLibraryResponseType._Serializer.class)
public class GetAllMediaLibraryLibraryResponseType {
public static final GetAllMediaLibraryLibraryResponseType COVER_POSTER = new GetAllMediaLibraryLibraryResponseType("coverPoster");
public static final GetAllMediaLibraryLibraryResponseType BACKGROUND = new GetAllMediaLibraryLibraryResponseType("background");
public static final GetAllMediaLibraryLibraryResponseType SNAPSHOT = new GetAllMediaLibraryLibraryResponseType("snapshot");
public static final GetAllMediaLibraryLibraryResponseType CLEAR_LOGO = new GetAllMediaLibraryLibraryResponseType("clearLogo");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetAllMediaLibraryLibraryResponseType> values = createValuesMap();
private static final Map<String, GetAllMediaLibraryLibraryResponseTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetAllMediaLibraryLibraryResponseType(String value) {
this.value = value;
}
/**
* Returns a GetAllMediaLibraryLibraryResponseType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetAllMediaLibraryLibraryResponseType
*/
public static GetAllMediaLibraryLibraryResponseType of(String value) {
synchronized (GetAllMediaLibraryLibraryResponseType.class) {
return values.computeIfAbsent(value, v -> new GetAllMediaLibraryLibraryResponseType(v));
}
}
public String value() {
return value;
}
public static Optional<GetAllMediaLibraryLibraryResponseType> fromValue(String value) {
for (GetAllMediaLibraryLibraryResponseType o: GetAllMediaLibraryLibraryResponseType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetAllMediaLibraryLibraryResponseTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetAllMediaLibraryLibraryResponseType other = (GetAllMediaLibraryLibraryResponseType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetAllMediaLibraryLibraryResponseType [value=" + value + "]";
}
// return an array just like an enum
public static GetAllMediaLibraryLibraryResponseType[] values() {
synchronized (GetAllMediaLibraryLibraryResponseType.class) {
return values.values().toArray(new GetAllMediaLibraryLibraryResponseType[] {});
}
}
private static final Map<String, GetAllMediaLibraryLibraryResponseType> createValuesMap() {
Map<String, GetAllMediaLibraryLibraryResponseType> map = new LinkedHashMap<>();
map.put("coverPoster", COVER_POSTER);
map.put("background", BACKGROUND);
map.put("snapshot", SNAPSHOT);
map.put("clearLogo", CLEAR_LOGO);
return map;
}
private static final Map<String, GetAllMediaLibraryLibraryResponseTypeEnum> createEnumsMap() {
Map<String, GetAllMediaLibraryLibraryResponseTypeEnum> map = new HashMap<>();
map.put("coverPoster", GetAllMediaLibraryLibraryResponseTypeEnum.COVER_POSTER);
map.put("background", GetAllMediaLibraryLibraryResponseTypeEnum.BACKGROUND);
map.put("snapshot", GetAllMediaLibraryLibraryResponseTypeEnum.SNAPSHOT);
map.put("clearLogo", GetAllMediaLibraryLibraryResponseTypeEnum.CLEAR_LOGO);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetAllMediaLibraryLibraryResponseType> {
protected _Serializer() {
super(GetAllMediaLibraryLibraryResponseType.class);
}
@Override
public void serialize(GetAllMediaLibraryLibraryResponseType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetAllMediaLibraryLibraryResponseType> {
protected _Deserializer() {
super(GetAllMediaLibraryLibraryResponseType.class);
}
@Override
public GetAllMediaLibraryLibraryResponseType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetAllMediaLibraryLibraryResponseType.of(v);
}
}
public enum GetAllMediaLibraryLibraryResponseTypeEnum {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo"),;
private final String value;
private GetAllMediaLibraryLibraryResponseTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,42 +3,198 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetAllMediaLibraryLibraryType
*
* <p>The type of media content
*/
public enum GetAllMediaLibraryLibraryType {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album");
@JsonDeserialize(using = GetAllMediaLibraryLibraryType._Deserializer.class)
@JsonSerialize(using = GetAllMediaLibraryLibraryType._Serializer.class)
public class GetAllMediaLibraryLibraryType {
public static final GetAllMediaLibraryLibraryType Movie = new GetAllMediaLibraryLibraryType("movie");
public static final GetAllMediaLibraryLibraryType TvShow = new GetAllMediaLibraryLibraryType("show");
public static final GetAllMediaLibraryLibraryType Season = new GetAllMediaLibraryLibraryType("season");
public static final GetAllMediaLibraryLibraryType Episode = new GetAllMediaLibraryLibraryType("episode");
public static final GetAllMediaLibraryLibraryType Artist = new GetAllMediaLibraryLibraryType("artist");
public static final GetAllMediaLibraryLibraryType Album = new GetAllMediaLibraryLibraryType("album");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetAllMediaLibraryLibraryType> values = createValuesMap();
private static final Map<String, GetAllMediaLibraryLibraryTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetAllMediaLibraryLibraryType(String value) {
this.value = value;
}
/**
* Returns a GetAllMediaLibraryLibraryType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetAllMediaLibraryLibraryType
*/
public static GetAllMediaLibraryLibraryType of(String value) {
synchronized (GetAllMediaLibraryLibraryType.class) {
return values.computeIfAbsent(value, v -> new GetAllMediaLibraryLibraryType(v));
}
}
public String value() {
return value;
}
public static Optional<GetAllMediaLibraryLibraryType> fromValue(String value) {
for (GetAllMediaLibraryLibraryType o: GetAllMediaLibraryLibraryType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetAllMediaLibraryLibraryTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetAllMediaLibraryLibraryType other = (GetAllMediaLibraryLibraryType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetAllMediaLibraryLibraryType [value=" + value + "]";
}
// return an array just like an enum
public static GetAllMediaLibraryLibraryType[] values() {
synchronized (GetAllMediaLibraryLibraryType.class) {
return values.values().toArray(new GetAllMediaLibraryLibraryType[] {});
}
}
private static final Map<String, GetAllMediaLibraryLibraryType> createValuesMap() {
Map<String, GetAllMediaLibraryLibraryType> map = new LinkedHashMap<>();
map.put("movie", Movie);
map.put("show", TvShow);
map.put("season", Season);
map.put("episode", Episode);
map.put("artist", Artist);
map.put("album", Album);
return map;
}
private static final Map<String, GetAllMediaLibraryLibraryTypeEnum> createEnumsMap() {
Map<String, GetAllMediaLibraryLibraryTypeEnum> map = new HashMap<>();
map.put("movie", GetAllMediaLibraryLibraryTypeEnum.Movie);
map.put("show", GetAllMediaLibraryLibraryTypeEnum.TvShow);
map.put("season", GetAllMediaLibraryLibraryTypeEnum.Season);
map.put("episode", GetAllMediaLibraryLibraryTypeEnum.Episode);
map.put("artist", GetAllMediaLibraryLibraryTypeEnum.Artist);
map.put("album", GetAllMediaLibraryLibraryTypeEnum.Album);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetAllMediaLibraryLibraryType> {
protected _Serializer() {
super(GetAllMediaLibraryLibraryType.class);
}
@Override
public void serialize(GetAllMediaLibraryLibraryType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetAllMediaLibraryLibraryType> {
protected _Deserializer() {
super(GetAllMediaLibraryLibraryType.class);
}
@Override
public GetAllMediaLibraryLibraryType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetAllMediaLibraryLibraryType.of(v);
}
}
public enum GetAllMediaLibraryLibraryTypeEnum {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album"),;
private final String value;
private GetAllMediaLibraryLibraryTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetAllMediaLibraryQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetAllMediaLibraryQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetAllMediaLibraryQueryParamType._Deserializer.class)
@JsonSerialize(using = GetAllMediaLibraryQueryParamType._Serializer.class)
public class GetAllMediaLibraryQueryParamType {
public static final GetAllMediaLibraryQueryParamType Movie = new GetAllMediaLibraryQueryParamType(1L);
public static final GetAllMediaLibraryQueryParamType TvShow = new GetAllMediaLibraryQueryParamType(2L);
public static final GetAllMediaLibraryQueryParamType Season = new GetAllMediaLibraryQueryParamType(3L);
public static final GetAllMediaLibraryQueryParamType Episode = new GetAllMediaLibraryQueryParamType(4L);
public static final GetAllMediaLibraryQueryParamType Audio = new GetAllMediaLibraryQueryParamType(8L);
public static final GetAllMediaLibraryQueryParamType Album = new GetAllMediaLibraryQueryParamType(9L);
public static final GetAllMediaLibraryQueryParamType Track = new GetAllMediaLibraryQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetAllMediaLibraryQueryParamType> values = createValuesMap();
private static final Map<Long, GetAllMediaLibraryQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetAllMediaLibraryQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetAllMediaLibraryQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetAllMediaLibraryQueryParamType
*/
public static GetAllMediaLibraryQueryParamType of(long value) {
synchronized (GetAllMediaLibraryQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetAllMediaLibraryQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetAllMediaLibraryQueryParamType> fromValue(long value) {
for (GetAllMediaLibraryQueryParamType o: GetAllMediaLibraryQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetAllMediaLibraryQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetAllMediaLibraryQueryParamType other = (GetAllMediaLibraryQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetAllMediaLibraryQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetAllMediaLibraryQueryParamType[] values() {
synchronized (GetAllMediaLibraryQueryParamType.class) {
return values.values().toArray(new GetAllMediaLibraryQueryParamType[] {});
}
}
private static final Map<Long, GetAllMediaLibraryQueryParamType> createValuesMap() {
Map<Long, GetAllMediaLibraryQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetAllMediaLibraryQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetAllMediaLibraryQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetAllMediaLibraryQueryParamTypeEnum.Movie);
map.put(2L, GetAllMediaLibraryQueryParamTypeEnum.TvShow);
map.put(3L, GetAllMediaLibraryQueryParamTypeEnum.Season);
map.put(4L, GetAllMediaLibraryQueryParamTypeEnum.Episode);
map.put(8L, GetAllMediaLibraryQueryParamTypeEnum.Audio);
map.put(9L, GetAllMediaLibraryQueryParamTypeEnum.Album);
map.put(10L, GetAllMediaLibraryQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetAllMediaLibraryQueryParamType> {
protected _Serializer() {
super(GetAllMediaLibraryQueryParamType.class);
}
@Override
public void serialize(GetAllMediaLibraryQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetAllMediaLibraryQueryParamType> {
protected _Deserializer() {
super(GetAllMediaLibraryQueryParamType.class);
}
@Override
public GetAllMediaLibraryQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetAllMediaLibraryQueryParamType.of(v);
}
}
public enum GetAllMediaLibraryQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetAllMediaLibraryQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetCountriesLibraryQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetCountriesLibraryQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetCountriesLibraryQueryParamType._Deserializer.class)
@JsonSerialize(using = GetCountriesLibraryQueryParamType._Serializer.class)
public class GetCountriesLibraryQueryParamType {
public static final GetCountriesLibraryQueryParamType Movie = new GetCountriesLibraryQueryParamType(1L);
public static final GetCountriesLibraryQueryParamType TvShow = new GetCountriesLibraryQueryParamType(2L);
public static final GetCountriesLibraryQueryParamType Season = new GetCountriesLibraryQueryParamType(3L);
public static final GetCountriesLibraryQueryParamType Episode = new GetCountriesLibraryQueryParamType(4L);
public static final GetCountriesLibraryQueryParamType Audio = new GetCountriesLibraryQueryParamType(8L);
public static final GetCountriesLibraryQueryParamType Album = new GetCountriesLibraryQueryParamType(9L);
public static final GetCountriesLibraryQueryParamType Track = new GetCountriesLibraryQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetCountriesLibraryQueryParamType> values = createValuesMap();
private static final Map<Long, GetCountriesLibraryQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetCountriesLibraryQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetCountriesLibraryQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetCountriesLibraryQueryParamType
*/
public static GetCountriesLibraryQueryParamType of(long value) {
synchronized (GetCountriesLibraryQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetCountriesLibraryQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetCountriesLibraryQueryParamType> fromValue(long value) {
for (GetCountriesLibraryQueryParamType o: GetCountriesLibraryQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetCountriesLibraryQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetCountriesLibraryQueryParamType other = (GetCountriesLibraryQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetCountriesLibraryQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetCountriesLibraryQueryParamType[] values() {
synchronized (GetCountriesLibraryQueryParamType.class) {
return values.values().toArray(new GetCountriesLibraryQueryParamType[] {});
}
}
private static final Map<Long, GetCountriesLibraryQueryParamType> createValuesMap() {
Map<Long, GetCountriesLibraryQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetCountriesLibraryQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetCountriesLibraryQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetCountriesLibraryQueryParamTypeEnum.Movie);
map.put(2L, GetCountriesLibraryQueryParamTypeEnum.TvShow);
map.put(3L, GetCountriesLibraryQueryParamTypeEnum.Season);
map.put(4L, GetCountriesLibraryQueryParamTypeEnum.Episode);
map.put(8L, GetCountriesLibraryQueryParamTypeEnum.Audio);
map.put(9L, GetCountriesLibraryQueryParamTypeEnum.Album);
map.put(10L, GetCountriesLibraryQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetCountriesLibraryQueryParamType> {
protected _Serializer() {
super(GetCountriesLibraryQueryParamType.class);
}
@Override
public void serialize(GetCountriesLibraryQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetCountriesLibraryQueryParamType> {
protected _Deserializer() {
super(GetCountriesLibraryQueryParamType.class);
}
@Override
public GetCountriesLibraryQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetCountriesLibraryQueryParamType.of(v);
}
}
public enum GetCountriesLibraryQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetCountriesLibraryQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetGenresLibraryQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetGenresLibraryQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetGenresLibraryQueryParamType._Deserializer.class)
@JsonSerialize(using = GetGenresLibraryQueryParamType._Serializer.class)
public class GetGenresLibraryQueryParamType {
public static final GetGenresLibraryQueryParamType Movie = new GetGenresLibraryQueryParamType(1L);
public static final GetGenresLibraryQueryParamType TvShow = new GetGenresLibraryQueryParamType(2L);
public static final GetGenresLibraryQueryParamType Season = new GetGenresLibraryQueryParamType(3L);
public static final GetGenresLibraryQueryParamType Episode = new GetGenresLibraryQueryParamType(4L);
public static final GetGenresLibraryQueryParamType Audio = new GetGenresLibraryQueryParamType(8L);
public static final GetGenresLibraryQueryParamType Album = new GetGenresLibraryQueryParamType(9L);
public static final GetGenresLibraryQueryParamType Track = new GetGenresLibraryQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetGenresLibraryQueryParamType> values = createValuesMap();
private static final Map<Long, GetGenresLibraryQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetGenresLibraryQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetGenresLibraryQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetGenresLibraryQueryParamType
*/
public static GetGenresLibraryQueryParamType of(long value) {
synchronized (GetGenresLibraryQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetGenresLibraryQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetGenresLibraryQueryParamType> fromValue(long value) {
for (GetGenresLibraryQueryParamType o: GetGenresLibraryQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetGenresLibraryQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetGenresLibraryQueryParamType other = (GetGenresLibraryQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetGenresLibraryQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetGenresLibraryQueryParamType[] values() {
synchronized (GetGenresLibraryQueryParamType.class) {
return values.values().toArray(new GetGenresLibraryQueryParamType[] {});
}
}
private static final Map<Long, GetGenresLibraryQueryParamType> createValuesMap() {
Map<Long, GetGenresLibraryQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetGenresLibraryQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetGenresLibraryQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetGenresLibraryQueryParamTypeEnum.Movie);
map.put(2L, GetGenresLibraryQueryParamTypeEnum.TvShow);
map.put(3L, GetGenresLibraryQueryParamTypeEnum.Season);
map.put(4L, GetGenresLibraryQueryParamTypeEnum.Episode);
map.put(8L, GetGenresLibraryQueryParamTypeEnum.Audio);
map.put(9L, GetGenresLibraryQueryParamTypeEnum.Album);
map.put(10L, GetGenresLibraryQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetGenresLibraryQueryParamType> {
protected _Serializer() {
super(GetGenresLibraryQueryParamType.class);
}
@Override
public void serialize(GetGenresLibraryQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetGenresLibraryQueryParamType> {
protected _Deserializer() {
super(GetGenresLibraryQueryParamType.class);
}
@Override
public GetGenresLibraryQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetGenresLibraryQueryParamType.of(v);
}
}
public enum GetGenresLibraryQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetGenresLibraryQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -19,7 +19,7 @@ import java.util.Optional;
public class GetLibraryDetailsRequest {
/**
* Whether or not to include details for a section (types, filters, and sorts).
* Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
@SpeakeasyMetadata("queryParam:style=form,explode=true,name=includeDetails")
@@ -48,7 +48,7 @@ public class GetLibraryDetailsRequest {
}
/**
* Whether or not to include details for a section (types, filters, and sorts).
* Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
@SuppressWarnings("unchecked")
@@ -71,7 +71,7 @@ public class GetLibraryDetailsRequest {
}
/**
* Whether or not to include details for a section (types, filters, and sorts).
* Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
public GetLibraryDetailsRequest withIncludeDetails(IncludeDetails includeDetails) {
@@ -81,7 +81,7 @@ public class GetLibraryDetailsRequest {
}
/**
* Whether or not to include details for a section (types, filters, and sorts).
* Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
public GetLibraryDetailsRequest withIncludeDetails(Optional<? extends IncludeDetails> includeDetails) {
@@ -140,7 +140,7 @@ public class GetLibraryDetailsRequest {
}
/**
* Whether or not to include details for a section (types, filters, and sorts).
* Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
public Builder includeDetails(IncludeDetails includeDetails) {
@@ -150,7 +150,7 @@ public class GetLibraryDetailsRequest {
}
/**
* Whether or not to include details for a section (types, filters, and sorts).
* Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
public Builder includeDetails(Optional<? extends IncludeDetails> includeDetails) {

View File

@@ -3,35 +3,185 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum GetLibraryItemsLibraryResponse200Type {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = GetLibraryItemsLibraryResponse200Type._Deserializer.class)
@JsonSerialize(using = GetLibraryItemsLibraryResponse200Type._Serializer.class)
public class GetLibraryItemsLibraryResponse200Type {
public static final GetLibraryItemsLibraryResponse200Type COVER_POSTER = new GetLibraryItemsLibraryResponse200Type("coverPoster");
public static final GetLibraryItemsLibraryResponse200Type BACKGROUND = new GetLibraryItemsLibraryResponse200Type("background");
public static final GetLibraryItemsLibraryResponse200Type SNAPSHOT = new GetLibraryItemsLibraryResponse200Type("snapshot");
public static final GetLibraryItemsLibraryResponse200Type CLEAR_LOGO = new GetLibraryItemsLibraryResponse200Type("clearLogo");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetLibraryItemsLibraryResponse200Type> values = createValuesMap();
private static final Map<String, GetLibraryItemsLibraryResponse200TypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetLibraryItemsLibraryResponse200Type(String value) {
this.value = value;
}
/**
* Returns a GetLibraryItemsLibraryResponse200Type with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetLibraryItemsLibraryResponse200Type
*/
public static GetLibraryItemsLibraryResponse200Type of(String value) {
synchronized (GetLibraryItemsLibraryResponse200Type.class) {
return values.computeIfAbsent(value, v -> new GetLibraryItemsLibraryResponse200Type(v));
}
}
public String value() {
return value;
}
public static Optional<GetLibraryItemsLibraryResponse200Type> fromValue(String value) {
for (GetLibraryItemsLibraryResponse200Type o: GetLibraryItemsLibraryResponse200Type.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetLibraryItemsLibraryResponse200TypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetLibraryItemsLibraryResponse200Type other = (GetLibraryItemsLibraryResponse200Type) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetLibraryItemsLibraryResponse200Type [value=" + value + "]";
}
// return an array just like an enum
public static GetLibraryItemsLibraryResponse200Type[] values() {
synchronized (GetLibraryItemsLibraryResponse200Type.class) {
return values.values().toArray(new GetLibraryItemsLibraryResponse200Type[] {});
}
}
private static final Map<String, GetLibraryItemsLibraryResponse200Type> createValuesMap() {
Map<String, GetLibraryItemsLibraryResponse200Type> map = new LinkedHashMap<>();
map.put("coverPoster", COVER_POSTER);
map.put("background", BACKGROUND);
map.put("snapshot", SNAPSHOT);
map.put("clearLogo", CLEAR_LOGO);
return map;
}
private static final Map<String, GetLibraryItemsLibraryResponse200TypeEnum> createEnumsMap() {
Map<String, GetLibraryItemsLibraryResponse200TypeEnum> map = new HashMap<>();
map.put("coverPoster", GetLibraryItemsLibraryResponse200TypeEnum.COVER_POSTER);
map.put("background", GetLibraryItemsLibraryResponse200TypeEnum.BACKGROUND);
map.put("snapshot", GetLibraryItemsLibraryResponse200TypeEnum.SNAPSHOT);
map.put("clearLogo", GetLibraryItemsLibraryResponse200TypeEnum.CLEAR_LOGO);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetLibraryItemsLibraryResponse200Type> {
protected _Serializer() {
super(GetLibraryItemsLibraryResponse200Type.class);
}
@Override
public void serialize(GetLibraryItemsLibraryResponse200Type value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetLibraryItemsLibraryResponse200Type> {
protected _Deserializer() {
super(GetLibraryItemsLibraryResponse200Type.class);
}
@Override
public GetLibraryItemsLibraryResponse200Type deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetLibraryItemsLibraryResponse200Type.of(v);
}
}
public enum GetLibraryItemsLibraryResponse200TypeEnum {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo"),;
private final String value;
private GetLibraryItemsLibraryResponse200TypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,42 +3,198 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetLibraryItemsLibraryType
*
* <p>The type of media content
*/
public enum GetLibraryItemsLibraryType {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album");
@JsonDeserialize(using = GetLibraryItemsLibraryType._Deserializer.class)
@JsonSerialize(using = GetLibraryItemsLibraryType._Serializer.class)
public class GetLibraryItemsLibraryType {
public static final GetLibraryItemsLibraryType Movie = new GetLibraryItemsLibraryType("movie");
public static final GetLibraryItemsLibraryType TvShow = new GetLibraryItemsLibraryType("show");
public static final GetLibraryItemsLibraryType Season = new GetLibraryItemsLibraryType("season");
public static final GetLibraryItemsLibraryType Episode = new GetLibraryItemsLibraryType("episode");
public static final GetLibraryItemsLibraryType Artist = new GetLibraryItemsLibraryType("artist");
public static final GetLibraryItemsLibraryType Album = new GetLibraryItemsLibraryType("album");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetLibraryItemsLibraryType> values = createValuesMap();
private static final Map<String, GetLibraryItemsLibraryTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetLibraryItemsLibraryType(String value) {
this.value = value;
}
/**
* Returns a GetLibraryItemsLibraryType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetLibraryItemsLibraryType
*/
public static GetLibraryItemsLibraryType of(String value) {
synchronized (GetLibraryItemsLibraryType.class) {
return values.computeIfAbsent(value, v -> new GetLibraryItemsLibraryType(v));
}
}
public String value() {
return value;
}
public static Optional<GetLibraryItemsLibraryType> fromValue(String value) {
for (GetLibraryItemsLibraryType o: GetLibraryItemsLibraryType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetLibraryItemsLibraryTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetLibraryItemsLibraryType other = (GetLibraryItemsLibraryType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetLibraryItemsLibraryType [value=" + value + "]";
}
// return an array just like an enum
public static GetLibraryItemsLibraryType[] values() {
synchronized (GetLibraryItemsLibraryType.class) {
return values.values().toArray(new GetLibraryItemsLibraryType[] {});
}
}
private static final Map<String, GetLibraryItemsLibraryType> createValuesMap() {
Map<String, GetLibraryItemsLibraryType> map = new LinkedHashMap<>();
map.put("movie", Movie);
map.put("show", TvShow);
map.put("season", Season);
map.put("episode", Episode);
map.put("artist", Artist);
map.put("album", Album);
return map;
}
private static final Map<String, GetLibraryItemsLibraryTypeEnum> createEnumsMap() {
Map<String, GetLibraryItemsLibraryTypeEnum> map = new HashMap<>();
map.put("movie", GetLibraryItemsLibraryTypeEnum.Movie);
map.put("show", GetLibraryItemsLibraryTypeEnum.TvShow);
map.put("season", GetLibraryItemsLibraryTypeEnum.Season);
map.put("episode", GetLibraryItemsLibraryTypeEnum.Episode);
map.put("artist", GetLibraryItemsLibraryTypeEnum.Artist);
map.put("album", GetLibraryItemsLibraryTypeEnum.Album);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetLibraryItemsLibraryType> {
protected _Serializer() {
super(GetLibraryItemsLibraryType.class);
}
@Override
public void serialize(GetLibraryItemsLibraryType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetLibraryItemsLibraryType> {
protected _Deserializer() {
super(GetLibraryItemsLibraryType.class);
}
@Override
public GetLibraryItemsLibraryType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetLibraryItemsLibraryType.of(v);
}
}
public enum GetLibraryItemsLibraryTypeEnum {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album"),;
private final String value;
private GetLibraryItemsLibraryTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetLibraryItemsQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetLibraryItemsQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetLibraryItemsQueryParamType._Deserializer.class)
@JsonSerialize(using = GetLibraryItemsQueryParamType._Serializer.class)
public class GetLibraryItemsQueryParamType {
public static final GetLibraryItemsQueryParamType Movie = new GetLibraryItemsQueryParamType(1L);
public static final GetLibraryItemsQueryParamType TvShow = new GetLibraryItemsQueryParamType(2L);
public static final GetLibraryItemsQueryParamType Season = new GetLibraryItemsQueryParamType(3L);
public static final GetLibraryItemsQueryParamType Episode = new GetLibraryItemsQueryParamType(4L);
public static final GetLibraryItemsQueryParamType Audio = new GetLibraryItemsQueryParamType(8L);
public static final GetLibraryItemsQueryParamType Album = new GetLibraryItemsQueryParamType(9L);
public static final GetLibraryItemsQueryParamType Track = new GetLibraryItemsQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetLibraryItemsQueryParamType> values = createValuesMap();
private static final Map<Long, GetLibraryItemsQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetLibraryItemsQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetLibraryItemsQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetLibraryItemsQueryParamType
*/
public static GetLibraryItemsQueryParamType of(long value) {
synchronized (GetLibraryItemsQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetLibraryItemsQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetLibraryItemsQueryParamType> fromValue(long value) {
for (GetLibraryItemsQueryParamType o: GetLibraryItemsQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetLibraryItemsQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetLibraryItemsQueryParamType other = (GetLibraryItemsQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetLibraryItemsQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetLibraryItemsQueryParamType[] values() {
synchronized (GetLibraryItemsQueryParamType.class) {
return values.values().toArray(new GetLibraryItemsQueryParamType[] {});
}
}
private static final Map<Long, GetLibraryItemsQueryParamType> createValuesMap() {
Map<Long, GetLibraryItemsQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetLibraryItemsQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetLibraryItemsQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetLibraryItemsQueryParamTypeEnum.Movie);
map.put(2L, GetLibraryItemsQueryParamTypeEnum.TvShow);
map.put(3L, GetLibraryItemsQueryParamTypeEnum.Season);
map.put(4L, GetLibraryItemsQueryParamTypeEnum.Episode);
map.put(8L, GetLibraryItemsQueryParamTypeEnum.Audio);
map.put(9L, GetLibraryItemsQueryParamTypeEnum.Album);
map.put(10L, GetLibraryItemsQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetLibraryItemsQueryParamType> {
protected _Serializer() {
super(GetLibraryItemsQueryParamType.class);
}
@Override
public void serialize(GetLibraryItemsQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetLibraryItemsQueryParamType> {
protected _Deserializer() {
super(GetLibraryItemsQueryParamType.class);
}
@Override
public GetLibraryItemsQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetLibraryItemsQueryParamType.of(v);
}
}
public enum GetLibraryItemsQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetLibraryItemsQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetPlaylistContentsQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetPlaylistContentsQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetPlaylistContentsQueryParamType._Deserializer.class)
@JsonSerialize(using = GetPlaylistContentsQueryParamType._Serializer.class)
public class GetPlaylistContentsQueryParamType {
public static final GetPlaylistContentsQueryParamType Movie = new GetPlaylistContentsQueryParamType(1L);
public static final GetPlaylistContentsQueryParamType TvShow = new GetPlaylistContentsQueryParamType(2L);
public static final GetPlaylistContentsQueryParamType Season = new GetPlaylistContentsQueryParamType(3L);
public static final GetPlaylistContentsQueryParamType Episode = new GetPlaylistContentsQueryParamType(4L);
public static final GetPlaylistContentsQueryParamType Audio = new GetPlaylistContentsQueryParamType(8L);
public static final GetPlaylistContentsQueryParamType Album = new GetPlaylistContentsQueryParamType(9L);
public static final GetPlaylistContentsQueryParamType Track = new GetPlaylistContentsQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetPlaylistContentsQueryParamType> values = createValuesMap();
private static final Map<Long, GetPlaylistContentsQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetPlaylistContentsQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetPlaylistContentsQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetPlaylistContentsQueryParamType
*/
public static GetPlaylistContentsQueryParamType of(long value) {
synchronized (GetPlaylistContentsQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetPlaylistContentsQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetPlaylistContentsQueryParamType> fromValue(long value) {
for (GetPlaylistContentsQueryParamType o: GetPlaylistContentsQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetPlaylistContentsQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetPlaylistContentsQueryParamType other = (GetPlaylistContentsQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetPlaylistContentsQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetPlaylistContentsQueryParamType[] values() {
synchronized (GetPlaylistContentsQueryParamType.class) {
return values.values().toArray(new GetPlaylistContentsQueryParamType[] {});
}
}
private static final Map<Long, GetPlaylistContentsQueryParamType> createValuesMap() {
Map<Long, GetPlaylistContentsQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetPlaylistContentsQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetPlaylistContentsQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetPlaylistContentsQueryParamTypeEnum.Movie);
map.put(2L, GetPlaylistContentsQueryParamTypeEnum.TvShow);
map.put(3L, GetPlaylistContentsQueryParamTypeEnum.Season);
map.put(4L, GetPlaylistContentsQueryParamTypeEnum.Episode);
map.put(8L, GetPlaylistContentsQueryParamTypeEnum.Audio);
map.put(9L, GetPlaylistContentsQueryParamTypeEnum.Album);
map.put(10L, GetPlaylistContentsQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetPlaylistContentsQueryParamType> {
protected _Serializer() {
super(GetPlaylistContentsQueryParamType.class);
}
@Override
public void serialize(GetPlaylistContentsQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetPlaylistContentsQueryParamType> {
protected _Deserializer() {
super(GetPlaylistContentsQueryParamType.class);
}
@Override
public GetPlaylistContentsQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetPlaylistContentsQueryParamType.of(v);
}
}
public enum GetPlaylistContentsQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetPlaylistContentsQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,35 +3,185 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum GetRecentlyAddedHubsResponseType {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = GetRecentlyAddedHubsResponseType._Deserializer.class)
@JsonSerialize(using = GetRecentlyAddedHubsResponseType._Serializer.class)
public class GetRecentlyAddedHubsResponseType {
public static final GetRecentlyAddedHubsResponseType COVER_POSTER = new GetRecentlyAddedHubsResponseType("coverPoster");
public static final GetRecentlyAddedHubsResponseType BACKGROUND = new GetRecentlyAddedHubsResponseType("background");
public static final GetRecentlyAddedHubsResponseType SNAPSHOT = new GetRecentlyAddedHubsResponseType("snapshot");
public static final GetRecentlyAddedHubsResponseType CLEAR_LOGO = new GetRecentlyAddedHubsResponseType("clearLogo");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetRecentlyAddedHubsResponseType> values = createValuesMap();
private static final Map<String, GetRecentlyAddedHubsResponseTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetRecentlyAddedHubsResponseType(String value) {
this.value = value;
}
/**
* Returns a GetRecentlyAddedHubsResponseType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetRecentlyAddedHubsResponseType
*/
public static GetRecentlyAddedHubsResponseType of(String value) {
synchronized (GetRecentlyAddedHubsResponseType.class) {
return values.computeIfAbsent(value, v -> new GetRecentlyAddedHubsResponseType(v));
}
}
public String value() {
return value;
}
public static Optional<GetRecentlyAddedHubsResponseType> fromValue(String value) {
for (GetRecentlyAddedHubsResponseType o: GetRecentlyAddedHubsResponseType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetRecentlyAddedHubsResponseTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetRecentlyAddedHubsResponseType other = (GetRecentlyAddedHubsResponseType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetRecentlyAddedHubsResponseType [value=" + value + "]";
}
// return an array just like an enum
public static GetRecentlyAddedHubsResponseType[] values() {
synchronized (GetRecentlyAddedHubsResponseType.class) {
return values.values().toArray(new GetRecentlyAddedHubsResponseType[] {});
}
}
private static final Map<String, GetRecentlyAddedHubsResponseType> createValuesMap() {
Map<String, GetRecentlyAddedHubsResponseType> map = new LinkedHashMap<>();
map.put("coverPoster", COVER_POSTER);
map.put("background", BACKGROUND);
map.put("snapshot", SNAPSHOT);
map.put("clearLogo", CLEAR_LOGO);
return map;
}
private static final Map<String, GetRecentlyAddedHubsResponseTypeEnum> createEnumsMap() {
Map<String, GetRecentlyAddedHubsResponseTypeEnum> map = new HashMap<>();
map.put("coverPoster", GetRecentlyAddedHubsResponseTypeEnum.COVER_POSTER);
map.put("background", GetRecentlyAddedHubsResponseTypeEnum.BACKGROUND);
map.put("snapshot", GetRecentlyAddedHubsResponseTypeEnum.SNAPSHOT);
map.put("clearLogo", GetRecentlyAddedHubsResponseTypeEnum.CLEAR_LOGO);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetRecentlyAddedHubsResponseType> {
protected _Serializer() {
super(GetRecentlyAddedHubsResponseType.class);
}
@Override
public void serialize(GetRecentlyAddedHubsResponseType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetRecentlyAddedHubsResponseType> {
protected _Deserializer() {
super(GetRecentlyAddedHubsResponseType.class);
}
@Override
public GetRecentlyAddedHubsResponseType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetRecentlyAddedHubsResponseType.of(v);
}
}
public enum GetRecentlyAddedHubsResponseTypeEnum {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo"),;
private final String value;
private GetRecentlyAddedHubsResponseTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,42 +3,198 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetRecentlyAddedHubsType
*
* <p>The type of media content
*/
public enum GetRecentlyAddedHubsType {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album");
@JsonDeserialize(using = GetRecentlyAddedHubsType._Deserializer.class)
@JsonSerialize(using = GetRecentlyAddedHubsType._Serializer.class)
public class GetRecentlyAddedHubsType {
public static final GetRecentlyAddedHubsType Movie = new GetRecentlyAddedHubsType("movie");
public static final GetRecentlyAddedHubsType TvShow = new GetRecentlyAddedHubsType("show");
public static final GetRecentlyAddedHubsType Season = new GetRecentlyAddedHubsType("season");
public static final GetRecentlyAddedHubsType Episode = new GetRecentlyAddedHubsType("episode");
public static final GetRecentlyAddedHubsType Artist = new GetRecentlyAddedHubsType("artist");
public static final GetRecentlyAddedHubsType Album = new GetRecentlyAddedHubsType("album");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetRecentlyAddedHubsType> values = createValuesMap();
private static final Map<String, GetRecentlyAddedHubsTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetRecentlyAddedHubsType(String value) {
this.value = value;
}
/**
* Returns a GetRecentlyAddedHubsType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetRecentlyAddedHubsType
*/
public static GetRecentlyAddedHubsType of(String value) {
synchronized (GetRecentlyAddedHubsType.class) {
return values.computeIfAbsent(value, v -> new GetRecentlyAddedHubsType(v));
}
}
public String value() {
return value;
}
public static Optional<GetRecentlyAddedHubsType> fromValue(String value) {
for (GetRecentlyAddedHubsType o: GetRecentlyAddedHubsType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetRecentlyAddedHubsTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetRecentlyAddedHubsType other = (GetRecentlyAddedHubsType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetRecentlyAddedHubsType [value=" + value + "]";
}
// return an array just like an enum
public static GetRecentlyAddedHubsType[] values() {
synchronized (GetRecentlyAddedHubsType.class) {
return values.values().toArray(new GetRecentlyAddedHubsType[] {});
}
}
private static final Map<String, GetRecentlyAddedHubsType> createValuesMap() {
Map<String, GetRecentlyAddedHubsType> map = new LinkedHashMap<>();
map.put("movie", Movie);
map.put("show", TvShow);
map.put("season", Season);
map.put("episode", Episode);
map.put("artist", Artist);
map.put("album", Album);
return map;
}
private static final Map<String, GetRecentlyAddedHubsTypeEnum> createEnumsMap() {
Map<String, GetRecentlyAddedHubsTypeEnum> map = new HashMap<>();
map.put("movie", GetRecentlyAddedHubsTypeEnum.Movie);
map.put("show", GetRecentlyAddedHubsTypeEnum.TvShow);
map.put("season", GetRecentlyAddedHubsTypeEnum.Season);
map.put("episode", GetRecentlyAddedHubsTypeEnum.Episode);
map.put("artist", GetRecentlyAddedHubsTypeEnum.Artist);
map.put("album", GetRecentlyAddedHubsTypeEnum.Album);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetRecentlyAddedHubsType> {
protected _Serializer() {
super(GetRecentlyAddedHubsType.class);
}
@Override
public void serialize(GetRecentlyAddedHubsType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetRecentlyAddedHubsType> {
protected _Deserializer() {
super(GetRecentlyAddedHubsType.class);
}
@Override
public GetRecentlyAddedHubsType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetRecentlyAddedHubsType.of(v);
}
}
public enum GetRecentlyAddedHubsTypeEnum {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album"),;
private final String value;
private GetRecentlyAddedHubsTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchAllLibrariesEnableCreditsMarkerGeneration
*
* <p>Setting that indicates if credits markers detection is enabled. (-1 = Library default, 0 = Disabled).
*/
public enum GetSearchAllLibrariesEnableCreditsMarkerGeneration {
LibraryDefault("-1"),
Disabled("0");
@JsonDeserialize(using = GetSearchAllLibrariesEnableCreditsMarkerGeneration._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesEnableCreditsMarkerGeneration._Serializer.class)
public class GetSearchAllLibrariesEnableCreditsMarkerGeneration {
public static final GetSearchAllLibrariesEnableCreditsMarkerGeneration LibraryDefault = new GetSearchAllLibrariesEnableCreditsMarkerGeneration("-1");
public static final GetSearchAllLibrariesEnableCreditsMarkerGeneration Disabled = new GetSearchAllLibrariesEnableCreditsMarkerGeneration("0");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesEnableCreditsMarkerGeneration> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetSearchAllLibrariesEnableCreditsMarkerGeneration(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesEnableCreditsMarkerGeneration with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesEnableCreditsMarkerGeneration
*/
public static GetSearchAllLibrariesEnableCreditsMarkerGeneration of(String value) {
synchronized (GetSearchAllLibrariesEnableCreditsMarkerGeneration.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesEnableCreditsMarkerGeneration(v));
}
}
public String value() {
return value;
}
public static Optional<GetSearchAllLibrariesEnableCreditsMarkerGeneration> fromValue(String value) {
for (GetSearchAllLibrariesEnableCreditsMarkerGeneration o: GetSearchAllLibrariesEnableCreditsMarkerGeneration.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesEnableCreditsMarkerGeneration other = (GetSearchAllLibrariesEnableCreditsMarkerGeneration) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesEnableCreditsMarkerGeneration [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesEnableCreditsMarkerGeneration[] values() {
synchronized (GetSearchAllLibrariesEnableCreditsMarkerGeneration.class) {
return values.values().toArray(new GetSearchAllLibrariesEnableCreditsMarkerGeneration[] {});
}
}
private static final Map<String, GetSearchAllLibrariesEnableCreditsMarkerGeneration> createValuesMap() {
Map<String, GetSearchAllLibrariesEnableCreditsMarkerGeneration> map = new LinkedHashMap<>();
map.put("-1", LibraryDefault);
map.put("0", Disabled);
return map;
}
private static final Map<String, GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum> map = new HashMap<>();
map.put("-1", GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum.LibraryDefault);
map.put("0", GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum.Disabled);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesEnableCreditsMarkerGeneration> {
protected _Serializer() {
super(GetSearchAllLibrariesEnableCreditsMarkerGeneration.class);
}
@Override
public void serialize(GetSearchAllLibrariesEnableCreditsMarkerGeneration value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesEnableCreditsMarkerGeneration> {
protected _Deserializer() {
super(GetSearchAllLibrariesEnableCreditsMarkerGeneration.class);
}
@Override
public GetSearchAllLibrariesEnableCreditsMarkerGeneration deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesEnableCreditsMarkerGeneration.of(v);
}
}
public enum GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum {
LibraryDefault("-1"),
Disabled("0"),;
private final String value;
private GetSearchAllLibrariesEnableCreditsMarkerGenerationEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchAllLibrariesEpisodeSort
*
* <p>Setting that indicates how episodes are sorted for the show. (-1 = Library default, 0 = Oldest first, 1 = Newest first).
*/
public enum GetSearchAllLibrariesEpisodeSort {
LibraryDefault("-1"),
OldestFirst("0"),
NewestFirst("1");
@JsonDeserialize(using = GetSearchAllLibrariesEpisodeSort._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesEpisodeSort._Serializer.class)
public class GetSearchAllLibrariesEpisodeSort {
public static final GetSearchAllLibrariesEpisodeSort LibraryDefault = new GetSearchAllLibrariesEpisodeSort("-1");
public static final GetSearchAllLibrariesEpisodeSort OldestFirst = new GetSearchAllLibrariesEpisodeSort("0");
public static final GetSearchAllLibrariesEpisodeSort NewestFirst = new GetSearchAllLibrariesEpisodeSort("1");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesEpisodeSort> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesEpisodeSortEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetSearchAllLibrariesEpisodeSort(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesEpisodeSort with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesEpisodeSort
*/
public static GetSearchAllLibrariesEpisodeSort of(String value) {
synchronized (GetSearchAllLibrariesEpisodeSort.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesEpisodeSort(v));
}
}
public String value() {
return value;
}
public static Optional<GetSearchAllLibrariesEpisodeSort> fromValue(String value) {
for (GetSearchAllLibrariesEpisodeSort o: GetSearchAllLibrariesEpisodeSort.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchAllLibrariesEpisodeSortEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesEpisodeSort other = (GetSearchAllLibrariesEpisodeSort) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesEpisodeSort [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesEpisodeSort[] values() {
synchronized (GetSearchAllLibrariesEpisodeSort.class) {
return values.values().toArray(new GetSearchAllLibrariesEpisodeSort[] {});
}
}
private static final Map<String, GetSearchAllLibrariesEpisodeSort> createValuesMap() {
Map<String, GetSearchAllLibrariesEpisodeSort> map = new LinkedHashMap<>();
map.put("-1", LibraryDefault);
map.put("0", OldestFirst);
map.put("1", NewestFirst);
return map;
}
private static final Map<String, GetSearchAllLibrariesEpisodeSortEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesEpisodeSortEnum> map = new HashMap<>();
map.put("-1", GetSearchAllLibrariesEpisodeSortEnum.LibraryDefault);
map.put("0", GetSearchAllLibrariesEpisodeSortEnum.OldestFirst);
map.put("1", GetSearchAllLibrariesEpisodeSortEnum.NewestFirst);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesEpisodeSort> {
protected _Serializer() {
super(GetSearchAllLibrariesEpisodeSort.class);
}
@Override
public void serialize(GetSearchAllLibrariesEpisodeSort value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesEpisodeSort> {
protected _Deserializer() {
super(GetSearchAllLibrariesEpisodeSort.class);
}
@Override
public GetSearchAllLibrariesEpisodeSort deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesEpisodeSort.of(v);
}
}
public enum GetSearchAllLibrariesEpisodeSortEnum {
LibraryDefault("-1"),
OldestFirst("0"),
NewestFirst("1"),;
private final String value;
private GetSearchAllLibrariesEpisodeSortEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchAllLibrariesFlattenSeasons
*
* <p>Setting that indicates if seasons are set to hidden for the show. (-1 = Library default, 0 = Hide, 1 = Show).
*/
public enum GetSearchAllLibrariesFlattenSeasons {
LibraryDefault("-1"),
Hide("0"),
Show("1");
@JsonDeserialize(using = GetSearchAllLibrariesFlattenSeasons._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesFlattenSeasons._Serializer.class)
public class GetSearchAllLibrariesFlattenSeasons {
public static final GetSearchAllLibrariesFlattenSeasons LibraryDefault = new GetSearchAllLibrariesFlattenSeasons("-1");
public static final GetSearchAllLibrariesFlattenSeasons Hide = new GetSearchAllLibrariesFlattenSeasons("0");
public static final GetSearchAllLibrariesFlattenSeasons Show = new GetSearchAllLibrariesFlattenSeasons("1");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesFlattenSeasons> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesFlattenSeasonsEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetSearchAllLibrariesFlattenSeasons(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesFlattenSeasons with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesFlattenSeasons
*/
public static GetSearchAllLibrariesFlattenSeasons of(String value) {
synchronized (GetSearchAllLibrariesFlattenSeasons.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesFlattenSeasons(v));
}
}
public String value() {
return value;
}
public static Optional<GetSearchAllLibrariesFlattenSeasons> fromValue(String value) {
for (GetSearchAllLibrariesFlattenSeasons o: GetSearchAllLibrariesFlattenSeasons.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchAllLibrariesFlattenSeasonsEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesFlattenSeasons other = (GetSearchAllLibrariesFlattenSeasons) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesFlattenSeasons [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesFlattenSeasons[] values() {
synchronized (GetSearchAllLibrariesFlattenSeasons.class) {
return values.values().toArray(new GetSearchAllLibrariesFlattenSeasons[] {});
}
}
private static final Map<String, GetSearchAllLibrariesFlattenSeasons> createValuesMap() {
Map<String, GetSearchAllLibrariesFlattenSeasons> map = new LinkedHashMap<>();
map.put("-1", LibraryDefault);
map.put("0", Hide);
map.put("1", Show);
return map;
}
private static final Map<String, GetSearchAllLibrariesFlattenSeasonsEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesFlattenSeasonsEnum> map = new HashMap<>();
map.put("-1", GetSearchAllLibrariesFlattenSeasonsEnum.LibraryDefault);
map.put("0", GetSearchAllLibrariesFlattenSeasonsEnum.Hide);
map.put("1", GetSearchAllLibrariesFlattenSeasonsEnum.Show);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesFlattenSeasons> {
protected _Serializer() {
super(GetSearchAllLibrariesFlattenSeasons.class);
}
@Override
public void serialize(GetSearchAllLibrariesFlattenSeasons value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesFlattenSeasons> {
protected _Deserializer() {
super(GetSearchAllLibrariesFlattenSeasons.class);
}
@Override
public GetSearchAllLibrariesFlattenSeasons deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesFlattenSeasons.of(v);
}
}
public enum GetSearchAllLibrariesFlattenSeasonsEnum {
LibraryDefault("-1"),
Hide("0"),
Show("1"),;
private final String value;
private GetSearchAllLibrariesFlattenSeasonsEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,35 +3,185 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum GetSearchAllLibrariesLibraryType {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = GetSearchAllLibrariesLibraryType._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesLibraryType._Serializer.class)
public class GetSearchAllLibrariesLibraryType {
public static final GetSearchAllLibrariesLibraryType COVER_POSTER = new GetSearchAllLibrariesLibraryType("coverPoster");
public static final GetSearchAllLibrariesLibraryType BACKGROUND = new GetSearchAllLibrariesLibraryType("background");
public static final GetSearchAllLibrariesLibraryType SNAPSHOT = new GetSearchAllLibrariesLibraryType("snapshot");
public static final GetSearchAllLibrariesLibraryType CLEAR_LOGO = new GetSearchAllLibrariesLibraryType("clearLogo");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesLibraryType> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesLibraryTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetSearchAllLibrariesLibraryType(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesLibraryType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesLibraryType
*/
public static GetSearchAllLibrariesLibraryType of(String value) {
synchronized (GetSearchAllLibrariesLibraryType.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesLibraryType(v));
}
}
public String value() {
return value;
}
public static Optional<GetSearchAllLibrariesLibraryType> fromValue(String value) {
for (GetSearchAllLibrariesLibraryType o: GetSearchAllLibrariesLibraryType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchAllLibrariesLibraryTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesLibraryType other = (GetSearchAllLibrariesLibraryType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesLibraryType [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesLibraryType[] values() {
synchronized (GetSearchAllLibrariesLibraryType.class) {
return values.values().toArray(new GetSearchAllLibrariesLibraryType[] {});
}
}
private static final Map<String, GetSearchAllLibrariesLibraryType> createValuesMap() {
Map<String, GetSearchAllLibrariesLibraryType> map = new LinkedHashMap<>();
map.put("coverPoster", COVER_POSTER);
map.put("background", BACKGROUND);
map.put("snapshot", SNAPSHOT);
map.put("clearLogo", CLEAR_LOGO);
return map;
}
private static final Map<String, GetSearchAllLibrariesLibraryTypeEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesLibraryTypeEnum> map = new HashMap<>();
map.put("coverPoster", GetSearchAllLibrariesLibraryTypeEnum.COVER_POSTER);
map.put("background", GetSearchAllLibrariesLibraryTypeEnum.BACKGROUND);
map.put("snapshot", GetSearchAllLibrariesLibraryTypeEnum.SNAPSHOT);
map.put("clearLogo", GetSearchAllLibrariesLibraryTypeEnum.CLEAR_LOGO);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesLibraryType> {
protected _Serializer() {
super(GetSearchAllLibrariesLibraryType.class);
}
@Override
public void serialize(GetSearchAllLibrariesLibraryType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesLibraryType> {
protected _Deserializer() {
super(GetSearchAllLibrariesLibraryType.class);
}
@Override
public GetSearchAllLibrariesLibraryType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesLibraryType.of(v);
}
}
public enum GetSearchAllLibrariesLibraryTypeEnum {
COVER_POSTER("coverPoster"),
BACKGROUND("background"),
SNAPSHOT("snapshot"),
CLEAR_LOGO("clearLogo"),;
private final String value;
private GetSearchAllLibrariesLibraryTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,11 +3,44 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchAllLibrariesShowOrdering
*
@@ -18,31 +51,151 @@ import java.util.Optional;
* dvd = TheTVDB (DVD),
* absolute = TheTVDB (Absolute)).
*/
public enum GetSearchAllLibrariesShowOrdering {
None("None"),
TmdbAiring("tmdbAiring"),
TvdbAired("aired"),
TvdbDvd("dvd"),
TvdbAbsolute("absolute");
@JsonDeserialize(using = GetSearchAllLibrariesShowOrdering._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesShowOrdering._Serializer.class)
public class GetSearchAllLibrariesShowOrdering {
public static final GetSearchAllLibrariesShowOrdering None = new GetSearchAllLibrariesShowOrdering("None");
public static final GetSearchAllLibrariesShowOrdering TmdbAiring = new GetSearchAllLibrariesShowOrdering("tmdbAiring");
public static final GetSearchAllLibrariesShowOrdering TvdbAired = new GetSearchAllLibrariesShowOrdering("aired");
public static final GetSearchAllLibrariesShowOrdering TvdbDvd = new GetSearchAllLibrariesShowOrdering("dvd");
public static final GetSearchAllLibrariesShowOrdering TvdbAbsolute = new GetSearchAllLibrariesShowOrdering("absolute");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesShowOrdering> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesShowOrderingEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetSearchAllLibrariesShowOrdering(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesShowOrdering with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesShowOrdering
*/
public static GetSearchAllLibrariesShowOrdering of(String value) {
synchronized (GetSearchAllLibrariesShowOrdering.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesShowOrdering(v));
}
}
public String value() {
return value;
}
public static Optional<GetSearchAllLibrariesShowOrdering> fromValue(String value) {
for (GetSearchAllLibrariesShowOrdering o: GetSearchAllLibrariesShowOrdering.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchAllLibrariesShowOrderingEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesShowOrdering other = (GetSearchAllLibrariesShowOrdering) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesShowOrdering [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesShowOrdering[] values() {
synchronized (GetSearchAllLibrariesShowOrdering.class) {
return values.values().toArray(new GetSearchAllLibrariesShowOrdering[] {});
}
}
private static final Map<String, GetSearchAllLibrariesShowOrdering> createValuesMap() {
Map<String, GetSearchAllLibrariesShowOrdering> map = new LinkedHashMap<>();
map.put("None", None);
map.put("tmdbAiring", TmdbAiring);
map.put("aired", TvdbAired);
map.put("dvd", TvdbDvd);
map.put("absolute", TvdbAbsolute);
return map;
}
private static final Map<String, GetSearchAllLibrariesShowOrderingEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesShowOrderingEnum> map = new HashMap<>();
map.put("None", GetSearchAllLibrariesShowOrderingEnum.None);
map.put("tmdbAiring", GetSearchAllLibrariesShowOrderingEnum.TmdbAiring);
map.put("aired", GetSearchAllLibrariesShowOrderingEnum.TvdbAired);
map.put("dvd", GetSearchAllLibrariesShowOrderingEnum.TvdbDvd);
map.put("absolute", GetSearchAllLibrariesShowOrderingEnum.TvdbAbsolute);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesShowOrdering> {
protected _Serializer() {
super(GetSearchAllLibrariesShowOrdering.class);
}
@Override
public void serialize(GetSearchAllLibrariesShowOrdering value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesShowOrdering> {
protected _Deserializer() {
super(GetSearchAllLibrariesShowOrdering.class);
}
@Override
public GetSearchAllLibrariesShowOrdering deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesShowOrdering.of(v);
}
}
public enum GetSearchAllLibrariesShowOrderingEnum {
None("None"),
TmdbAiring("tmdbAiring"),
TvdbAired("aired"),
TvdbDvd("dvd"),
TvdbAbsolute("absolute"),;
private final String value;
private GetSearchAllLibrariesShowOrderingEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,42 +3,198 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchAllLibrariesType
*
* <p>The type of media content
*/
public enum GetSearchAllLibrariesType {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album");
@JsonDeserialize(using = GetSearchAllLibrariesType._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesType._Serializer.class)
public class GetSearchAllLibrariesType {
public static final GetSearchAllLibrariesType Movie = new GetSearchAllLibrariesType("movie");
public static final GetSearchAllLibrariesType TvShow = new GetSearchAllLibrariesType("show");
public static final GetSearchAllLibrariesType Season = new GetSearchAllLibrariesType("season");
public static final GetSearchAllLibrariesType Episode = new GetSearchAllLibrariesType("episode");
public static final GetSearchAllLibrariesType Artist = new GetSearchAllLibrariesType("artist");
public static final GetSearchAllLibrariesType Album = new GetSearchAllLibrariesType("album");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesType> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetSearchAllLibrariesType(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesType
*/
public static GetSearchAllLibrariesType of(String value) {
synchronized (GetSearchAllLibrariesType.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesType(v));
}
}
public String value() {
return value;
}
public static Optional<GetSearchAllLibrariesType> fromValue(String value) {
for (GetSearchAllLibrariesType o: GetSearchAllLibrariesType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchAllLibrariesTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesType other = (GetSearchAllLibrariesType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesType [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesType[] values() {
synchronized (GetSearchAllLibrariesType.class) {
return values.values().toArray(new GetSearchAllLibrariesType[] {});
}
}
private static final Map<String, GetSearchAllLibrariesType> createValuesMap() {
Map<String, GetSearchAllLibrariesType> map = new LinkedHashMap<>();
map.put("movie", Movie);
map.put("show", TvShow);
map.put("season", Season);
map.put("episode", Episode);
map.put("artist", Artist);
map.put("album", Album);
return map;
}
private static final Map<String, GetSearchAllLibrariesTypeEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesTypeEnum> map = new HashMap<>();
map.put("movie", GetSearchAllLibrariesTypeEnum.Movie);
map.put("show", GetSearchAllLibrariesTypeEnum.TvShow);
map.put("season", GetSearchAllLibrariesTypeEnum.Season);
map.put("episode", GetSearchAllLibrariesTypeEnum.Episode);
map.put("artist", GetSearchAllLibrariesTypeEnum.Artist);
map.put("album", GetSearchAllLibrariesTypeEnum.Album);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesType> {
protected _Serializer() {
super(GetSearchAllLibrariesType.class);
}
@Override
public void serialize(GetSearchAllLibrariesType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesType> {
protected _Deserializer() {
super(GetSearchAllLibrariesType.class);
}
@Override
public GetSearchAllLibrariesType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesType.of(v);
}
}
public enum GetSearchAllLibrariesTypeEnum {
Movie("movie"),
TvShow("show"),
Season("season"),
Episode("episode"),
Artist("artist"),
Album("album"),;
private final String value;
private GetSearchAllLibrariesTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchLibraryQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetSearchLibraryQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetSearchLibraryQueryParamType._Deserializer.class)
@JsonSerialize(using = GetSearchLibraryQueryParamType._Serializer.class)
public class GetSearchLibraryQueryParamType {
public static final GetSearchLibraryQueryParamType Movie = new GetSearchLibraryQueryParamType(1L);
public static final GetSearchLibraryQueryParamType TvShow = new GetSearchLibraryQueryParamType(2L);
public static final GetSearchLibraryQueryParamType Season = new GetSearchLibraryQueryParamType(3L);
public static final GetSearchLibraryQueryParamType Episode = new GetSearchLibraryQueryParamType(4L);
public static final GetSearchLibraryQueryParamType Audio = new GetSearchLibraryQueryParamType(8L);
public static final GetSearchLibraryQueryParamType Album = new GetSearchLibraryQueryParamType(9L);
public static final GetSearchLibraryQueryParamType Track = new GetSearchLibraryQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetSearchLibraryQueryParamType> values = createValuesMap();
private static final Map<Long, GetSearchLibraryQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetSearchLibraryQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetSearchLibraryQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchLibraryQueryParamType
*/
public static GetSearchLibraryQueryParamType of(long value) {
synchronized (GetSearchLibraryQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetSearchLibraryQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetSearchLibraryQueryParamType> fromValue(long value) {
for (GetSearchLibraryQueryParamType o: GetSearchLibraryQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetSearchLibraryQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchLibraryQueryParamType other = (GetSearchLibraryQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchLibraryQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchLibraryQueryParamType[] values() {
synchronized (GetSearchLibraryQueryParamType.class) {
return values.values().toArray(new GetSearchLibraryQueryParamType[] {});
}
}
private static final Map<Long, GetSearchLibraryQueryParamType> createValuesMap() {
Map<Long, GetSearchLibraryQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetSearchLibraryQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetSearchLibraryQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetSearchLibraryQueryParamTypeEnum.Movie);
map.put(2L, GetSearchLibraryQueryParamTypeEnum.TvShow);
map.put(3L, GetSearchLibraryQueryParamTypeEnum.Season);
map.put(4L, GetSearchLibraryQueryParamTypeEnum.Episode);
map.put(8L, GetSearchLibraryQueryParamTypeEnum.Audio);
map.put(9L, GetSearchLibraryQueryParamTypeEnum.Album);
map.put(10L, GetSearchLibraryQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchLibraryQueryParamType> {
protected _Serializer() {
super(GetSearchLibraryQueryParamType.class);
}
@Override
public void serialize(GetSearchLibraryQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchLibraryQueryParamType> {
protected _Deserializer() {
super(GetSearchLibraryQueryParamType.class);
}
@Override
public GetSearchLibraryQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetSearchLibraryQueryParamType.of(v);
}
}
public enum GetSearchLibraryQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetSearchLibraryQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetTokenDetailsAuthenticationResponseStatus
*
* <p>String representation of subscriptionActive
*/
public enum GetTokenDetailsAuthenticationResponseStatus {
INACTIVE("Inactive"),
ACTIVE("Active");
@JsonDeserialize(using = GetTokenDetailsAuthenticationResponseStatus._Deserializer.class)
@JsonSerialize(using = GetTokenDetailsAuthenticationResponseStatus._Serializer.class)
public class GetTokenDetailsAuthenticationResponseStatus {
public static final GetTokenDetailsAuthenticationResponseStatus INACTIVE = new GetTokenDetailsAuthenticationResponseStatus("Inactive");
public static final GetTokenDetailsAuthenticationResponseStatus ACTIVE = new GetTokenDetailsAuthenticationResponseStatus("Active");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetTokenDetailsAuthenticationResponseStatus> values = createValuesMap();
private static final Map<String, GetTokenDetailsAuthenticationResponseStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetTokenDetailsAuthenticationResponseStatus(String value) {
this.value = value;
}
/**
* Returns a GetTokenDetailsAuthenticationResponseStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetTokenDetailsAuthenticationResponseStatus
*/
public static GetTokenDetailsAuthenticationResponseStatus of(String value) {
synchronized (GetTokenDetailsAuthenticationResponseStatus.class) {
return values.computeIfAbsent(value, v -> new GetTokenDetailsAuthenticationResponseStatus(v));
}
}
public String value() {
return value;
}
public static Optional<GetTokenDetailsAuthenticationResponseStatus> fromValue(String value) {
for (GetTokenDetailsAuthenticationResponseStatus o: GetTokenDetailsAuthenticationResponseStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetTokenDetailsAuthenticationResponseStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetTokenDetailsAuthenticationResponseStatus other = (GetTokenDetailsAuthenticationResponseStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetTokenDetailsAuthenticationResponseStatus [value=" + value + "]";
}
// return an array just like an enum
public static GetTokenDetailsAuthenticationResponseStatus[] values() {
synchronized (GetTokenDetailsAuthenticationResponseStatus.class) {
return values.values().toArray(new GetTokenDetailsAuthenticationResponseStatus[] {});
}
}
private static final Map<String, GetTokenDetailsAuthenticationResponseStatus> createValuesMap() {
Map<String, GetTokenDetailsAuthenticationResponseStatus> map = new LinkedHashMap<>();
map.put("Inactive", INACTIVE);
map.put("Active", ACTIVE);
return map;
}
private static final Map<String, GetTokenDetailsAuthenticationResponseStatusEnum> createEnumsMap() {
Map<String, GetTokenDetailsAuthenticationResponseStatusEnum> map = new HashMap<>();
map.put("Inactive", GetTokenDetailsAuthenticationResponseStatusEnum.INACTIVE);
map.put("Active", GetTokenDetailsAuthenticationResponseStatusEnum.ACTIVE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetTokenDetailsAuthenticationResponseStatus> {
protected _Serializer() {
super(GetTokenDetailsAuthenticationResponseStatus.class);
}
@Override
public void serialize(GetTokenDetailsAuthenticationResponseStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetTokenDetailsAuthenticationResponseStatus> {
protected _Deserializer() {
super(GetTokenDetailsAuthenticationResponseStatus.class);
}
@Override
public GetTokenDetailsAuthenticationResponseStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetTokenDetailsAuthenticationResponseStatus.of(v);
}
}
public enum GetTokenDetailsAuthenticationResponseStatusEnum {
INACTIVE("Inactive"),
ACTIVE("Active"),;
private final String value;
private GetTokenDetailsAuthenticationResponseStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetTokenDetailsAuthenticationStatus
*
* <p>String representation of subscriptionActive
*/
public enum GetTokenDetailsAuthenticationStatus {
INACTIVE("Inactive"),
ACTIVE("Active");
@JsonDeserialize(using = GetTokenDetailsAuthenticationStatus._Deserializer.class)
@JsonSerialize(using = GetTokenDetailsAuthenticationStatus._Serializer.class)
public class GetTokenDetailsAuthenticationStatus {
public static final GetTokenDetailsAuthenticationStatus INACTIVE = new GetTokenDetailsAuthenticationStatus("Inactive");
public static final GetTokenDetailsAuthenticationStatus ACTIVE = new GetTokenDetailsAuthenticationStatus("Active");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetTokenDetailsAuthenticationStatus> values = createValuesMap();
private static final Map<String, GetTokenDetailsAuthenticationStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetTokenDetailsAuthenticationStatus(String value) {
this.value = value;
}
/**
* Returns a GetTokenDetailsAuthenticationStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetTokenDetailsAuthenticationStatus
*/
public static GetTokenDetailsAuthenticationStatus of(String value) {
synchronized (GetTokenDetailsAuthenticationStatus.class) {
return values.computeIfAbsent(value, v -> new GetTokenDetailsAuthenticationStatus(v));
}
}
public String value() {
return value;
}
public static Optional<GetTokenDetailsAuthenticationStatus> fromValue(String value) {
for (GetTokenDetailsAuthenticationStatus o: GetTokenDetailsAuthenticationStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetTokenDetailsAuthenticationStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetTokenDetailsAuthenticationStatus other = (GetTokenDetailsAuthenticationStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetTokenDetailsAuthenticationStatus [value=" + value + "]";
}
// return an array just like an enum
public static GetTokenDetailsAuthenticationStatus[] values() {
synchronized (GetTokenDetailsAuthenticationStatus.class) {
return values.values().toArray(new GetTokenDetailsAuthenticationStatus[] {});
}
}
private static final Map<String, GetTokenDetailsAuthenticationStatus> createValuesMap() {
Map<String, GetTokenDetailsAuthenticationStatus> map = new LinkedHashMap<>();
map.put("Inactive", INACTIVE);
map.put("Active", ACTIVE);
return map;
}
private static final Map<String, GetTokenDetailsAuthenticationStatusEnum> createEnumsMap() {
Map<String, GetTokenDetailsAuthenticationStatusEnum> map = new HashMap<>();
map.put("Inactive", GetTokenDetailsAuthenticationStatusEnum.INACTIVE);
map.put("Active", GetTokenDetailsAuthenticationStatusEnum.ACTIVE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetTokenDetailsAuthenticationStatus> {
protected _Serializer() {
super(GetTokenDetailsAuthenticationStatus.class);
}
@Override
public void serialize(GetTokenDetailsAuthenticationStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetTokenDetailsAuthenticationStatus> {
protected _Deserializer() {
super(GetTokenDetailsAuthenticationStatus.class);
}
@Override
public GetTokenDetailsAuthenticationStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetTokenDetailsAuthenticationStatus.of(v);
}
}
public enum GetTokenDetailsAuthenticationStatusEnum {
INACTIVE("Inactive"),
ACTIVE("Active"),;
private final String value;
private GetTokenDetailsAuthenticationStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,33 +3,177 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum GetTokenDetailsStatus {
ONLINE("online"),
OFFLINE("offline");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = GetTokenDetailsStatus._Deserializer.class)
@JsonSerialize(using = GetTokenDetailsStatus._Serializer.class)
public class GetTokenDetailsStatus {
public static final GetTokenDetailsStatus ONLINE = new GetTokenDetailsStatus("online");
public static final GetTokenDetailsStatus OFFLINE = new GetTokenDetailsStatus("offline");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetTokenDetailsStatus> values = createValuesMap();
private static final Map<String, GetTokenDetailsStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private GetTokenDetailsStatus(String value) {
this.value = value;
}
/**
* Returns a GetTokenDetailsStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetTokenDetailsStatus
*/
public static GetTokenDetailsStatus of(String value) {
synchronized (GetTokenDetailsStatus.class) {
return values.computeIfAbsent(value, v -> new GetTokenDetailsStatus(v));
}
}
public String value() {
return value;
}
public static Optional<GetTokenDetailsStatus> fromValue(String value) {
for (GetTokenDetailsStatus o: GetTokenDetailsStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetTokenDetailsStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetTokenDetailsStatus other = (GetTokenDetailsStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetTokenDetailsStatus [value=" + value + "]";
}
// return an array just like an enum
public static GetTokenDetailsStatus[] values() {
synchronized (GetTokenDetailsStatus.class) {
return values.values().toArray(new GetTokenDetailsStatus[] {});
}
}
private static final Map<String, GetTokenDetailsStatus> createValuesMap() {
Map<String, GetTokenDetailsStatus> map = new LinkedHashMap<>();
map.put("online", ONLINE);
map.put("offline", OFFLINE);
return map;
}
private static final Map<String, GetTokenDetailsStatusEnum> createEnumsMap() {
Map<String, GetTokenDetailsStatusEnum> map = new HashMap<>();
map.put("online", GetTokenDetailsStatusEnum.ONLINE);
map.put("offline", GetTokenDetailsStatusEnum.OFFLINE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetTokenDetailsStatus> {
protected _Serializer() {
super(GetTokenDetailsStatus.class);
}
@Override
public void serialize(GetTokenDetailsStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetTokenDetailsStatus> {
protected _Deserializer() {
super(GetTokenDetailsStatus.class);
}
@Override
public GetTokenDetailsStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetTokenDetailsStatus.of(v);
}
}
public enum GetTokenDetailsStatusEnum {
ONLINE("online"),
OFFLINE("offline"),;
private final String value;
private GetTokenDetailsStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetTopWatchedContentQueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum GetTopWatchedContentQueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = GetTopWatchedContentQueryParamType._Deserializer.class)
@JsonSerialize(using = GetTopWatchedContentQueryParamType._Serializer.class)
public class GetTopWatchedContentQueryParamType {
public static final GetTopWatchedContentQueryParamType Movie = new GetTopWatchedContentQueryParamType(1L);
public static final GetTopWatchedContentQueryParamType TvShow = new GetTopWatchedContentQueryParamType(2L);
public static final GetTopWatchedContentQueryParamType Season = new GetTopWatchedContentQueryParamType(3L);
public static final GetTopWatchedContentQueryParamType Episode = new GetTopWatchedContentQueryParamType(4L);
public static final GetTopWatchedContentQueryParamType Audio = new GetTopWatchedContentQueryParamType(8L);
public static final GetTopWatchedContentQueryParamType Album = new GetTopWatchedContentQueryParamType(9L);
public static final GetTopWatchedContentQueryParamType Track = new GetTopWatchedContentQueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, GetTopWatchedContentQueryParamType> values = createValuesMap();
private static final Map<Long, GetTopWatchedContentQueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private GetTopWatchedContentQueryParamType(long value) {
this.value = value;
}
/**
* Returns a GetTopWatchedContentQueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetTopWatchedContentQueryParamType
*/
public static GetTopWatchedContentQueryParamType of(long value) {
synchronized (GetTopWatchedContentQueryParamType.class) {
return values.computeIfAbsent(value, v -> new GetTopWatchedContentQueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<GetTopWatchedContentQueryParamType> fromValue(long value) {
for (GetTopWatchedContentQueryParamType o: GetTopWatchedContentQueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<GetTopWatchedContentQueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetTopWatchedContentQueryParamType other = (GetTopWatchedContentQueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetTopWatchedContentQueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static GetTopWatchedContentQueryParamType[] values() {
synchronized (GetTopWatchedContentQueryParamType.class) {
return values.values().toArray(new GetTopWatchedContentQueryParamType[] {});
}
}
private static final Map<Long, GetTopWatchedContentQueryParamType> createValuesMap() {
Map<Long, GetTopWatchedContentQueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, GetTopWatchedContentQueryParamTypeEnum> createEnumsMap() {
Map<Long, GetTopWatchedContentQueryParamTypeEnum> map = new HashMap<>();
map.put(1L, GetTopWatchedContentQueryParamTypeEnum.Movie);
map.put(2L, GetTopWatchedContentQueryParamTypeEnum.TvShow);
map.put(3L, GetTopWatchedContentQueryParamTypeEnum.Season);
map.put(4L, GetTopWatchedContentQueryParamTypeEnum.Episode);
map.put(8L, GetTopWatchedContentQueryParamTypeEnum.Audio);
map.put(9L, GetTopWatchedContentQueryParamTypeEnum.Album);
map.put(10L, GetTopWatchedContentQueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetTopWatchedContentQueryParamType> {
protected _Serializer() {
super(GetTopWatchedContentQueryParamType.class);
}
@Override
public void serialize(GetTopWatchedContentQueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetTopWatchedContentQueryParamType> {
protected _Deserializer() {
super(GetTopWatchedContentQueryParamType.class);
}
@Override
public GetTopWatchedContentQueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return GetTopWatchedContentQueryParamType.of(v);
}
}
public enum GetTopWatchedContentQueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private GetTopWatchedContentQueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -0,0 +1,39 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Objects;
import java.util.Optional;
/**
* Hidden
*
* <p>UNKNOWN
*/
public enum Hidden {
Disable(0),
Enable(1);
@JsonValue
private final int value;
private Hidden(int value) {
this.value = value;
}
public int value() {
return value;
}
public static Optional<Hidden> fromValue(int value) {
for (Hidden o: Hidden.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
}
return Optional.empty();
}
}

View File

@@ -10,7 +10,7 @@ import java.util.Optional;
/**
* IncludeDetails
*
* <p>Whether or not to include details for a section (types, filters, and sorts).
* <p>Whether or not to include details for a section (types, filters, and sorts).
* Only exists for backwards compatibility, media providers other than the server libraries have it on always.
*/
public enum IncludeDetails {

View File

@@ -3,45 +3,200 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* Level
*
* <p>An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* <p>An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* 4: Verbose
*/
public enum Level {
ZERO(0L),
ONE(1L),
TWO(2L),
THREE(3L),
FOUR(4L);
@JsonDeserialize(using = Level._Deserializer.class)
@JsonSerialize(using = Level._Serializer.class)
public class Level {
public static final Level ZERO = new Level(0L);
public static final Level ONE = new Level(1L);
public static final Level TWO = new Level(2L);
public static final Level THREE = new Level(3L);
public static final Level FOUR = new Level(4L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, Level> values = createValuesMap();
private static final Map<Long, LevelEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private Level(long value) {
this.value = value;
}
/**
* Returns a Level with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as Level
*/
public static Level of(long value) {
synchronized (Level.class) {
return values.computeIfAbsent(value, v -> new Level(v));
}
}
public long value() {
return value;
}
public static Optional<Level> fromValue(long value) {
for (Level o: Level.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<LevelEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Level other = (Level) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "Level [value=" + value + "]";
}
// return an array just like an enum
public static Level[] values() {
synchronized (Level.class) {
return values.values().toArray(new Level[] {});
}
}
private static final Map<Long, Level> createValuesMap() {
Map<Long, Level> map = new LinkedHashMap<>();
map.put(0L, ZERO);
map.put(1L, ONE);
map.put(2L, TWO);
map.put(3L, THREE);
map.put(4L, FOUR);
return map;
}
private static final Map<Long, LevelEnum> createEnumsMap() {
Map<Long, LevelEnum> map = new HashMap<>();
map.put(0L, LevelEnum.ZERO);
map.put(1L, LevelEnum.ONE);
map.put(2L, LevelEnum.TWO);
map.put(3L, LevelEnum.THREE);
map.put(4L, LevelEnum.FOUR);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<Level> {
protected _Serializer() {
super(Level.class);
}
@Override
public void serialize(Level value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<Level> {
protected _Deserializer() {
super(Level.class);
}
@Override
public Level deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return Level.of(v);
}
}
public enum LevelEnum {
ZERO(0L),
ONE(1L),
TWO(2L),
THREE(3L),
FOUR(4L),;
private final long value;
private LevelEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* Libtype
*
* <p>The type of library to filter. Can be "movie" or "show", or all if not present.
*/
public enum Libtype {
MOVIE("movie"),
SHOW("show");
@JsonDeserialize(using = Libtype._Deserializer.class)
@JsonSerialize(using = Libtype._Serializer.class)
public class Libtype {
public static final Libtype MOVIE = new Libtype("movie");
public static final Libtype SHOW = new Libtype("show");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, Libtype> values = createValuesMap();
private static final Map<String, LibtypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private Libtype(String value) {
this.value = value;
}
/**
* Returns a Libtype with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as Libtype
*/
public static Libtype of(String value) {
synchronized (Libtype.class) {
return values.computeIfAbsent(value, v -> new Libtype(v));
}
}
public String value() {
return value;
}
public static Optional<Libtype> fromValue(String value) {
for (Libtype o: Libtype.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<LibtypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Libtype other = (Libtype) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "Libtype [value=" + value + "]";
}
// return an array just like an enum
public static Libtype[] values() {
synchronized (Libtype.class) {
return values.values().toArray(new Libtype[] {});
}
}
private static final Map<String, Libtype> createValuesMap() {
Map<String, Libtype> map = new LinkedHashMap<>();
map.put("movie", MOVIE);
map.put("show", SHOW);
return map;
}
private static final Map<String, LibtypeEnum> createEnumsMap() {
Map<String, LibtypeEnum> map = new HashMap<>();
map.put("movie", LibtypeEnum.MOVIE);
map.put("show", LibtypeEnum.SHOW);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<Libtype> {
protected _Serializer() {
super(Libtype.class);
}
@Override
public void serialize(Libtype value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<Libtype> {
protected _Deserializer() {
super(Libtype.class);
}
@Override
public Libtype deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return Libtype.of(v);
}
}
public enum LibtypeEnum {
MOVIE("movie"),
SHOW("show"),;
private final String value;
private LibtypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -14,11 +14,11 @@ import java.util.Objects;
public class LogLineRequest {
/**
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* 4: Verbose
*/
@SpeakeasyMetadata("queryParam:style=form,explode=true,name=level")
@@ -50,11 +50,11 @@ public class LogLineRequest {
}
/**
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* 4: Verbose
*/
@JsonIgnore
@@ -83,11 +83,11 @@ public class LogLineRequest {
}
/**
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* 4: Verbose
*/
public LogLineRequest withLevel(Level level) {
@@ -159,11 +159,11 @@ public class LogLineRequest {
}
/**
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* An integer log level to write to the PMS log with.
* 0: Error
* 1: Warning
* 2: Info
* 3: Debug
* 4: Verbose
*/
public Builder level(Level level) {

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* MailingListStatus
*
* <p>Your current mailing list status (active or unsubscribed)
*/
public enum MailingListStatus {
ACTIVE("active"),
UNSUBSCRIBED("unsubscribed");
@JsonDeserialize(using = MailingListStatus._Deserializer.class)
@JsonSerialize(using = MailingListStatus._Serializer.class)
public class MailingListStatus {
public static final MailingListStatus ACTIVE = new MailingListStatus("active");
public static final MailingListStatus UNSUBSCRIBED = new MailingListStatus("unsubscribed");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, MailingListStatus> values = createValuesMap();
private static final Map<String, MailingListStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private MailingListStatus(String value) {
this.value = value;
}
/**
* Returns a MailingListStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as MailingListStatus
*/
public static MailingListStatus of(String value) {
synchronized (MailingListStatus.class) {
return values.computeIfAbsent(value, v -> new MailingListStatus(v));
}
}
public String value() {
return value;
}
public static Optional<MailingListStatus> fromValue(String value) {
for (MailingListStatus o: MailingListStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<MailingListStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MailingListStatus other = (MailingListStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "MailingListStatus [value=" + value + "]";
}
// return an array just like an enum
public static MailingListStatus[] values() {
synchronized (MailingListStatus.class) {
return values.values().toArray(new MailingListStatus[] {});
}
}
private static final Map<String, MailingListStatus> createValuesMap() {
Map<String, MailingListStatus> map = new LinkedHashMap<>();
map.put("active", ACTIVE);
map.put("unsubscribed", UNSUBSCRIBED);
return map;
}
private static final Map<String, MailingListStatusEnum> createEnumsMap() {
Map<String, MailingListStatusEnum> map = new HashMap<>();
map.put("active", MailingListStatusEnum.ACTIVE);
map.put("unsubscribed", MailingListStatusEnum.UNSUBSCRIBED);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<MailingListStatus> {
protected _Serializer() {
super(MailingListStatus.class);
}
@Override
public void serialize(MailingListStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<MailingListStatus> {
protected _Deserializer() {
super(MailingListStatus.class);
}
@Override
public MailingListStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return MailingListStatus.of(v);
}
}
public enum MailingListStatusEnum {
ACTIVE("active"),
UNSUBSCRIBED("unsubscribed"),;
private final String value;
private MailingListStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,50 +3,230 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* PathParamTaskName
*
* <p>The name of the task to be started.
*/
public enum PathParamTaskName {
BACKUP_DATABASE("BackupDatabase"),
BUILD_GRACENOTE_COLLECTIONS("BuildGracenoteCollections"),
CHECK_FOR_UPDATES("CheckForUpdates"),
CLEAN_OLD_BUNDLES("CleanOldBundles"),
CLEAN_OLD_CACHE_FILES("CleanOldCacheFiles"),
DEEP_MEDIA_ANALYSIS("DeepMediaAnalysis"),
GENERATE_AUTO_TAGS("GenerateAutoTags"),
GENERATE_CHAPTER_THUMBS("GenerateChapterThumbs"),
GENERATE_MEDIA_INDEX_FILES("GenerateMediaIndexFiles"),
OPTIMIZE_DATABASE("OptimizeDatabase"),
REFRESH_LIBRARIES("RefreshLibraries"),
REFRESH_LOCAL_MEDIA("RefreshLocalMedia"),
REFRESH_PERIODIC_METADATA("RefreshPeriodicMetadata"),
UPGRADE_MEDIA_ANALYSIS("UpgradeMediaAnalysis");
@JsonDeserialize(using = PathParamTaskName._Deserializer.class)
@JsonSerialize(using = PathParamTaskName._Serializer.class)
public class PathParamTaskName {
public static final PathParamTaskName BACKUP_DATABASE = new PathParamTaskName("BackupDatabase");
public static final PathParamTaskName BUILD_GRACENOTE_COLLECTIONS = new PathParamTaskName("BuildGracenoteCollections");
public static final PathParamTaskName CHECK_FOR_UPDATES = new PathParamTaskName("CheckForUpdates");
public static final PathParamTaskName CLEAN_OLD_BUNDLES = new PathParamTaskName("CleanOldBundles");
public static final PathParamTaskName CLEAN_OLD_CACHE_FILES = new PathParamTaskName("CleanOldCacheFiles");
public static final PathParamTaskName DEEP_MEDIA_ANALYSIS = new PathParamTaskName("DeepMediaAnalysis");
public static final PathParamTaskName GENERATE_AUTO_TAGS = new PathParamTaskName("GenerateAutoTags");
public static final PathParamTaskName GENERATE_CHAPTER_THUMBS = new PathParamTaskName("GenerateChapterThumbs");
public static final PathParamTaskName GENERATE_MEDIA_INDEX_FILES = new PathParamTaskName("GenerateMediaIndexFiles");
public static final PathParamTaskName OPTIMIZE_DATABASE = new PathParamTaskName("OptimizeDatabase");
public static final PathParamTaskName REFRESH_LIBRARIES = new PathParamTaskName("RefreshLibraries");
public static final PathParamTaskName REFRESH_LOCAL_MEDIA = new PathParamTaskName("RefreshLocalMedia");
public static final PathParamTaskName REFRESH_PERIODIC_METADATA = new PathParamTaskName("RefreshPeriodicMetadata");
public static final PathParamTaskName UPGRADE_MEDIA_ANALYSIS = new PathParamTaskName("UpgradeMediaAnalysis");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PathParamTaskName> values = createValuesMap();
private static final Map<String, PathParamTaskNameEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PathParamTaskName(String value) {
this.value = value;
}
/**
* Returns a PathParamTaskName with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PathParamTaskName
*/
public static PathParamTaskName of(String value) {
synchronized (PathParamTaskName.class) {
return values.computeIfAbsent(value, v -> new PathParamTaskName(v));
}
}
public String value() {
return value;
}
public static Optional<PathParamTaskName> fromValue(String value) {
for (PathParamTaskName o: PathParamTaskName.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PathParamTaskNameEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PathParamTaskName other = (PathParamTaskName) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PathParamTaskName [value=" + value + "]";
}
// return an array just like an enum
public static PathParamTaskName[] values() {
synchronized (PathParamTaskName.class) {
return values.values().toArray(new PathParamTaskName[] {});
}
}
private static final Map<String, PathParamTaskName> createValuesMap() {
Map<String, PathParamTaskName> map = new LinkedHashMap<>();
map.put("BackupDatabase", BACKUP_DATABASE);
map.put("BuildGracenoteCollections", BUILD_GRACENOTE_COLLECTIONS);
map.put("CheckForUpdates", CHECK_FOR_UPDATES);
map.put("CleanOldBundles", CLEAN_OLD_BUNDLES);
map.put("CleanOldCacheFiles", CLEAN_OLD_CACHE_FILES);
map.put("DeepMediaAnalysis", DEEP_MEDIA_ANALYSIS);
map.put("GenerateAutoTags", GENERATE_AUTO_TAGS);
map.put("GenerateChapterThumbs", GENERATE_CHAPTER_THUMBS);
map.put("GenerateMediaIndexFiles", GENERATE_MEDIA_INDEX_FILES);
map.put("OptimizeDatabase", OPTIMIZE_DATABASE);
map.put("RefreshLibraries", REFRESH_LIBRARIES);
map.put("RefreshLocalMedia", REFRESH_LOCAL_MEDIA);
map.put("RefreshPeriodicMetadata", REFRESH_PERIODIC_METADATA);
map.put("UpgradeMediaAnalysis", UPGRADE_MEDIA_ANALYSIS);
return map;
}
private static final Map<String, PathParamTaskNameEnum> createEnumsMap() {
Map<String, PathParamTaskNameEnum> map = new HashMap<>();
map.put("BackupDatabase", PathParamTaskNameEnum.BACKUP_DATABASE);
map.put("BuildGracenoteCollections", PathParamTaskNameEnum.BUILD_GRACENOTE_COLLECTIONS);
map.put("CheckForUpdates", PathParamTaskNameEnum.CHECK_FOR_UPDATES);
map.put("CleanOldBundles", PathParamTaskNameEnum.CLEAN_OLD_BUNDLES);
map.put("CleanOldCacheFiles", PathParamTaskNameEnum.CLEAN_OLD_CACHE_FILES);
map.put("DeepMediaAnalysis", PathParamTaskNameEnum.DEEP_MEDIA_ANALYSIS);
map.put("GenerateAutoTags", PathParamTaskNameEnum.GENERATE_AUTO_TAGS);
map.put("GenerateChapterThumbs", PathParamTaskNameEnum.GENERATE_CHAPTER_THUMBS);
map.put("GenerateMediaIndexFiles", PathParamTaskNameEnum.GENERATE_MEDIA_INDEX_FILES);
map.put("OptimizeDatabase", PathParamTaskNameEnum.OPTIMIZE_DATABASE);
map.put("RefreshLibraries", PathParamTaskNameEnum.REFRESH_LIBRARIES);
map.put("RefreshLocalMedia", PathParamTaskNameEnum.REFRESH_LOCAL_MEDIA);
map.put("RefreshPeriodicMetadata", PathParamTaskNameEnum.REFRESH_PERIODIC_METADATA);
map.put("UpgradeMediaAnalysis", PathParamTaskNameEnum.UPGRADE_MEDIA_ANALYSIS);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PathParamTaskName> {
protected _Serializer() {
super(PathParamTaskName.class);
}
@Override
public void serialize(PathParamTaskName value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PathParamTaskName> {
protected _Deserializer() {
super(PathParamTaskName.class);
}
@Override
public PathParamTaskName deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PathParamTaskName.of(v);
}
}
public enum PathParamTaskNameEnum {
BACKUP_DATABASE("BackupDatabase"),
BUILD_GRACENOTE_COLLECTIONS("BuildGracenoteCollections"),
CHECK_FOR_UPDATES("CheckForUpdates"),
CLEAN_OLD_BUNDLES("CleanOldBundles"),
CLEAN_OLD_CACHE_FILES("CleanOldCacheFiles"),
DEEP_MEDIA_ANALYSIS("DeepMediaAnalysis"),
GENERATE_AUTO_TAGS("GenerateAutoTags"),
GENERATE_CHAPTER_THUMBS("GenerateChapterThumbs"),
GENERATE_MEDIA_INDEX_FILES("GenerateMediaIndexFiles"),
OPTIMIZE_DATABASE("OptimizeDatabase"),
REFRESH_LIBRARIES("RefreshLibraries"),
REFRESH_LOCAL_MEDIA("RefreshLocalMedia"),
REFRESH_PERIODIC_METADATA("RefreshPeriodicMetadata"),
UPGRADE_MEDIA_ANALYSIS("UpgradeMediaAnalysis"),;
private final String value;
private PathParamTaskNameEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* PlaylistType
*
* <p>limit to a type of playlist.
*/
public enum PlaylistType {
AUDIO("audio"),
VIDEO("video"),
PHOTO("photo");
@JsonDeserialize(using = PlaylistType._Deserializer.class)
@JsonSerialize(using = PlaylistType._Serializer.class)
public class PlaylistType {
public static final PlaylistType AUDIO = new PlaylistType("audio");
public static final PlaylistType VIDEO = new PlaylistType("video");
public static final PlaylistType PHOTO = new PlaylistType("photo");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PlaylistType> values = createValuesMap();
private static final Map<String, PlaylistTypeEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PlaylistType(String value) {
this.value = value;
}
/**
* Returns a PlaylistType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PlaylistType
*/
public static PlaylistType of(String value) {
synchronized (PlaylistType.class) {
return values.computeIfAbsent(value, v -> new PlaylistType(v));
}
}
public String value() {
return value;
}
public static Optional<PlaylistType> fromValue(String value) {
for (PlaylistType o: PlaylistType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PlaylistTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PlaylistType other = (PlaylistType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PlaylistType [value=" + value + "]";
}
// return an array just like an enum
public static PlaylistType[] values() {
synchronized (PlaylistType.class) {
return values.values().toArray(new PlaylistType[] {});
}
}
private static final Map<String, PlaylistType> createValuesMap() {
Map<String, PlaylistType> map = new LinkedHashMap<>();
map.put("audio", AUDIO);
map.put("video", VIDEO);
map.put("photo", PHOTO);
return map;
}
private static final Map<String, PlaylistTypeEnum> createEnumsMap() {
Map<String, PlaylistTypeEnum> map = new HashMap<>();
map.put("audio", PlaylistTypeEnum.AUDIO);
map.put("video", PlaylistTypeEnum.VIDEO);
map.put("photo", PlaylistTypeEnum.PHOTO);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PlaylistType> {
protected _Serializer() {
super(PlaylistType.class);
}
@Override
public void serialize(PlaylistType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PlaylistType> {
protected _Deserializer() {
super(PlaylistType.class);
}
@Override
public PlaylistType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PlaylistType.of(v);
}
}
public enum PlaylistTypeEnum {
AUDIO("audio"),
VIDEO("video"),
PHOTO("photo"),;
private final String value;
private PlaylistTypeEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* PostUsersSignInDataAuthenticationResponseStatus
*
* <p>String representation of subscriptionActive
*/
public enum PostUsersSignInDataAuthenticationResponseStatus {
INACTIVE("Inactive"),
ACTIVE("Active");
@JsonDeserialize(using = PostUsersSignInDataAuthenticationResponseStatus._Deserializer.class)
@JsonSerialize(using = PostUsersSignInDataAuthenticationResponseStatus._Serializer.class)
public class PostUsersSignInDataAuthenticationResponseStatus {
public static final PostUsersSignInDataAuthenticationResponseStatus INACTIVE = new PostUsersSignInDataAuthenticationResponseStatus("Inactive");
public static final PostUsersSignInDataAuthenticationResponseStatus ACTIVE = new PostUsersSignInDataAuthenticationResponseStatus("Active");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PostUsersSignInDataAuthenticationResponseStatus> values = createValuesMap();
private static final Map<String, PostUsersSignInDataAuthenticationResponseStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PostUsersSignInDataAuthenticationResponseStatus(String value) {
this.value = value;
}
/**
* Returns a PostUsersSignInDataAuthenticationResponseStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PostUsersSignInDataAuthenticationResponseStatus
*/
public static PostUsersSignInDataAuthenticationResponseStatus of(String value) {
synchronized (PostUsersSignInDataAuthenticationResponseStatus.class) {
return values.computeIfAbsent(value, v -> new PostUsersSignInDataAuthenticationResponseStatus(v));
}
}
public String value() {
return value;
}
public static Optional<PostUsersSignInDataAuthenticationResponseStatus> fromValue(String value) {
for (PostUsersSignInDataAuthenticationResponseStatus o: PostUsersSignInDataAuthenticationResponseStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PostUsersSignInDataAuthenticationResponseStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PostUsersSignInDataAuthenticationResponseStatus other = (PostUsersSignInDataAuthenticationResponseStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PostUsersSignInDataAuthenticationResponseStatus [value=" + value + "]";
}
// return an array just like an enum
public static PostUsersSignInDataAuthenticationResponseStatus[] values() {
synchronized (PostUsersSignInDataAuthenticationResponseStatus.class) {
return values.values().toArray(new PostUsersSignInDataAuthenticationResponseStatus[] {});
}
}
private static final Map<String, PostUsersSignInDataAuthenticationResponseStatus> createValuesMap() {
Map<String, PostUsersSignInDataAuthenticationResponseStatus> map = new LinkedHashMap<>();
map.put("Inactive", INACTIVE);
map.put("Active", ACTIVE);
return map;
}
private static final Map<String, PostUsersSignInDataAuthenticationResponseStatusEnum> createEnumsMap() {
Map<String, PostUsersSignInDataAuthenticationResponseStatusEnum> map = new HashMap<>();
map.put("Inactive", PostUsersSignInDataAuthenticationResponseStatusEnum.INACTIVE);
map.put("Active", PostUsersSignInDataAuthenticationResponseStatusEnum.ACTIVE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PostUsersSignInDataAuthenticationResponseStatus> {
protected _Serializer() {
super(PostUsersSignInDataAuthenticationResponseStatus.class);
}
@Override
public void serialize(PostUsersSignInDataAuthenticationResponseStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PostUsersSignInDataAuthenticationResponseStatus> {
protected _Deserializer() {
super(PostUsersSignInDataAuthenticationResponseStatus.class);
}
@Override
public PostUsersSignInDataAuthenticationResponseStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PostUsersSignInDataAuthenticationResponseStatus.of(v);
}
}
public enum PostUsersSignInDataAuthenticationResponseStatusEnum {
INACTIVE("Inactive"),
ACTIVE("Active"),;
private final String value;
private PostUsersSignInDataAuthenticationResponseStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* PostUsersSignInDataAuthenticationStatus
*
* <p>String representation of subscriptionActive
*/
public enum PostUsersSignInDataAuthenticationStatus {
INACTIVE("Inactive"),
ACTIVE("Active");
@JsonDeserialize(using = PostUsersSignInDataAuthenticationStatus._Deserializer.class)
@JsonSerialize(using = PostUsersSignInDataAuthenticationStatus._Serializer.class)
public class PostUsersSignInDataAuthenticationStatus {
public static final PostUsersSignInDataAuthenticationStatus INACTIVE = new PostUsersSignInDataAuthenticationStatus("Inactive");
public static final PostUsersSignInDataAuthenticationStatus ACTIVE = new PostUsersSignInDataAuthenticationStatus("Active");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PostUsersSignInDataAuthenticationStatus> values = createValuesMap();
private static final Map<String, PostUsersSignInDataAuthenticationStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PostUsersSignInDataAuthenticationStatus(String value) {
this.value = value;
}
/**
* Returns a PostUsersSignInDataAuthenticationStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PostUsersSignInDataAuthenticationStatus
*/
public static PostUsersSignInDataAuthenticationStatus of(String value) {
synchronized (PostUsersSignInDataAuthenticationStatus.class) {
return values.computeIfAbsent(value, v -> new PostUsersSignInDataAuthenticationStatus(v));
}
}
public String value() {
return value;
}
public static Optional<PostUsersSignInDataAuthenticationStatus> fromValue(String value) {
for (PostUsersSignInDataAuthenticationStatus o: PostUsersSignInDataAuthenticationStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PostUsersSignInDataAuthenticationStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PostUsersSignInDataAuthenticationStatus other = (PostUsersSignInDataAuthenticationStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PostUsersSignInDataAuthenticationStatus [value=" + value + "]";
}
// return an array just like an enum
public static PostUsersSignInDataAuthenticationStatus[] values() {
synchronized (PostUsersSignInDataAuthenticationStatus.class) {
return values.values().toArray(new PostUsersSignInDataAuthenticationStatus[] {});
}
}
private static final Map<String, PostUsersSignInDataAuthenticationStatus> createValuesMap() {
Map<String, PostUsersSignInDataAuthenticationStatus> map = new LinkedHashMap<>();
map.put("Inactive", INACTIVE);
map.put("Active", ACTIVE);
return map;
}
private static final Map<String, PostUsersSignInDataAuthenticationStatusEnum> createEnumsMap() {
Map<String, PostUsersSignInDataAuthenticationStatusEnum> map = new HashMap<>();
map.put("Inactive", PostUsersSignInDataAuthenticationStatusEnum.INACTIVE);
map.put("Active", PostUsersSignInDataAuthenticationStatusEnum.ACTIVE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PostUsersSignInDataAuthenticationStatus> {
protected _Serializer() {
super(PostUsersSignInDataAuthenticationStatus.class);
}
@Override
public void serialize(PostUsersSignInDataAuthenticationStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PostUsersSignInDataAuthenticationStatus> {
protected _Deserializer() {
super(PostUsersSignInDataAuthenticationStatus.class);
}
@Override
public PostUsersSignInDataAuthenticationStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PostUsersSignInDataAuthenticationStatus.of(v);
}
}
public enum PostUsersSignInDataAuthenticationStatusEnum {
INACTIVE("Inactive"),
ACTIVE("Active"),;
private final String value;
private PostUsersSignInDataAuthenticationStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,38 +3,182 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* PostUsersSignInDataMailingListStatus
*
* <p>Your current mailing list status (active or unsubscribed)
*/
public enum PostUsersSignInDataMailingListStatus {
ACTIVE("active"),
UNSUBSCRIBED("unsubscribed");
@JsonDeserialize(using = PostUsersSignInDataMailingListStatus._Deserializer.class)
@JsonSerialize(using = PostUsersSignInDataMailingListStatus._Serializer.class)
public class PostUsersSignInDataMailingListStatus {
public static final PostUsersSignInDataMailingListStatus ACTIVE = new PostUsersSignInDataMailingListStatus("active");
public static final PostUsersSignInDataMailingListStatus UNSUBSCRIBED = new PostUsersSignInDataMailingListStatus("unsubscribed");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PostUsersSignInDataMailingListStatus> values = createValuesMap();
private static final Map<String, PostUsersSignInDataMailingListStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PostUsersSignInDataMailingListStatus(String value) {
this.value = value;
}
/**
* Returns a PostUsersSignInDataMailingListStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PostUsersSignInDataMailingListStatus
*/
public static PostUsersSignInDataMailingListStatus of(String value) {
synchronized (PostUsersSignInDataMailingListStatus.class) {
return values.computeIfAbsent(value, v -> new PostUsersSignInDataMailingListStatus(v));
}
}
public String value() {
return value;
}
public static Optional<PostUsersSignInDataMailingListStatus> fromValue(String value) {
for (PostUsersSignInDataMailingListStatus o: PostUsersSignInDataMailingListStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PostUsersSignInDataMailingListStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PostUsersSignInDataMailingListStatus other = (PostUsersSignInDataMailingListStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PostUsersSignInDataMailingListStatus [value=" + value + "]";
}
// return an array just like an enum
public static PostUsersSignInDataMailingListStatus[] values() {
synchronized (PostUsersSignInDataMailingListStatus.class) {
return values.values().toArray(new PostUsersSignInDataMailingListStatus[] {});
}
}
private static final Map<String, PostUsersSignInDataMailingListStatus> createValuesMap() {
Map<String, PostUsersSignInDataMailingListStatus> map = new LinkedHashMap<>();
map.put("active", ACTIVE);
map.put("unsubscribed", UNSUBSCRIBED);
return map;
}
private static final Map<String, PostUsersSignInDataMailingListStatusEnum> createEnumsMap() {
Map<String, PostUsersSignInDataMailingListStatusEnum> map = new HashMap<>();
map.put("active", PostUsersSignInDataMailingListStatusEnum.ACTIVE);
map.put("unsubscribed", PostUsersSignInDataMailingListStatusEnum.UNSUBSCRIBED);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PostUsersSignInDataMailingListStatus> {
protected _Serializer() {
super(PostUsersSignInDataMailingListStatus.class);
}
@Override
public void serialize(PostUsersSignInDataMailingListStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PostUsersSignInDataMailingListStatus> {
protected _Deserializer() {
super(PostUsersSignInDataMailingListStatus.class);
}
@Override
public PostUsersSignInDataMailingListStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PostUsersSignInDataMailingListStatus.of(v);
}
}
public enum PostUsersSignInDataMailingListStatusEnum {
ACTIVE("active"),
UNSUBSCRIBED("unsubscribed"),;
private final String value;
private PostUsersSignInDataMailingListStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,32 +3,173 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum PostUsersSignInDataState {
ENDED("ended");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = PostUsersSignInDataState._Deserializer.class)
@JsonSerialize(using = PostUsersSignInDataState._Serializer.class)
public class PostUsersSignInDataState {
public static final PostUsersSignInDataState ENDED = new PostUsersSignInDataState("ended");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PostUsersSignInDataState> values = createValuesMap();
private static final Map<String, PostUsersSignInDataStateEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PostUsersSignInDataState(String value) {
this.value = value;
}
/**
* Returns a PostUsersSignInDataState with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PostUsersSignInDataState
*/
public static PostUsersSignInDataState of(String value) {
synchronized (PostUsersSignInDataState.class) {
return values.computeIfAbsent(value, v -> new PostUsersSignInDataState(v));
}
}
public String value() {
return value;
}
public static Optional<PostUsersSignInDataState> fromValue(String value) {
for (PostUsersSignInDataState o: PostUsersSignInDataState.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PostUsersSignInDataStateEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PostUsersSignInDataState other = (PostUsersSignInDataState) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PostUsersSignInDataState [value=" + value + "]";
}
// return an array just like an enum
public static PostUsersSignInDataState[] values() {
synchronized (PostUsersSignInDataState.class) {
return values.values().toArray(new PostUsersSignInDataState[] {});
}
}
private static final Map<String, PostUsersSignInDataState> createValuesMap() {
Map<String, PostUsersSignInDataState> map = new LinkedHashMap<>();
map.put("ended", ENDED);
return map;
}
private static final Map<String, PostUsersSignInDataStateEnum> createEnumsMap() {
Map<String, PostUsersSignInDataStateEnum> map = new HashMap<>();
map.put("ended", PostUsersSignInDataStateEnum.ENDED);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PostUsersSignInDataState> {
protected _Serializer() {
super(PostUsersSignInDataState.class);
}
@Override
public void serialize(PostUsersSignInDataState value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PostUsersSignInDataState> {
protected _Deserializer() {
super(PostUsersSignInDataState.class);
}
@Override
public PostUsersSignInDataState deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PostUsersSignInDataState.of(v);
}
}
public enum PostUsersSignInDataStateEnum {
ENDED("ended"),;
private final String value;
private PostUsersSignInDataStateEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,33 +3,177 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum PostUsersSignInDataStatus {
ONLINE("online"),
OFFLINE("offline");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = PostUsersSignInDataStatus._Deserializer.class)
@JsonSerialize(using = PostUsersSignInDataStatus._Serializer.class)
public class PostUsersSignInDataStatus {
public static final PostUsersSignInDataStatus ONLINE = new PostUsersSignInDataStatus("online");
public static final PostUsersSignInDataStatus OFFLINE = new PostUsersSignInDataStatus("offline");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, PostUsersSignInDataStatus> values = createValuesMap();
private static final Map<String, PostUsersSignInDataStatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private PostUsersSignInDataStatus(String value) {
this.value = value;
}
/**
* Returns a PostUsersSignInDataStatus with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as PostUsersSignInDataStatus
*/
public static PostUsersSignInDataStatus of(String value) {
synchronized (PostUsersSignInDataStatus.class) {
return values.computeIfAbsent(value, v -> new PostUsersSignInDataStatus(v));
}
}
public String value() {
return value;
}
public static Optional<PostUsersSignInDataStatus> fromValue(String value) {
for (PostUsersSignInDataStatus o: PostUsersSignInDataStatus.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<PostUsersSignInDataStatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
PostUsersSignInDataStatus other = (PostUsersSignInDataStatus) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "PostUsersSignInDataStatus [value=" + value + "]";
}
// return an array just like an enum
public static PostUsersSignInDataStatus[] values() {
synchronized (PostUsersSignInDataStatus.class) {
return values.values().toArray(new PostUsersSignInDataStatus[] {});
}
}
private static final Map<String, PostUsersSignInDataStatus> createValuesMap() {
Map<String, PostUsersSignInDataStatus> map = new LinkedHashMap<>();
map.put("online", ONLINE);
map.put("offline", OFFLINE);
return map;
}
private static final Map<String, PostUsersSignInDataStatusEnum> createEnumsMap() {
Map<String, PostUsersSignInDataStatusEnum> map = new HashMap<>();
map.put("online", PostUsersSignInDataStatusEnum.ONLINE);
map.put("offline", PostUsersSignInDataStatusEnum.OFFLINE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<PostUsersSignInDataStatus> {
protected _Serializer() {
super(PostUsersSignInDataStatus.class);
}
@Override
public void serialize(PostUsersSignInDataStatus value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<PostUsersSignInDataStatus> {
protected _Deserializer() {
super(PostUsersSignInDataStatus.class);
}
@Override
public PostUsersSignInDataStatus deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return PostUsersSignInDataStatus.of(v);
}
}
public enum PostUsersSignInDataStatusEnum {
ONLINE("online"),
OFFLINE("offline"),;
private final String value;
private PostUsersSignInDataStatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -10,9 +10,9 @@ import java.util.Optional;
/**
* QueryParamForce
*
* <p>Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* <p>Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
*/
public enum QueryParamForce {

View File

@@ -3,37 +3,183 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* QueryParamSmart
*
* <p>type of playlists to return (default is all).
*/
public enum QueryParamSmart {
ZERO(0L),
ONE(1L);
@JsonDeserialize(using = QueryParamSmart._Deserializer.class)
@JsonSerialize(using = QueryParamSmart._Serializer.class)
public class QueryParamSmart {
public static final QueryParamSmart ZERO = new QueryParamSmart(0L);
public static final QueryParamSmart ONE = new QueryParamSmart(1L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, QueryParamSmart> values = createValuesMap();
private static final Map<Long, QueryParamSmartEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private QueryParamSmart(long value) {
this.value = value;
}
/**
* Returns a QueryParamSmart with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as QueryParamSmart
*/
public static QueryParamSmart of(long value) {
synchronized (QueryParamSmart.class) {
return values.computeIfAbsent(value, v -> new QueryParamSmart(v));
}
}
public long value() {
return value;
}
public static Optional<QueryParamSmart> fromValue(long value) {
for (QueryParamSmart o: QueryParamSmart.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<QueryParamSmartEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
QueryParamSmart other = (QueryParamSmart) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "QueryParamSmart [value=" + value + "]";
}
// return an array just like an enum
public static QueryParamSmart[] values() {
synchronized (QueryParamSmart.class) {
return values.values().toArray(new QueryParamSmart[] {});
}
}
private static final Map<Long, QueryParamSmart> createValuesMap() {
Map<Long, QueryParamSmart> map = new LinkedHashMap<>();
map.put(0L, ZERO);
map.put(1L, ONE);
return map;
}
private static final Map<Long, QueryParamSmartEnum> createEnumsMap() {
Map<Long, QueryParamSmartEnum> map = new HashMap<>();
map.put(0L, QueryParamSmartEnum.ZERO);
map.put(1L, QueryParamSmartEnum.ONE);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<QueryParamSmart> {
protected _Serializer() {
super(QueryParamSmart.class);
}
@Override
public void serialize(QueryParamSmart value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<QueryParamSmart> {
protected _Deserializer() {
super(QueryParamSmart.class);
}
@Override
public QueryParamSmart deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return QueryParamSmart.of(v);
}
}
public enum QueryParamSmartEnum {
ZERO(0L),
ONE(1L),;
private final long value;
private QueryParamSmartEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* QueryParamType
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum QueryParamType {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = QueryParamType._Deserializer.class)
@JsonSerialize(using = QueryParamType._Serializer.class)
public class QueryParamType {
public static final QueryParamType Movie = new QueryParamType(1L);
public static final QueryParamType TvShow = new QueryParamType(2L);
public static final QueryParamType Season = new QueryParamType(3L);
public static final QueryParamType Episode = new QueryParamType(4L);
public static final QueryParamType Audio = new QueryParamType(8L);
public static final QueryParamType Album = new QueryParamType(9L);
public static final QueryParamType Track = new QueryParamType(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, QueryParamType> values = createValuesMap();
private static final Map<Long, QueryParamTypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private QueryParamType(long value) {
this.value = value;
}
/**
* Returns a QueryParamType with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as QueryParamType
*/
public static QueryParamType of(long value) {
synchronized (QueryParamType.class) {
return values.computeIfAbsent(value, v -> new QueryParamType(v));
}
}
public long value() {
return value;
}
public static Optional<QueryParamType> fromValue(long value) {
for (QueryParamType o: QueryParamType.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<QueryParamTypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
QueryParamType other = (QueryParamType) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "QueryParamType [value=" + value + "]";
}
// return an array just like an enum
public static QueryParamType[] values() {
synchronized (QueryParamType.class) {
return values.values().toArray(new QueryParamType[] {});
}
}
private static final Map<Long, QueryParamType> createValuesMap() {
Map<Long, QueryParamType> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, QueryParamTypeEnum> createEnumsMap() {
Map<Long, QueryParamTypeEnum> map = new HashMap<>();
map.put(1L, QueryParamTypeEnum.Movie);
map.put(2L, QueryParamTypeEnum.TvShow);
map.put(3L, QueryParamTypeEnum.Season);
map.put(4L, QueryParamTypeEnum.Episode);
map.put(8L, QueryParamTypeEnum.Audio);
map.put(9L, QueryParamTypeEnum.Album);
map.put(10L, QueryParamTypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<QueryParamType> {
protected _Serializer() {
super(QueryParamType.class);
}
@Override
public void serialize(QueryParamType value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<QueryParamType> {
protected _Deserializer() {
super(QueryParamType.class);
}
@Override
public QueryParamType deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return QueryParamType.of(v);
}
}
public enum QueryParamTypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private QueryParamTypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,36 +3,189 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
public enum SearchTypes {
MOVIES("movies"),
MUSIC("music"),
OTHER_VIDEOS("otherVideos"),
PEOPLE("people"),
TV("tv");
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
@JsonDeserialize(using = SearchTypes._Deserializer.class)
@JsonSerialize(using = SearchTypes._Serializer.class)
public class SearchTypes {
public static final SearchTypes MOVIES = new SearchTypes("movies");
public static final SearchTypes MUSIC = new SearchTypes("music");
public static final SearchTypes OTHER_VIDEOS = new SearchTypes("otherVideos");
public static final SearchTypes PEOPLE = new SearchTypes("people");
public static final SearchTypes TV = new SearchTypes("tv");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, SearchTypes> values = createValuesMap();
private static final Map<String, SearchTypesEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private SearchTypes(String value) {
this.value = value;
}
/**
* Returns a SearchTypes with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as SearchTypes
*/
public static SearchTypes of(String value) {
synchronized (SearchTypes.class) {
return values.computeIfAbsent(value, v -> new SearchTypes(v));
}
}
public String value() {
return value;
}
public static Optional<SearchTypes> fromValue(String value) {
for (SearchTypes o: SearchTypes.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<SearchTypesEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SearchTypes other = (SearchTypes) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "SearchTypes [value=" + value + "]";
}
// return an array just like an enum
public static SearchTypes[] values() {
synchronized (SearchTypes.class) {
return values.values().toArray(new SearchTypes[] {});
}
}
private static final Map<String, SearchTypes> createValuesMap() {
Map<String, SearchTypes> map = new LinkedHashMap<>();
map.put("movies", MOVIES);
map.put("music", MUSIC);
map.put("otherVideos", OTHER_VIDEOS);
map.put("people", PEOPLE);
map.put("tv", TV);
return map;
}
private static final Map<String, SearchTypesEnum> createEnumsMap() {
Map<String, SearchTypesEnum> map = new HashMap<>();
map.put("movies", SearchTypesEnum.MOVIES);
map.put("music", SearchTypesEnum.MUSIC);
map.put("otherVideos", SearchTypesEnum.OTHER_VIDEOS);
map.put("people", SearchTypesEnum.PEOPLE);
map.put("tv", SearchTypesEnum.TV);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<SearchTypes> {
protected _Serializer() {
super(SearchTypes.class);
}
@Override
public void serialize(SearchTypes value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<SearchTypes> {
protected _Deserializer() {
super(SearchTypes.class);
}
@Override
public SearchTypes deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return SearchTypes.of(v);
}
}
public enum SearchTypesEnum {
MOVIES("movies"),
MUSIC("music"),
OTHER_VIDEOS("otherVideos"),
PEOPLE("people"),
TV("tv"),;
private final String value;
private SearchTypesEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,11 +3,44 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* ShowOrdering
*
@@ -18,31 +51,151 @@ import java.util.Optional;
* dvd = TheTVDB (DVD),
* absolute = TheTVDB (Absolute)).
*/
public enum ShowOrdering {
None("None"),
TmdbAiring("tmdbAiring"),
TvdbAired("aired"),
TvdbDvd("dvd"),
TvdbAbsolute("absolute");
@JsonDeserialize(using = ShowOrdering._Deserializer.class)
@JsonSerialize(using = ShowOrdering._Serializer.class)
public class ShowOrdering {
public static final ShowOrdering None = new ShowOrdering("None");
public static final ShowOrdering TmdbAiring = new ShowOrdering("tmdbAiring");
public static final ShowOrdering TvdbAired = new ShowOrdering("aired");
public static final ShowOrdering TvdbDvd = new ShowOrdering("dvd");
public static final ShowOrdering TvdbAbsolute = new ShowOrdering("absolute");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, ShowOrdering> values = createValuesMap();
private static final Map<String, ShowOrderingEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private ShowOrdering(String value) {
this.value = value;
}
/**
* Returns a ShowOrdering with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as ShowOrdering
*/
public static ShowOrdering of(String value) {
synchronized (ShowOrdering.class) {
return values.computeIfAbsent(value, v -> new ShowOrdering(v));
}
}
public String value() {
return value;
}
public static Optional<ShowOrdering> fromValue(String value) {
for (ShowOrdering o: ShowOrdering.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<ShowOrderingEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ShowOrdering other = (ShowOrdering) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "ShowOrdering [value=" + value + "]";
}
// return an array just like an enum
public static ShowOrdering[] values() {
synchronized (ShowOrdering.class) {
return values.values().toArray(new ShowOrdering[] {});
}
}
private static final Map<String, ShowOrdering> createValuesMap() {
Map<String, ShowOrdering> map = new LinkedHashMap<>();
map.put("None", None);
map.put("tmdbAiring", TmdbAiring);
map.put("aired", TvdbAired);
map.put("dvd", TvdbDvd);
map.put("absolute", TvdbAbsolute);
return map;
}
private static final Map<String, ShowOrderingEnum> createEnumsMap() {
Map<String, ShowOrderingEnum> map = new HashMap<>();
map.put("None", ShowOrderingEnum.None);
map.put("tmdbAiring", ShowOrderingEnum.TmdbAiring);
map.put("aired", ShowOrderingEnum.TvdbAired);
map.put("dvd", ShowOrderingEnum.TvdbDvd);
map.put("absolute", ShowOrderingEnum.TvdbAbsolute);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<ShowOrdering> {
protected _Serializer() {
super(ShowOrdering.class);
}
@Override
public void serialize(ShowOrdering value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<ShowOrdering> {
protected _Deserializer() {
super(ShowOrdering.class);
}
@Override
public ShowOrdering deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return ShowOrdering.of(v);
}
}
public enum ShowOrderingEnum {
None("None"),
TmdbAiring("tmdbAiring"),
TvdbAired("aired"),
TvdbDvd("dvd"),
TvdbAbsolute("absolute"),;
private final String value;
private ShowOrderingEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,39 +3,186 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* State
*
* <p>The state of the media item
*/
public enum State {
PLAYING("playing"),
PAUSED("paused"),
STOPPED("stopped");
@JsonDeserialize(using = State._Deserializer.class)
@JsonSerialize(using = State._Serializer.class)
public class State {
public static final State PLAYING = new State("playing");
public static final State PAUSED = new State("paused");
public static final State STOPPED = new State("stopped");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, State> values = createValuesMap();
private static final Map<String, StateEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private State(String value) {
this.value = value;
}
/**
* Returns a State with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as State
*/
public static State of(String value) {
synchronized (State.class) {
return values.computeIfAbsent(value, v -> new State(v));
}
}
public String value() {
return value;
}
public static Optional<State> fromValue(String value) {
for (State o: State.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<StateEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
State other = (State) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "State [value=" + value + "]";
}
// return an array just like an enum
public static State[] values() {
synchronized (State.class) {
return values.values().toArray(new State[] {});
}
}
private static final Map<String, State> createValuesMap() {
Map<String, State> map = new LinkedHashMap<>();
map.put("playing", PLAYING);
map.put("paused", PAUSED);
map.put("stopped", STOPPED);
return map;
}
private static final Map<String, StateEnum> createEnumsMap() {
Map<String, StateEnum> map = new HashMap<>();
map.put("playing", StateEnum.PLAYING);
map.put("paused", StateEnum.PAUSED);
map.put("stopped", StateEnum.STOPPED);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<State> {
protected _Serializer() {
super(State.class);
}
@Override
public void serialize(State value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<State> {
protected _Deserializer() {
super(State.class);
}
@Override
public State deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return State.of(v);
}
}
public enum StateEnum {
PLAYING("playing"),
PAUSED("paused"),
STOPPED("stopped"),;
private final String value;
private StateEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,37 +3,178 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* Status
*
* <p>Current friend request status
*/
public enum Status {
ACCEPTED("accepted");
@JsonDeserialize(using = Status._Deserializer.class)
@JsonSerialize(using = Status._Serializer.class)
public class Status {
public static final Status ACCEPTED = new Status("accepted");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, Status> values = createValuesMap();
private static final Map<String, StatusEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private Status(String value) {
this.value = value;
}
/**
* Returns a Status with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as Status
*/
public static Status of(String value) {
synchronized (Status.class) {
return values.computeIfAbsent(value, v -> new Status(v));
}
}
public String value() {
return value;
}
public static Optional<Status> fromValue(String value) {
for (Status o: Status.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<StatusEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Status other = (Status) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "Status [value=" + value + "]";
}
// return an array just like an enum
public static Status[] values() {
synchronized (Status.class) {
return values.values().toArray(new Status[] {});
}
}
private static final Map<String, Status> createValuesMap() {
Map<String, Status> map = new LinkedHashMap<>();
map.put("accepted", ACCEPTED);
return map;
}
private static final Map<String, StatusEnum> createEnumsMap() {
Map<String, StatusEnum> map = new HashMap<>();
map.put("accepted", StatusEnum.ACCEPTED);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<Status> {
protected _Serializer() {
super(Status.class);
}
@Override
public void serialize(Status value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<Status> {
protected _Deserializer() {
super(Status.class);
}
@Override
public Status deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return Status.of(v);
}
}
public enum StatusEnum {
ACCEPTED("accepted"),;
private final String value;
private StatusEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,52 +3,238 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* Tag
*
* <p>A key representing a specific tag within the section.
*/
public enum Tag {
UNWATCHED("unwatched"),
NEWEST("newest"),
RECENTLY_ADDED("recentlyAdded"),
RECENTLY_VIEWED("recentlyViewed"),
ON_DECK("onDeck"),
COLLECTION("collection"),
EDITION("edition"),
YEAR("year"),
DECADE("decade"),
DIRECTOR("director"),
CONTENT_RATING("contentRating"),
RATING("rating"),
RESOLUTION("resolution"),
FIRST_CHARACTER("firstCharacter"),
FOLDER("folder"),
ALBUMS("albums");
@JsonDeserialize(using = Tag._Deserializer.class)
@JsonSerialize(using = Tag._Serializer.class)
public class Tag {
public static final Tag UNWATCHED = new Tag("unwatched");
public static final Tag NEWEST = new Tag("newest");
public static final Tag RECENTLY_ADDED = new Tag("recentlyAdded");
public static final Tag RECENTLY_VIEWED = new Tag("recentlyViewed");
public static final Tag ON_DECK = new Tag("onDeck");
public static final Tag COLLECTION = new Tag("collection");
public static final Tag EDITION = new Tag("edition");
public static final Tag YEAR = new Tag("year");
public static final Tag DECADE = new Tag("decade");
public static final Tag DIRECTOR = new Tag("director");
public static final Tag CONTENT_RATING = new Tag("contentRating");
public static final Tag RATING = new Tag("rating");
public static final Tag RESOLUTION = new Tag("resolution");
public static final Tag FIRST_CHARACTER = new Tag("firstCharacter");
public static final Tag FOLDER = new Tag("folder");
public static final Tag ALBUMS = new Tag("albums");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, Tag> values = createValuesMap();
private static final Map<String, TagEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private Tag(String value) {
this.value = value;
}
/**
* Returns a Tag with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as Tag
*/
public static Tag of(String value) {
synchronized (Tag.class) {
return values.computeIfAbsent(value, v -> new Tag(v));
}
}
public String value() {
return value;
}
public static Optional<Tag> fromValue(String value) {
for (Tag o: Tag.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<TagEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Tag other = (Tag) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "Tag [value=" + value + "]";
}
// return an array just like an enum
public static Tag[] values() {
synchronized (Tag.class) {
return values.values().toArray(new Tag[] {});
}
}
private static final Map<String, Tag> createValuesMap() {
Map<String, Tag> map = new LinkedHashMap<>();
map.put("unwatched", UNWATCHED);
map.put("newest", NEWEST);
map.put("recentlyAdded", RECENTLY_ADDED);
map.put("recentlyViewed", RECENTLY_VIEWED);
map.put("onDeck", ON_DECK);
map.put("collection", COLLECTION);
map.put("edition", EDITION);
map.put("year", YEAR);
map.put("decade", DECADE);
map.put("director", DIRECTOR);
map.put("contentRating", CONTENT_RATING);
map.put("rating", RATING);
map.put("resolution", RESOLUTION);
map.put("firstCharacter", FIRST_CHARACTER);
map.put("folder", FOLDER);
map.put("albums", ALBUMS);
return map;
}
private static final Map<String, TagEnum> createEnumsMap() {
Map<String, TagEnum> map = new HashMap<>();
map.put("unwatched", TagEnum.UNWATCHED);
map.put("newest", TagEnum.NEWEST);
map.put("recentlyAdded", TagEnum.RECENTLY_ADDED);
map.put("recentlyViewed", TagEnum.RECENTLY_VIEWED);
map.put("onDeck", TagEnum.ON_DECK);
map.put("collection", TagEnum.COLLECTION);
map.put("edition", TagEnum.EDITION);
map.put("year", TagEnum.YEAR);
map.put("decade", TagEnum.DECADE);
map.put("director", TagEnum.DIRECTOR);
map.put("contentRating", TagEnum.CONTENT_RATING);
map.put("rating", TagEnum.RATING);
map.put("resolution", TagEnum.RESOLUTION);
map.put("firstCharacter", TagEnum.FIRST_CHARACTER);
map.put("folder", TagEnum.FOLDER);
map.put("albums", TagEnum.ALBUMS);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<Tag> {
protected _Serializer() {
super(Tag.class);
}
@Override
public void serialize(Tag value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<Tag> {
protected _Deserializer() {
super(Tag.class);
}
@Override
public Tag deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return Tag.of(v);
}
}
public enum TagEnum {
UNWATCHED("unwatched"),
NEWEST("newest"),
RECENTLY_ADDED("recentlyAdded"),
RECENTLY_VIEWED("recentlyViewed"),
ON_DECK("onDeck"),
COLLECTION("collection"),
EDITION("edition"),
YEAR("year"),
DECADE("decade"),
DIRECTOR("director"),
CONTENT_RATING("contentRating"),
RATING("rating"),
RESOLUTION("resolution"),
FIRST_CHARACTER("firstCharacter"),
FOLDER("folder"),
ALBUMS("albums"),;
private final String value;
private TagEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,50 +3,230 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* TaskName
*
* <p>the name of the task to be started.
*/
public enum TaskName {
BACKUP_DATABASE("BackupDatabase"),
BUILD_GRACENOTE_COLLECTIONS("BuildGracenoteCollections"),
CHECK_FOR_UPDATES("CheckForUpdates"),
CLEAN_OLD_BUNDLES("CleanOldBundles"),
CLEAN_OLD_CACHE_FILES("CleanOldCacheFiles"),
DEEP_MEDIA_ANALYSIS("DeepMediaAnalysis"),
GENERATE_AUTO_TAGS("GenerateAutoTags"),
GENERATE_CHAPTER_THUMBS("GenerateChapterThumbs"),
GENERATE_MEDIA_INDEX_FILES("GenerateMediaIndexFiles"),
OPTIMIZE_DATABASE("OptimizeDatabase"),
REFRESH_LIBRARIES("RefreshLibraries"),
REFRESH_LOCAL_MEDIA("RefreshLocalMedia"),
REFRESH_PERIODIC_METADATA("RefreshPeriodicMetadata"),
UPGRADE_MEDIA_ANALYSIS("UpgradeMediaAnalysis");
@JsonDeserialize(using = TaskName._Deserializer.class)
@JsonSerialize(using = TaskName._Serializer.class)
public class TaskName {
public static final TaskName BACKUP_DATABASE = new TaskName("BackupDatabase");
public static final TaskName BUILD_GRACENOTE_COLLECTIONS = new TaskName("BuildGracenoteCollections");
public static final TaskName CHECK_FOR_UPDATES = new TaskName("CheckForUpdates");
public static final TaskName CLEAN_OLD_BUNDLES = new TaskName("CleanOldBundles");
public static final TaskName CLEAN_OLD_CACHE_FILES = new TaskName("CleanOldCacheFiles");
public static final TaskName DEEP_MEDIA_ANALYSIS = new TaskName("DeepMediaAnalysis");
public static final TaskName GENERATE_AUTO_TAGS = new TaskName("GenerateAutoTags");
public static final TaskName GENERATE_CHAPTER_THUMBS = new TaskName("GenerateChapterThumbs");
public static final TaskName GENERATE_MEDIA_INDEX_FILES = new TaskName("GenerateMediaIndexFiles");
public static final TaskName OPTIMIZE_DATABASE = new TaskName("OptimizeDatabase");
public static final TaskName REFRESH_LIBRARIES = new TaskName("RefreshLibraries");
public static final TaskName REFRESH_LOCAL_MEDIA = new TaskName("RefreshLocalMedia");
public static final TaskName REFRESH_PERIODIC_METADATA = new TaskName("RefreshPeriodicMetadata");
public static final TaskName UPGRADE_MEDIA_ANALYSIS = new TaskName("UpgradeMediaAnalysis");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, TaskName> values = createValuesMap();
private static final Map<String, TaskNameEnum> enums = createEnumsMap();
@JsonValue
private final String value;
private TaskName(String value) {
this.value = value;
}
/**
* Returns a TaskName with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as TaskName
*/
public static TaskName of(String value) {
synchronized (TaskName.class) {
return values.computeIfAbsent(value, v -> new TaskName(v));
}
}
public String value() {
return value;
}
public static Optional<TaskName> fromValue(String value) {
for (TaskName o: TaskName.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<TaskNameEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
TaskName other = (TaskName) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "TaskName [value=" + value + "]";
}
// return an array just like an enum
public static TaskName[] values() {
synchronized (TaskName.class) {
return values.values().toArray(new TaskName[] {});
}
}
private static final Map<String, TaskName> createValuesMap() {
Map<String, TaskName> map = new LinkedHashMap<>();
map.put("BackupDatabase", BACKUP_DATABASE);
map.put("BuildGracenoteCollections", BUILD_GRACENOTE_COLLECTIONS);
map.put("CheckForUpdates", CHECK_FOR_UPDATES);
map.put("CleanOldBundles", CLEAN_OLD_BUNDLES);
map.put("CleanOldCacheFiles", CLEAN_OLD_CACHE_FILES);
map.put("DeepMediaAnalysis", DEEP_MEDIA_ANALYSIS);
map.put("GenerateAutoTags", GENERATE_AUTO_TAGS);
map.put("GenerateChapterThumbs", GENERATE_CHAPTER_THUMBS);
map.put("GenerateMediaIndexFiles", GENERATE_MEDIA_INDEX_FILES);
map.put("OptimizeDatabase", OPTIMIZE_DATABASE);
map.put("RefreshLibraries", REFRESH_LIBRARIES);
map.put("RefreshLocalMedia", REFRESH_LOCAL_MEDIA);
map.put("RefreshPeriodicMetadata", REFRESH_PERIODIC_METADATA);
map.put("UpgradeMediaAnalysis", UPGRADE_MEDIA_ANALYSIS);
return map;
}
private static final Map<String, TaskNameEnum> createEnumsMap() {
Map<String, TaskNameEnum> map = new HashMap<>();
map.put("BackupDatabase", TaskNameEnum.BACKUP_DATABASE);
map.put("BuildGracenoteCollections", TaskNameEnum.BUILD_GRACENOTE_COLLECTIONS);
map.put("CheckForUpdates", TaskNameEnum.CHECK_FOR_UPDATES);
map.put("CleanOldBundles", TaskNameEnum.CLEAN_OLD_BUNDLES);
map.put("CleanOldCacheFiles", TaskNameEnum.CLEAN_OLD_CACHE_FILES);
map.put("DeepMediaAnalysis", TaskNameEnum.DEEP_MEDIA_ANALYSIS);
map.put("GenerateAutoTags", TaskNameEnum.GENERATE_AUTO_TAGS);
map.put("GenerateChapterThumbs", TaskNameEnum.GENERATE_CHAPTER_THUMBS);
map.put("GenerateMediaIndexFiles", TaskNameEnum.GENERATE_MEDIA_INDEX_FILES);
map.put("OptimizeDatabase", TaskNameEnum.OPTIMIZE_DATABASE);
map.put("RefreshLibraries", TaskNameEnum.REFRESH_LIBRARIES);
map.put("RefreshLocalMedia", TaskNameEnum.REFRESH_LOCAL_MEDIA);
map.put("RefreshPeriodicMetadata", TaskNameEnum.REFRESH_PERIODIC_METADATA);
map.put("UpgradeMediaAnalysis", TaskNameEnum.UPGRADE_MEDIA_ANALYSIS);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<TaskName> {
protected _Serializer() {
super(TaskName.class);
}
@Override
public void serialize(TaskName value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<TaskName> {
protected _Deserializer() {
super(TaskName.class);
}
@Override
public TaskName deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return TaskName.of(v);
}
}
public enum TaskNameEnum {
BACKUP_DATABASE("BackupDatabase"),
BUILD_GRACENOTE_COLLECTIONS("BuildGracenoteCollections"),
CHECK_FOR_UPDATES("CheckForUpdates"),
CLEAN_OLD_BUNDLES("CleanOldBundles"),
CLEAN_OLD_CACHE_FILES("CleanOldCacheFiles"),
DEEP_MEDIA_ANALYSIS("DeepMediaAnalysis"),
GENERATE_AUTO_TAGS("GenerateAutoTags"),
GENERATE_CHAPTER_THUMBS("GenerateChapterThumbs"),
GENERATE_MEDIA_INDEX_FILES("GenerateMediaIndexFiles"),
OPTIMIZE_DATABASE("OptimizeDatabase"),
REFRESH_LIBRARIES("RefreshLibraries"),
REFRESH_LOCAL_MEDIA("RefreshLocalMedia"),
REFRESH_PERIODIC_METADATA("RefreshPeriodicMetadata"),
UPGRADE_MEDIA_ANALYSIS("UpgradeMediaAnalysis"),;
private final String value;
private TaskNameEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -3,10 +3,45 @@
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* Type
*
@@ -17,33 +52,159 @@ import java.util.Optional;
* 4 = episode
* E.g. A movie library will not return anything with type 3 as there are no seasons for movie libraries
*/
public enum Type {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L);
@JsonDeserialize(using = Type._Deserializer.class)
@JsonSerialize(using = Type._Serializer.class)
public class Type {
public static final Type Movie = new Type(1L);
public static final Type TvShow = new Type(2L);
public static final Type Season = new Type(3L);
public static final Type Episode = new Type(4L);
public static final Type Audio = new Type(8L);
public static final Type Album = new Type(9L);
public static final Type Track = new Type(10L);
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<Long, Type> values = createValuesMap();
private static final Map<Long, TypeEnum> enums = createEnumsMap();
@JsonValue
private final long value;
private Type(long value) {
this.value = value;
}
/**
* Returns a Type with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as Type
*/
public static Type of(long value) {
synchronized (Type.class) {
return values.computeIfAbsent(value, v -> new Type(v));
}
}
public long value() {
return value;
}
public static Optional<Type> fromValue(long value) {
for (Type o: Type.values()) {
if (Objects.deepEquals(o.value, value)) {
return Optional.of(o);
}
public Optional<TypeEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Type other = (Type) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "Type [value=" + value + "]";
}
// return an array just like an enum
public static Type[] values() {
synchronized (Type.class) {
return values.values().toArray(new Type[] {});
}
}
private static final Map<Long, Type> createValuesMap() {
Map<Long, Type> map = new LinkedHashMap<>();
map.put(1L, Movie);
map.put(2L, TvShow);
map.put(3L, Season);
map.put(4L, Episode);
map.put(8L, Audio);
map.put(9L, Album);
map.put(10L, Track);
return map;
}
private static final Map<Long, TypeEnum> createEnumsMap() {
Map<Long, TypeEnum> map = new HashMap<>();
map.put(1L, TypeEnum.Movie);
map.put(2L, TypeEnum.TvShow);
map.put(3L, TypeEnum.Season);
map.put(4L, TypeEnum.Episode);
map.put(8L, TypeEnum.Audio);
map.put(9L, TypeEnum.Album);
map.put(10L, TypeEnum.Track);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<Type> {
protected _Serializer() {
super(Type.class);
}
@Override
public void serialize(Type value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<Type> {
protected _Deserializer() {
super(Type.class);
}
@Override
public Type deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
long v = p.readValueAs(new TypeReference<Long>() {});
// use the factory method to ensure we get singletons
return Type.of(v);
}
}
public enum TypeEnum {
Movie(1L),
TvShow(2L),
Season(3L),
Episode(4L),
Audio(8L),
Album(9L),
Track(10L),;
private final long value;
private TypeEnum(long value) {
this.value = value;
}
public long value() {
return value;
}
return Optional.empty();
}
}

View File

@@ -17,20 +17,20 @@ import java.util.Objects;
public class UploadPlaylistRequest {
/**
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
*/
@SpeakeasyMetadata("queryParam:style=form,explode=true,name=path")
private String path;
/**
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
*/
@SpeakeasyMetadata("queryParam:style=form,explode=true,name=force")
@@ -56,11 +56,11 @@ public class UploadPlaylistRequest {
}
/**
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
*/
@JsonIgnore
@@ -69,9 +69,9 @@ public class UploadPlaylistRequest {
}
/**
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
*/
@JsonIgnore
@@ -92,11 +92,11 @@ public class UploadPlaylistRequest {
}
/**
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
*/
public UploadPlaylistRequest withPath(String path) {
@@ -106,9 +106,9 @@ public class UploadPlaylistRequest {
}
/**
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
*/
public UploadPlaylistRequest withForce(QueryParamForce force) {
@@ -171,11 +171,11 @@ public class UploadPlaylistRequest {
}
/**
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
* If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
* Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
* If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
* The GUID of each playlist is based on the filename.
*/
public Builder path(String path) {
@@ -185,9 +185,9 @@ public class UploadPlaylistRequest {
}
/**
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* Force overwriting of duplicate playlists.
* By default, a playlist file uploaded with the same path will overwrite the existing playlist.
* The `force` argument is used to disable overwriting.
* If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
*/
public Builder force(QueryParamForce force) {

View File

@@ -158,8 +158,8 @@ public final class SessionManager<T extends SessionManager.HasSessionKey> {
if (!t.tokenType.orElse("").equals("Bearer")) {
throw new AuthException("Expected 'Bearer' token type but was '" + t.tokenType.orElse("") + "'");
}
final Optional<OffsetDateTime> expiresAt = t.expiresInMs
.map(x -> OffsetDateTime.now().plus(x, ChronoUnit.MILLIS));
final Optional<OffsetDateTime> expiresAt = t.expiresInSeconds
.map(x -> OffsetDateTime.now().plus(x, ChronoUnit.SECONDS));
return new Session<T>(credentials, t.accessToken, scopes, expiresAt);
} catch (IOException | IllegalArgumentException | IllegalAccessException | InterruptedException | URISyntaxException e) {
throw new RuntimeException(e);
@@ -175,7 +175,7 @@ public final class SessionManager<T extends SessionManager.HasSessionKey> {
Optional<String> tokenType;
@JsonProperty("expires_in")
Optional<Long> expiresInMs;
Optional<Long> expiresInSeconds;;
}

View File

@@ -4,18 +4,139 @@
package dev.plexapi.sdk.utils;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpHeaders;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Locale;
import java.util.Set;
import java.util.function.Consumer;
import java.util.stream.Collectors;
public class SpeakeasyHTTPClient implements HTTPClient {
private static boolean debugEnabled = false;
// uppercase
private static Set<String> redactedHeaders = Set.of("AUTHORIZATION", "X-API-KEY");
private static Consumer<? super String> logger = System.out::println;
/**
* Experimental, may be changed anytime. Sets debug logging on or off for
* requests and responses including bodies for JSON content. WARNING: this
* setting may expose sensitive information in logs (like <i>Authorization</i>
* headers), and should only be enabled temporarily for local debugging
* purposes. By default, <i>Authorization</i> headers are redacted in the logs
* ( printed with a value of {@code [*******]}). Header suppression is controlled
* with the {@link #setRedactedHeaders(Collection)} method.
*
* @param enabled true to enable debug logging, false to disable it
*/
public static void setDebugLogging(boolean enabled) {
debugEnabled = enabled;
}
/**
* Experimental, may be changed anytime. When debug logging is enabled this
* method controls the suppression of header values in the logs. By default,
* <i>Authorization</i> headers are redacted in the logs (printed with a value
* of {@code [*******]}). Header suppression is controlled with the
* {@link #setRedactedHeaders(Collection)} method.
*
* @param headerNames the names (case-insensitive) of the headers whose values
* will be redacted in the logs
*/
public static void setRedactedHeaders(Collection<String> headerNames) {
redactedHeaders = headerNames.stream() //
.map(x -> x.toUpperCase(Locale.ENGLISH)) //
.collect(Collectors.toSet());
}
public static void setLogger(Consumer<? super String> logger) {
SpeakeasyHTTPClient.logger = logger;
}
@Override
public HttpResponse<InputStream> send(HttpRequest request)
throws IOException, InterruptedException, URISyntaxException {
HttpClient client = HttpClient.newHttpClient();
return client.send(request, HttpResponse.BodyHandlers.ofInputStream());
if (debugEnabled) {
request = logRequest(request);
}
var response = client.send(request, HttpResponse.BodyHandlers.ofInputStream());
if (debugEnabled) {
response = logResponse(response);
}
return response;
}
private HttpRequest logRequest(HttpRequest request) {
log("Sending request: " + request);
log("Request headers: " + redactHeaders(request.headers()));
// only log the body if it is present and the content type is JSON
if (request.bodyPublisher().isPresent() && request.headers() //
.firstValue("Content-Type") //
.filter(x -> x.equals("application/json") || x.equals("text/plain")).isPresent()) {
// we read the body and ensure that the BodyPublisher is rebuilt to pass to the
// http client
byte[] body = Helpers.bodyBytes(request);
request = Helpers //
.copy(request) //
.method(request.method(), BodyPublishers.ofByteArray(body)) //
.build();
// note that in the case of text/plain a different encoding from UTF-8
// may be in use but we just log the bytes as UTF-8. Unexpected encodings
// do not throw (substitution happens).
log("Request body:\n" + new String(body, StandardCharsets.UTF_8));
}
return request;
}
private static HttpResponse<InputStream> logResponse(HttpResponse<InputStream> response) throws IOException {
// make the response re-readable by loading the response body into a byte array
// and allowing the InputStream to be read many times
response = Utils.cache(response);
log("Received response: " + response);
log("Response headers: " + redactHeaders(response.headers()));
// only log the response body if it is present and the content type is JSON or plain text
if (response.headers() //
.firstValue("Content-Type") //
.filter(x -> x.equals("application/json") || x.equals("text/plain")) //
.isPresent()) {
// the response is re-readable so we can read and close it without
// affecting later processing of the response.
// note that in the case of text/plain a different encoding from UTF-8
// may be in use but we just log the bytes as UTF-8. Unexpected encodings
// do not throw (substitution happens).
log("Response body:\n" + Utils.toUtf8AndClose(response.body()));
}
return response;
}
private static String redactHeaders(HttpHeaders headers) {
return "{" + headers.map() //
.entrySet() //
.stream() //
.map(entry -> {
final String value;
if (redactedHeaders.contains(entry.getKey().toUpperCase(Locale.ENGLISH))) {
value = "[******]";
} else {
value = String.valueOf(entry.getValue());
}
return entry.getKey() + "=" + value;
}) //
.collect(Collectors.joining(", ")) + "}";
}
private static void log(String message) {
logger.accept(message);
}
}

View File

@@ -1368,20 +1368,32 @@ public final class Utils {
}
return list;
}
public static <T> T valueOrNull(T value) {
return value;
public static <T> T valueOrElse(T value, T valueIfNotPresent) {
return value != null ? value : valueIfNotPresent;
}
public static <T> T valueOrElse(Optional<T> value, T valueIfNotPresent) {
return value.orElse(valueIfNotPresent);
}
public static <T> T valueOrNull(Optional<T> value) {
return value.orElse(null);
}
public static <T> T valueOrNull(JsonNullable<T> value) {
public static <T> T valueOrElse(JsonNullable<T> value, T valueIfNotPresent) {
if (value.isPresent()) {
return value.get();
} else {
return null;
return valueIfNotPresent;
}
}
public static <T> T valueOrNull(T value) {
return valueOrElse(value, null);
}
public static <T> T valueOrNull(Optional<T> value) {
return valueOrElse(value, null);
}
public static <T> T valueOrNull(JsonNullable<T> value) {
return valueOrElse(value, null);
}
}