ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.528.1

This commit is contained in:
speakeasybot
2025-04-03 00:29:22 +00:00
parent 04db2979db
commit dcdcafc044
64 changed files with 4288 additions and 62 deletions

View File

@@ -30,8 +30,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* Activities are awesome. They provide a way to monitor and control asynchronous operations on the server. In order to receive real-time updates for activities, a client would normally subscribe via either EventSource or Websocket endpoints.
* Activities are associated with HTTP replies via a special `X-Plex-Activity` header which contains the UUID of the activity.

View File

@@ -47,8 +47,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Optional;
/**
* API Calls regarding authentication for Plex Media Server
*/

View File

@@ -45,8 +45,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* Butler is the task manager of the Plex Media Server Ecosystem.
*/

View File

@@ -39,8 +39,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* Hubs are a structured two-dimensional container for media, generally represented by multiple horizontal rows.
*/

View File

@@ -74,10 +74,18 @@ import dev.plexapi.sdk.models.operations.GetLibraryItemsRequest;
import dev.plexapi.sdk.models.operations.GetLibraryItemsRequestBuilder;
import dev.plexapi.sdk.models.operations.GetLibraryItemsResponse;
import dev.plexapi.sdk.models.operations.GetLibraryItemsResponseBody;
import dev.plexapi.sdk.models.operations.GetMediaArtsRequest;
import dev.plexapi.sdk.models.operations.GetMediaArtsRequestBuilder;
import dev.plexapi.sdk.models.operations.GetMediaArtsResponse;
import dev.plexapi.sdk.models.operations.GetMediaArtsResponseBody;
import dev.plexapi.sdk.models.operations.GetMediaMetaDataRequest;
import dev.plexapi.sdk.models.operations.GetMediaMetaDataRequestBuilder;
import dev.plexapi.sdk.models.operations.GetMediaMetaDataResponse;
import dev.plexapi.sdk.models.operations.GetMediaMetaDataResponseBody;
import dev.plexapi.sdk.models.operations.GetMediaPostersRequest;
import dev.plexapi.sdk.models.operations.GetMediaPostersRequestBuilder;
import dev.plexapi.sdk.models.operations.GetMediaPostersResponse;
import dev.plexapi.sdk.models.operations.GetMediaPostersResponseBody;
import dev.plexapi.sdk.models.operations.GetMetadataChildrenRequest;
import dev.plexapi.sdk.models.operations.GetMetadataChildrenRequestBuilder;
import dev.plexapi.sdk.models.operations.GetMetadataChildrenResponse;
@@ -104,25 +112,32 @@ import dev.plexapi.sdk.models.operations.GetTopWatchedContentRequestBuilder;
import dev.plexapi.sdk.models.operations.GetTopWatchedContentResponse;
import dev.plexapi.sdk.models.operations.GetTopWatchedContentResponseBody;
import dev.plexapi.sdk.models.operations.IncludeDetails;
import dev.plexapi.sdk.models.operations.PostMediaArtsRequest;
import dev.plexapi.sdk.models.operations.PostMediaArtsRequestBuilder;
import dev.plexapi.sdk.models.operations.PostMediaArtsResponse;
import dev.plexapi.sdk.models.operations.PostMediaPosterRequest;
import dev.plexapi.sdk.models.operations.PostMediaPosterRequestBuilder;
import dev.plexapi.sdk.models.operations.PostMediaPosterResponse;
import dev.plexapi.sdk.models.operations.SDKMethodInterfaces.*;
import dev.plexapi.sdk.utils.HTTPClient;
import dev.plexapi.sdk.utils.HTTPRequest;
import dev.plexapi.sdk.utils.Hook.AfterErrorContextImpl;
import dev.plexapi.sdk.utils.Hook.AfterSuccessContextImpl;
import dev.plexapi.sdk.utils.Hook.BeforeRequestContextImpl;
import dev.plexapi.sdk.utils.SerializedBody;
import dev.plexapi.sdk.utils.Utils.JsonShape;
import dev.plexapi.sdk.utils.Utils;
import java.io.InputStream;
import java.lang.Double;
import java.lang.Exception;
import java.lang.Long;
import java.lang.Object;
import java.lang.String;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* API Calls interacting with Plex Media Server Libraries
*/
@@ -141,6 +156,10 @@ public class Library implements
MethodCallGetActorsLibrary,
MethodCallGetSearchAllLibraries,
MethodCallGetMediaMetaData,
MethodCallGetMediaArts,
MethodCallPostMediaArts,
MethodCallGetMediaPosters,
MethodCallPostMediaPoster,
MethodCallGetMetadataChildren,
MethodCallGetTopWatchedContent {
@@ -2860,6 +2879,618 @@ public class Library implements
/**
* Get Media Background Artwork
*
* <p>Returns the background artwork for a library item.
*
* @return The call builder
*/
public GetMediaArtsRequestBuilder getMediaArts() {
return new GetMediaArtsRequestBuilder(this);
}
/**
* Get Media Background Artwork
*
* <p>Returns the background artwork for a library item.
*
* @param ratingKey the id of the library item to return the artwork of.
* @return The response from the API call
* @throws Exception if the API call fails
*/
public GetMediaArtsResponse getMediaArts(
long ratingKey) throws Exception {
GetMediaArtsRequest request =
GetMediaArtsRequest
.builder()
.ratingKey(ratingKey)
.build();
String _baseUrl = Utils.templateUrl(
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
String _url = Utils.generateURL(
GetMediaArtsRequest.class,
_baseUrl,
"/library/metadata/{ratingKey}/arts",
request, null);
HTTPRequest _req = new HTTPRequest(_url, "GET");
_req.addHeader("Accept", "application/json")
.addHeader("user-agent",
SDKConfiguration.USER_AGENT);
Optional<SecuritySource> _hookSecuritySource = this.sdkConfiguration.securitySource();
Utils.configureSecurity(_req,
this.sdkConfiguration.securitySource.getSecurity());
HTTPClient _client = this.sdkConfiguration.defaultClient;
HttpRequest _r =
sdkConfiguration.hooks()
.beforeRequest(
new BeforeRequestContextImpl(
_baseUrl,
"get-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
_req.build());
HttpResponse<InputStream> _httpRes;
try {
_httpRes = _client.send(_r);
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX", "5XX")) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"get-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
Optional.of(_httpRes),
Optional.empty());
} else {
_httpRes = sdkConfiguration.hooks()
.afterSuccess(
new AfterSuccessContextImpl(
_baseUrl,
"get-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
_httpRes);
}
} catch (Exception _e) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"get-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
Optional.empty(),
Optional.of(_e));
}
String _contentType = _httpRes
.headers()
.firstValue("Content-Type")
.orElse("application/octet-stream");
GetMediaArtsResponse.Builder _resBuilder =
GetMediaArtsResponse
.builder()
.contentType(_contentType)
.statusCode(_httpRes.statusCode())
.rawResponse(_httpRes);
GetMediaArtsResponse _res = _resBuilder.build();
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
if (Utils.contentTypeMatches(_contentType, "application/json")) {
GetMediaArtsResponseBody _out = Utils.mapper().readValue(
Utils.toUtf8AndClose(_httpRes.body()),
new TypeReference<GetMediaArtsResponseBody>() {});
_res.withObject(Optional.ofNullable(_out));
return _res;
} else {
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"Unexpected content-type received: " + _contentType,
Utils.extractByteArrayFromBody(_httpRes));
}
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "5XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"Unexpected status code received: " + _httpRes.statusCode(),
Utils.extractByteArrayFromBody(_httpRes));
}
/**
* Upload Media Background Artwork
*
* <p>Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
*
* @return The call builder
*/
public PostMediaArtsRequestBuilder postMediaArts() {
return new PostMediaArtsRequestBuilder(this);
}
/**
* Upload Media Background Artwork
*
* <p>Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
*
* @param ratingKey the id of the library item to return the posters of.
* @return The response from the API call
* @throws Exception if the API call fails
*/
public PostMediaArtsResponse postMediaArts(
long ratingKey) throws Exception {
return postMediaArts(ratingKey, Optional.empty(), Optional.empty());
}
/**
* Upload Media Background Artwork
*
* <p>Uploads an image to use as the background artwork for a library item, either from a local file or a remote URL
*
* @param ratingKey the id of the library item to return the posters of.
* @param url The URL of the image, if uploading a remote image
* @param requestBody The contents of the image, if uploading a local file
* @return The response from the API call
* @throws Exception if the API call fails
*/
public PostMediaArtsResponse postMediaArts(
long ratingKey,
Optional<String> url,
Optional<byte[]> requestBody) throws Exception {
PostMediaArtsRequest request =
PostMediaArtsRequest
.builder()
.ratingKey(ratingKey)
.url(url)
.requestBody(requestBody)
.build();
String _baseUrl = Utils.templateUrl(
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
String _url = Utils.generateURL(
PostMediaArtsRequest.class,
_baseUrl,
"/library/metadata/{ratingKey}/arts",
request, null);
HTTPRequest _req = new HTTPRequest(_url, "POST");
Object _convertedRequest = Utils.convertToShape(
request,
JsonShape.DEFAULT,
new TypeReference<Object>() {});
SerializedBody _serializedRequestBody = Utils.serializeRequestBody(
_convertedRequest,
"requestBody",
"raw",
false);
_req.setBody(Optional.ofNullable(_serializedRequestBody));
_req.addHeader("Accept", "*/*")
.addHeader("user-agent",
SDKConfiguration.USER_AGENT);
_req.addQueryParams(Utils.getQueryParams(
PostMediaArtsRequest.class,
request,
null));
Optional<SecuritySource> _hookSecuritySource = this.sdkConfiguration.securitySource();
Utils.configureSecurity(_req,
this.sdkConfiguration.securitySource.getSecurity());
HTTPClient _client = this.sdkConfiguration.defaultClient;
HttpRequest _r =
sdkConfiguration.hooks()
.beforeRequest(
new BeforeRequestContextImpl(
_baseUrl,
"post-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
_req.build());
HttpResponse<InputStream> _httpRes;
try {
_httpRes = _client.send(_r);
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX", "5XX")) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"post-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
Optional.of(_httpRes),
Optional.empty());
} else {
_httpRes = sdkConfiguration.hooks()
.afterSuccess(
new AfterSuccessContextImpl(
_baseUrl,
"post-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
_httpRes);
}
} catch (Exception _e) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"post-media-arts",
Optional.of(List.of()),
_hookSecuritySource),
Optional.empty(),
Optional.of(_e));
}
String _contentType = _httpRes
.headers()
.firstValue("Content-Type")
.orElse("application/octet-stream");
PostMediaArtsResponse.Builder _resBuilder =
PostMediaArtsResponse
.builder()
.contentType(_contentType)
.statusCode(_httpRes.statusCode())
.rawResponse(_httpRes);
PostMediaArtsResponse _res = _resBuilder.build();
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
// no content
return _res;
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "5XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"Unexpected status code received: " + _httpRes.statusCode(),
Utils.extractByteArrayFromBody(_httpRes));
}
/**
* Get Media Posters
*
* <p>Returns the available posters for a library item.
*
* @return The call builder
*/
public GetMediaPostersRequestBuilder getMediaPosters() {
return new GetMediaPostersRequestBuilder(this);
}
/**
* Get Media Posters
*
* <p>Returns the available posters for a library item.
*
* @param ratingKey the id of the library item to return the posters of.
* @return The response from the API call
* @throws Exception if the API call fails
*/
public GetMediaPostersResponse getMediaPosters(
long ratingKey) throws Exception {
GetMediaPostersRequest request =
GetMediaPostersRequest
.builder()
.ratingKey(ratingKey)
.build();
String _baseUrl = Utils.templateUrl(
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
String _url = Utils.generateURL(
GetMediaPostersRequest.class,
_baseUrl,
"/library/metadata/{ratingKey}/posters",
request, null);
HTTPRequest _req = new HTTPRequest(_url, "GET");
_req.addHeader("Accept", "application/json")
.addHeader("user-agent",
SDKConfiguration.USER_AGENT);
Optional<SecuritySource> _hookSecuritySource = this.sdkConfiguration.securitySource();
Utils.configureSecurity(_req,
this.sdkConfiguration.securitySource.getSecurity());
HTTPClient _client = this.sdkConfiguration.defaultClient;
HttpRequest _r =
sdkConfiguration.hooks()
.beforeRequest(
new BeforeRequestContextImpl(
_baseUrl,
"get-media-posters",
Optional.of(List.of()),
_hookSecuritySource),
_req.build());
HttpResponse<InputStream> _httpRes;
try {
_httpRes = _client.send(_r);
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX", "5XX")) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"get-media-posters",
Optional.of(List.of()),
_hookSecuritySource),
Optional.of(_httpRes),
Optional.empty());
} else {
_httpRes = sdkConfiguration.hooks()
.afterSuccess(
new AfterSuccessContextImpl(
_baseUrl,
"get-media-posters",
Optional.of(List.of()),
_hookSecuritySource),
_httpRes);
}
} catch (Exception _e) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"get-media-posters",
Optional.of(List.of()),
_hookSecuritySource),
Optional.empty(),
Optional.of(_e));
}
String _contentType = _httpRes
.headers()
.firstValue("Content-Type")
.orElse("application/octet-stream");
GetMediaPostersResponse.Builder _resBuilder =
GetMediaPostersResponse
.builder()
.contentType(_contentType)
.statusCode(_httpRes.statusCode())
.rawResponse(_httpRes);
GetMediaPostersResponse _res = _resBuilder.build();
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
if (Utils.contentTypeMatches(_contentType, "application/json")) {
GetMediaPostersResponseBody _out = Utils.mapper().readValue(
Utils.toUtf8AndClose(_httpRes.body()),
new TypeReference<GetMediaPostersResponseBody>() {});
_res.withObject(Optional.ofNullable(_out));
return _res;
} else {
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"Unexpected content-type received: " + _contentType,
Utils.extractByteArrayFromBody(_httpRes));
}
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "5XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"Unexpected status code received: " + _httpRes.statusCode(),
Utils.extractByteArrayFromBody(_httpRes));
}
/**
* Upload Media Poster
*
* <p>Uploads a poster to a library item, either from a local file or a remote URL
*
* @return The call builder
*/
public PostMediaPosterRequestBuilder postMediaPoster() {
return new PostMediaPosterRequestBuilder(this);
}
/**
* Upload Media Poster
*
* <p>Uploads a poster to a library item, either from a local file or a remote URL
*
* @param ratingKey the id of the library item to return the posters of.
* @return The response from the API call
* @throws Exception if the API call fails
*/
public PostMediaPosterResponse postMediaPoster(
long ratingKey) throws Exception {
return postMediaPoster(ratingKey, Optional.empty(), Optional.empty());
}
/**
* Upload Media Poster
*
* <p>Uploads a poster to a library item, either from a local file or a remote URL
*
* @param ratingKey the id of the library item to return the posters of.
* @param url The URL of the image, if uploading a remote image
* @param requestBody The contents of the image, if uploading a local file
* @return The response from the API call
* @throws Exception if the API call fails
*/
public PostMediaPosterResponse postMediaPoster(
long ratingKey,
Optional<String> url,
Optional<byte[]> requestBody) throws Exception {
PostMediaPosterRequest request =
PostMediaPosterRequest
.builder()
.ratingKey(ratingKey)
.url(url)
.requestBody(requestBody)
.build();
String _baseUrl = Utils.templateUrl(
this.sdkConfiguration.serverUrl, this.sdkConfiguration.getServerVariableDefaults());
String _url = Utils.generateURL(
PostMediaPosterRequest.class,
_baseUrl,
"/library/metadata/{ratingKey}/posters",
request, null);
HTTPRequest _req = new HTTPRequest(_url, "POST");
Object _convertedRequest = Utils.convertToShape(
request,
JsonShape.DEFAULT,
new TypeReference<Object>() {});
SerializedBody _serializedRequestBody = Utils.serializeRequestBody(
_convertedRequest,
"requestBody",
"raw",
false);
_req.setBody(Optional.ofNullable(_serializedRequestBody));
_req.addHeader("Accept", "*/*")
.addHeader("user-agent",
SDKConfiguration.USER_AGENT);
_req.addQueryParams(Utils.getQueryParams(
PostMediaPosterRequest.class,
request,
null));
Optional<SecuritySource> _hookSecuritySource = this.sdkConfiguration.securitySource();
Utils.configureSecurity(_req,
this.sdkConfiguration.securitySource.getSecurity());
HTTPClient _client = this.sdkConfiguration.defaultClient;
HttpRequest _r =
sdkConfiguration.hooks()
.beforeRequest(
new BeforeRequestContextImpl(
_baseUrl,
"post-media-poster",
Optional.of(List.of()),
_hookSecuritySource),
_req.build());
HttpResponse<InputStream> _httpRes;
try {
_httpRes = _client.send(_r);
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX", "5XX")) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"post-media-poster",
Optional.of(List.of()),
_hookSecuritySource),
Optional.of(_httpRes),
Optional.empty());
} else {
_httpRes = sdkConfiguration.hooks()
.afterSuccess(
new AfterSuccessContextImpl(
_baseUrl,
"post-media-poster",
Optional.of(List.of()),
_hookSecuritySource),
_httpRes);
}
} catch (Exception _e) {
_httpRes = sdkConfiguration.hooks()
.afterError(
new AfterErrorContextImpl(
_baseUrl,
"post-media-poster",
Optional.of(List.of()),
_hookSecuritySource),
Optional.empty(),
Optional.of(_e));
}
String _contentType = _httpRes
.headers()
.firstValue("Content-Type")
.orElse("application/octet-stream");
PostMediaPosterResponse.Builder _resBuilder =
PostMediaPosterResponse
.builder()
.contentType(_contentType)
.statusCode(_httpRes.statusCode())
.rawResponse(_httpRes);
PostMediaPosterResponse _res = _resBuilder.build();
if (Utils.statusCodeMatches(_httpRes.statusCode(), "200")) {
// no content
return _res;
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "404", "4XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
if (Utils.statusCodeMatches(_httpRes.statusCode(), "5XX")) {
// no content
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"API error occurred",
Utils.extractByteArrayFromBody(_httpRes));
}
throw new SDKError(
_httpRes,
_httpRes.statusCode(),
"Unexpected status code received: " + _httpRes.statusCode(),
Utils.extractByteArrayFromBody(_httpRes));
}
/**
* Get Items Children
*

View File

@@ -37,8 +37,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* Submit logs to the Log Handler for Plex Media Server
*/

View File

@@ -45,8 +45,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* API Calls interacting with Plex Media Server Media
*/

View File

@@ -75,8 +75,6 @@ import java.net.http.HttpResponse;
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").
* They can be organized in (optionally nesting) folders.

View File

@@ -61,8 +61,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Optional;
/**
* API Calls that perform operations directly against https://Plex.tv
*/

View File

@@ -14,8 +14,6 @@ import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
/**
* Plex-API: An Open API Spec for interacting with Plex.tv and Plex Media Server
*

View File

@@ -17,8 +17,6 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
class SDKConfiguration {
public SecuritySource securitySource;
@@ -44,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.0";
public static final String GEN_VERSION = "2.563.1";
public static final String SDK_VERSION = "0.14.1";
public static final String GEN_VERSION = "2.565.1";
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

@@ -37,8 +37,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* API Calls that perform search operations with Plex Media Server
*/

View File

@@ -5,8 +5,6 @@ package dev.plexapi.sdk;
import dev.plexapi.sdk.utils.HasSecurity;
public interface SecuritySource {
HasSecurity getSecurity();

View File

@@ -65,8 +65,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* Operations against the Plex Media Server System.
*/

View File

@@ -43,8 +43,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* API Calls that perform search operations with Plex Media Server Sessions
*/

View File

@@ -39,8 +39,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* API Calls that perform operations with Plex Media Server Statistics
*/

View File

@@ -38,8 +38,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* This describes the API for searching and applying updates to the Plex Media Server.
* Updates to the status can be observed via the Event API.

View File

@@ -26,8 +26,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Optional;
public class Users implements
MethodCallGetUsers {

View File

@@ -30,8 +30,6 @@ import java.net.http.HttpResponse;
import java.util.List;
import java.util.Optional;
/**
* API Calls that perform operations with Plex Media Server Videos
*/

View File

@@ -27,8 +27,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Optional;
/**
* API Calls that perform operations with Plex Media Server Watchlists
*/

View File

@@ -0,0 +1,253 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Integer;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.util.List;
import java.util.Objects;
public class GetMediaArtsMediaContainer {
/**
* Number of media items returned in this response.
*/
@JsonProperty("size")
private int size;
/**
* The version number for media tags.
*/
@JsonProperty("mediaTagVersion")
private long mediaTagVersion;
/**
* The prefix used for media tag resource paths.
*/
@JsonProperty("mediaTagPrefix")
private String mediaTagPrefix;
/**
* An plugin identifier for the media container.
*/
@JsonProperty("identifier")
private String identifier;
@JsonProperty("Metadata")
private List<GetMediaArtsMetadata> metadata;
@JsonCreator
public GetMediaArtsMediaContainer(
@JsonProperty("size") int size,
@JsonProperty("mediaTagVersion") long mediaTagVersion,
@JsonProperty("mediaTagPrefix") String mediaTagPrefix,
@JsonProperty("identifier") String identifier,
@JsonProperty("Metadata") List<GetMediaArtsMetadata> metadata) {
Utils.checkNotNull(size, "size");
Utils.checkNotNull(mediaTagVersion, "mediaTagVersion");
Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix");
Utils.checkNotNull(identifier, "identifier");
Utils.checkNotNull(metadata, "metadata");
this.size = size;
this.mediaTagVersion = mediaTagVersion;
this.mediaTagPrefix = mediaTagPrefix;
this.identifier = identifier;
this.metadata = metadata;
}
/**
* Number of media items returned in this response.
*/
@JsonIgnore
public int size() {
return size;
}
/**
* The version number for media tags.
*/
@JsonIgnore
public long mediaTagVersion() {
return mediaTagVersion;
}
/**
* The prefix used for media tag resource paths.
*/
@JsonIgnore
public String mediaTagPrefix() {
return mediaTagPrefix;
}
/**
* An plugin identifier for the media container.
*/
@JsonIgnore
public String identifier() {
return identifier;
}
@JsonIgnore
public List<GetMediaArtsMetadata> metadata() {
return metadata;
}
public final static Builder builder() {
return new Builder();
}
/**
* Number of media items returned in this response.
*/
public GetMediaArtsMediaContainer withSize(int size) {
Utils.checkNotNull(size, "size");
this.size = size;
return this;
}
/**
* The version number for media tags.
*/
public GetMediaArtsMediaContainer withMediaTagVersion(long mediaTagVersion) {
Utils.checkNotNull(mediaTagVersion, "mediaTagVersion");
this.mediaTagVersion = mediaTagVersion;
return this;
}
/**
* The prefix used for media tag resource paths.
*/
public GetMediaArtsMediaContainer withMediaTagPrefix(String mediaTagPrefix) {
Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix");
this.mediaTagPrefix = mediaTagPrefix;
return this;
}
/**
* An plugin identifier for the media container.
*/
public GetMediaArtsMediaContainer withIdentifier(String identifier) {
Utils.checkNotNull(identifier, "identifier");
this.identifier = identifier;
return this;
}
public GetMediaArtsMediaContainer withMetadata(List<GetMediaArtsMetadata> metadata) {
Utils.checkNotNull(metadata, "metadata");
this.metadata = metadata;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaArtsMediaContainer other = (GetMediaArtsMediaContainer) o;
return
Objects.deepEquals(this.size, other.size) &&
Objects.deepEquals(this.mediaTagVersion, other.mediaTagVersion) &&
Objects.deepEquals(this.mediaTagPrefix, other.mediaTagPrefix) &&
Objects.deepEquals(this.identifier, other.identifier) &&
Objects.deepEquals(this.metadata, other.metadata);
}
@Override
public int hashCode() {
return Objects.hash(
size,
mediaTagVersion,
mediaTagPrefix,
identifier,
metadata);
}
@Override
public String toString() {
return Utils.toString(GetMediaArtsMediaContainer.class,
"size", size,
"mediaTagVersion", mediaTagVersion,
"mediaTagPrefix", mediaTagPrefix,
"identifier", identifier,
"metadata", metadata);
}
public final static class Builder {
private Integer size;
private Long mediaTagVersion;
private String mediaTagPrefix;
private String identifier;
private List<GetMediaArtsMetadata> metadata;
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;
}
/**
* The version number for media tags.
*/
public Builder mediaTagVersion(long mediaTagVersion) {
Utils.checkNotNull(mediaTagVersion, "mediaTagVersion");
this.mediaTagVersion = mediaTagVersion;
return this;
}
/**
* The prefix used for media tag resource paths.
*/
public Builder mediaTagPrefix(String mediaTagPrefix) {
Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix");
this.mediaTagPrefix = mediaTagPrefix;
return this;
}
/**
* An plugin identifier for the media container.
*/
public Builder identifier(String identifier) {
Utils.checkNotNull(identifier, "identifier");
this.identifier = identifier;
return this;
}
public Builder metadata(List<GetMediaArtsMetadata> metadata) {
Utils.checkNotNull(metadata, "metadata");
this.metadata = metadata;
return this;
}
public GetMediaArtsMediaContainer build() {
return new GetMediaArtsMediaContainer(
size,
mediaTagVersion,
mediaTagPrefix,
identifier,
metadata);
}
}
}

View File

@@ -0,0 +1,293 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
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.Override;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
public class GetMediaArtsMetadata {
/**
* The URL of the artwork.
*/
@JsonProperty("key")
private String key;
/**
* The provider of the artwork.
*/
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("provider")
private Optional<String> provider;
/**
* The URL of the artwork.
*/
@JsonProperty("ratingKey")
private String ratingKey;
/**
* Whether this is the selected artwork.
*/
@JsonProperty("selected")
private boolean selected;
/**
* The URL of the artwork thumbnail.
*/
@JsonProperty("thumb")
private String thumb;
@JsonCreator
public GetMediaArtsMetadata(
@JsonProperty("key") String key,
@JsonProperty("provider") Optional<String> provider,
@JsonProperty("ratingKey") String ratingKey,
@JsonProperty("selected") boolean selected,
@JsonProperty("thumb") String thumb) {
Utils.checkNotNull(key, "key");
Utils.checkNotNull(provider, "provider");
Utils.checkNotNull(ratingKey, "ratingKey");
Utils.checkNotNull(selected, "selected");
Utils.checkNotNull(thumb, "thumb");
this.key = key;
this.provider = provider;
this.ratingKey = ratingKey;
this.selected = selected;
this.thumb = thumb;
}
public GetMediaArtsMetadata(
String key,
String ratingKey,
boolean selected,
String thumb) {
this(key, Optional.empty(), ratingKey, selected, thumb);
}
/**
* The URL of the artwork.
*/
@JsonIgnore
public String key() {
return key;
}
/**
* The provider of the artwork.
*/
@JsonIgnore
public Optional<String> provider() {
return provider;
}
/**
* The URL of the artwork.
*/
@JsonIgnore
public String ratingKey() {
return ratingKey;
}
/**
* Whether this is the selected artwork.
*/
@JsonIgnore
public boolean selected() {
return selected;
}
/**
* The URL of the artwork thumbnail.
*/
@JsonIgnore
public String thumb() {
return thumb;
}
public final static Builder builder() {
return new Builder();
}
/**
* The URL of the artwork.
*/
public GetMediaArtsMetadata withKey(String key) {
Utils.checkNotNull(key, "key");
this.key = key;
return this;
}
/**
* The provider of the artwork.
*/
public GetMediaArtsMetadata withProvider(String provider) {
Utils.checkNotNull(provider, "provider");
this.provider = Optional.ofNullable(provider);
return this;
}
/**
* The provider of the artwork.
*/
public GetMediaArtsMetadata withProvider(Optional<String> provider) {
Utils.checkNotNull(provider, "provider");
this.provider = provider;
return this;
}
/**
* The URL of the artwork.
*/
public GetMediaArtsMetadata withRatingKey(String ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* Whether this is the selected artwork.
*/
public GetMediaArtsMetadata withSelected(boolean selected) {
Utils.checkNotNull(selected, "selected");
this.selected = selected;
return this;
}
/**
* The URL of the artwork thumbnail.
*/
public GetMediaArtsMetadata withThumb(String thumb) {
Utils.checkNotNull(thumb, "thumb");
this.thumb = thumb;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaArtsMetadata other = (GetMediaArtsMetadata) o;
return
Objects.deepEquals(this.key, other.key) &&
Objects.deepEquals(this.provider, other.provider) &&
Objects.deepEquals(this.ratingKey, other.ratingKey) &&
Objects.deepEquals(this.selected, other.selected) &&
Objects.deepEquals(this.thumb, other.thumb);
}
@Override
public int hashCode() {
return Objects.hash(
key,
provider,
ratingKey,
selected,
thumb);
}
@Override
public String toString() {
return Utils.toString(GetMediaArtsMetadata.class,
"key", key,
"provider", provider,
"ratingKey", ratingKey,
"selected", selected,
"thumb", thumb);
}
public final static class Builder {
private String key;
private Optional<String> provider = Optional.empty();
private String ratingKey;
private Boolean selected;
private String thumb;
private Builder() {
// force use of static builder() method
}
/**
* The URL of the artwork.
*/
public Builder key(String key) {
Utils.checkNotNull(key, "key");
this.key = key;
return this;
}
/**
* The provider of the artwork.
*/
public Builder provider(String provider) {
Utils.checkNotNull(provider, "provider");
this.provider = Optional.ofNullable(provider);
return this;
}
/**
* The provider of the artwork.
*/
public Builder provider(Optional<String> provider) {
Utils.checkNotNull(provider, "provider");
this.provider = provider;
return this;
}
/**
* The URL of the artwork.
*/
public Builder ratingKey(String ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* Whether this is the selected artwork.
*/
public Builder selected(boolean selected) {
Utils.checkNotNull(selected, "selected");
this.selected = selected;
return this;
}
/**
* The URL of the artwork thumbnail.
*/
public Builder thumb(String thumb) {
Utils.checkNotNull(thumb, "thumb");
this.thumb = thumb;
return this;
}
public GetMediaArtsMetadata build() {
return new GetMediaArtsMetadata(
key,
provider,
ratingKey,
selected,
thumb);
}
}
}

View File

@@ -0,0 +1,99 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.SpeakeasyMetadata;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.util.Objects;
public class GetMediaArtsRequest {
/**
* the id of the library item to return the artwork of.
*/
@SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")
private long ratingKey;
@JsonCreator
public GetMediaArtsRequest(
long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
}
/**
* the id of the library item to return the artwork of.
*/
@JsonIgnore
public long ratingKey() {
return ratingKey;
}
public final static Builder builder() {
return new Builder();
}
/**
* the id of the library item to return the artwork of.
*/
public GetMediaArtsRequest withRatingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaArtsRequest other = (GetMediaArtsRequest) o;
return
Objects.deepEquals(this.ratingKey, other.ratingKey);
}
@Override
public int hashCode() {
return Objects.hash(
ratingKey);
}
@Override
public String toString() {
return Utils.toString(GetMediaArtsRequest.class,
"ratingKey", ratingKey);
}
public final static class Builder {
private Long ratingKey;
private Builder() {
// force use of static builder() method
}
/**
* the id of the library item to return the artwork of.
*/
public Builder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
public GetMediaArtsRequest build() {
return new GetMediaArtsRequest(
ratingKey);
}
}
}

View File

@@ -0,0 +1,30 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Exception;
import java.lang.Long;
public class GetMediaArtsRequestBuilder {
private Long ratingKey;
private final SDKMethodInterfaces.MethodCallGetMediaArts sdk;
public GetMediaArtsRequestBuilder(SDKMethodInterfaces.MethodCallGetMediaArts sdk) {
this.sdk = sdk;
}
public GetMediaArtsRequestBuilder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
public GetMediaArtsResponse call() throws Exception {
return sdk.getMediaArts(
ratingKey);
}
}

View File

@@ -0,0 +1,248 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.Response;
import dev.plexapi.sdk.utils.Utils;
import java.io.InputStream;
import java.lang.Integer;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.net.http.HttpResponse;
import java.util.Objects;
import java.util.Optional;
public class GetMediaArtsResponse implements Response {
/**
* HTTP response content type for this operation
*/
private String contentType;
/**
* HTTP response status code for this operation
*/
private int statusCode;
/**
* Raw HTTP response; suitable for custom response parsing
*/
private HttpResponse<InputStream> rawResponse;
/**
* The available background artwork for the library item.
*/
private Optional<? extends GetMediaArtsResponseBody> object;
@JsonCreator
public GetMediaArtsResponse(
String contentType,
int statusCode,
HttpResponse<InputStream> rawResponse,
Optional<? extends GetMediaArtsResponseBody> object) {
Utils.checkNotNull(contentType, "contentType");
Utils.checkNotNull(statusCode, "statusCode");
Utils.checkNotNull(rawResponse, "rawResponse");
Utils.checkNotNull(object, "object");
this.contentType = contentType;
this.statusCode = statusCode;
this.rawResponse = rawResponse;
this.object = object;
}
public GetMediaArtsResponse(
String contentType,
int statusCode,
HttpResponse<InputStream> rawResponse) {
this(contentType, statusCode, rawResponse, Optional.empty());
}
/**
* HTTP response content type for this operation
*/
@JsonIgnore
public String contentType() {
return contentType;
}
/**
* HTTP response status code for this operation
*/
@JsonIgnore
public int statusCode() {
return statusCode;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
@JsonIgnore
public HttpResponse<InputStream> rawResponse() {
return rawResponse;
}
/**
* The available background artwork for the library item.
*/
@SuppressWarnings("unchecked")
@JsonIgnore
public Optional<GetMediaArtsResponseBody> object() {
return (Optional<GetMediaArtsResponseBody>) object;
}
public final static Builder builder() {
return new Builder();
}
/**
* HTTP response content type for this operation
*/
public GetMediaArtsResponse withContentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public GetMediaArtsResponse withStatusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public GetMediaArtsResponse withRawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
/**
* The available background artwork for the library item.
*/
public GetMediaArtsResponse withObject(GetMediaArtsResponseBody object) {
Utils.checkNotNull(object, "object");
this.object = Optional.ofNullable(object);
return this;
}
/**
* The available background artwork for the library item.
*/
public GetMediaArtsResponse withObject(Optional<? extends GetMediaArtsResponseBody> object) {
Utils.checkNotNull(object, "object");
this.object = object;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaArtsResponse other = (GetMediaArtsResponse) o;
return
Objects.deepEquals(this.contentType, other.contentType) &&
Objects.deepEquals(this.statusCode, other.statusCode) &&
Objects.deepEquals(this.rawResponse, other.rawResponse) &&
Objects.deepEquals(this.object, other.object);
}
@Override
public int hashCode() {
return Objects.hash(
contentType,
statusCode,
rawResponse,
object);
}
@Override
public String toString() {
return Utils.toString(GetMediaArtsResponse.class,
"contentType", contentType,
"statusCode", statusCode,
"rawResponse", rawResponse,
"object", object);
}
public final static class Builder {
private String contentType;
private Integer statusCode;
private HttpResponse<InputStream> rawResponse;
private Optional<? extends GetMediaArtsResponseBody> object = Optional.empty();
private Builder() {
// force use of static builder() method
}
/**
* HTTP response content type for this operation
*/
public Builder contentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public Builder statusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public Builder rawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
/**
* The available background artwork for the library item.
*/
public Builder object(GetMediaArtsResponseBody object) {
Utils.checkNotNull(object, "object");
this.object = Optional.ofNullable(object);
return this;
}
/**
* The available background artwork for the library item.
*/
public Builder object(Optional<? extends GetMediaArtsResponseBody> object) {
Utils.checkNotNull(object, "object");
this.object = object;
return this;
}
public GetMediaArtsResponse build() {
return new GetMediaArtsResponse(
contentType,
statusCode,
rawResponse,
object);
}
}
}

View File

@@ -0,0 +1,113 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
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;
/**
* GetMediaArtsResponseBody
*
* <p>The available background artwork for the library item.
*/
public class GetMediaArtsResponseBody {
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("MediaContainer")
private Optional<? extends GetMediaArtsMediaContainer> mediaContainer;
@JsonCreator
public GetMediaArtsResponseBody(
@JsonProperty("MediaContainer") Optional<? extends GetMediaArtsMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
}
public GetMediaArtsResponseBody() {
this(Optional.empty());
}
@SuppressWarnings("unchecked")
@JsonIgnore
public Optional<GetMediaArtsMediaContainer> mediaContainer() {
return (Optional<GetMediaArtsMediaContainer>) mediaContainer;
}
public final static Builder builder() {
return new Builder();
}
public GetMediaArtsResponseBody withMediaContainer(GetMediaArtsMediaContainer mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = Optional.ofNullable(mediaContainer);
return this;
}
public GetMediaArtsResponseBody withMediaContainer(Optional<? extends GetMediaArtsMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaArtsResponseBody other = (GetMediaArtsResponseBody) o;
return
Objects.deepEquals(this.mediaContainer, other.mediaContainer);
}
@Override
public int hashCode() {
return Objects.hash(
mediaContainer);
}
@Override
public String toString() {
return Utils.toString(GetMediaArtsResponseBody.class,
"mediaContainer", mediaContainer);
}
public final static class Builder {
private Optional<? extends GetMediaArtsMediaContainer> mediaContainer = Optional.empty();
private Builder() {
// force use of static builder() method
}
public Builder mediaContainer(GetMediaArtsMediaContainer mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = Optional.ofNullable(mediaContainer);
return this;
}
public Builder mediaContainer(Optional<? extends GetMediaArtsMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
return this;
}
public GetMediaArtsResponseBody build() {
return new GetMediaArtsResponseBody(
mediaContainer);
}
}
}

View File

@@ -0,0 +1,253 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Integer;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.util.List;
import java.util.Objects;
public class GetMediaPostersMediaContainer {
/**
* Number of media items returned in this response.
*/
@JsonProperty("size")
private int size;
/**
* The version number for media tags.
*/
@JsonProperty("mediaTagVersion")
private long mediaTagVersion;
/**
* The prefix used for media tag resource paths.
*/
@JsonProperty("mediaTagPrefix")
private String mediaTagPrefix;
/**
* An plugin identifier for the media container.
*/
@JsonProperty("identifier")
private String identifier;
@JsonProperty("Metadata")
private List<GetMediaPostersMetadata> metadata;
@JsonCreator
public GetMediaPostersMediaContainer(
@JsonProperty("size") int size,
@JsonProperty("mediaTagVersion") long mediaTagVersion,
@JsonProperty("mediaTagPrefix") String mediaTagPrefix,
@JsonProperty("identifier") String identifier,
@JsonProperty("Metadata") List<GetMediaPostersMetadata> metadata) {
Utils.checkNotNull(size, "size");
Utils.checkNotNull(mediaTagVersion, "mediaTagVersion");
Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix");
Utils.checkNotNull(identifier, "identifier");
Utils.checkNotNull(metadata, "metadata");
this.size = size;
this.mediaTagVersion = mediaTagVersion;
this.mediaTagPrefix = mediaTagPrefix;
this.identifier = identifier;
this.metadata = metadata;
}
/**
* Number of media items returned in this response.
*/
@JsonIgnore
public int size() {
return size;
}
/**
* The version number for media tags.
*/
@JsonIgnore
public long mediaTagVersion() {
return mediaTagVersion;
}
/**
* The prefix used for media tag resource paths.
*/
@JsonIgnore
public String mediaTagPrefix() {
return mediaTagPrefix;
}
/**
* An plugin identifier for the media container.
*/
@JsonIgnore
public String identifier() {
return identifier;
}
@JsonIgnore
public List<GetMediaPostersMetadata> metadata() {
return metadata;
}
public final static Builder builder() {
return new Builder();
}
/**
* Number of media items returned in this response.
*/
public GetMediaPostersMediaContainer withSize(int size) {
Utils.checkNotNull(size, "size");
this.size = size;
return this;
}
/**
* The version number for media tags.
*/
public GetMediaPostersMediaContainer withMediaTagVersion(long mediaTagVersion) {
Utils.checkNotNull(mediaTagVersion, "mediaTagVersion");
this.mediaTagVersion = mediaTagVersion;
return this;
}
/**
* The prefix used for media tag resource paths.
*/
public GetMediaPostersMediaContainer withMediaTagPrefix(String mediaTagPrefix) {
Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix");
this.mediaTagPrefix = mediaTagPrefix;
return this;
}
/**
* An plugin identifier for the media container.
*/
public GetMediaPostersMediaContainer withIdentifier(String identifier) {
Utils.checkNotNull(identifier, "identifier");
this.identifier = identifier;
return this;
}
public GetMediaPostersMediaContainer withMetadata(List<GetMediaPostersMetadata> metadata) {
Utils.checkNotNull(metadata, "metadata");
this.metadata = metadata;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaPostersMediaContainer other = (GetMediaPostersMediaContainer) o;
return
Objects.deepEquals(this.size, other.size) &&
Objects.deepEquals(this.mediaTagVersion, other.mediaTagVersion) &&
Objects.deepEquals(this.mediaTagPrefix, other.mediaTagPrefix) &&
Objects.deepEquals(this.identifier, other.identifier) &&
Objects.deepEquals(this.metadata, other.metadata);
}
@Override
public int hashCode() {
return Objects.hash(
size,
mediaTagVersion,
mediaTagPrefix,
identifier,
metadata);
}
@Override
public String toString() {
return Utils.toString(GetMediaPostersMediaContainer.class,
"size", size,
"mediaTagVersion", mediaTagVersion,
"mediaTagPrefix", mediaTagPrefix,
"identifier", identifier,
"metadata", metadata);
}
public final static class Builder {
private Integer size;
private Long mediaTagVersion;
private String mediaTagPrefix;
private String identifier;
private List<GetMediaPostersMetadata> metadata;
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;
}
/**
* The version number for media tags.
*/
public Builder mediaTagVersion(long mediaTagVersion) {
Utils.checkNotNull(mediaTagVersion, "mediaTagVersion");
this.mediaTagVersion = mediaTagVersion;
return this;
}
/**
* The prefix used for media tag resource paths.
*/
public Builder mediaTagPrefix(String mediaTagPrefix) {
Utils.checkNotNull(mediaTagPrefix, "mediaTagPrefix");
this.mediaTagPrefix = mediaTagPrefix;
return this;
}
/**
* An plugin identifier for the media container.
*/
public Builder identifier(String identifier) {
Utils.checkNotNull(identifier, "identifier");
this.identifier = identifier;
return this;
}
public Builder metadata(List<GetMediaPostersMetadata> metadata) {
Utils.checkNotNull(metadata, "metadata");
this.metadata = metadata;
return this;
}
public GetMediaPostersMediaContainer build() {
return new GetMediaPostersMediaContainer(
size,
mediaTagVersion,
mediaTagPrefix,
identifier,
metadata);
}
}
}

View File

@@ -0,0 +1,293 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
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.Override;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
public class GetMediaPostersMetadata {
/**
* The URL of the poster.
*/
@JsonProperty("key")
private String key;
/**
* The provider of the poster.
*/
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("provider")
private Optional<String> provider;
/**
* The URL of the poster.
*/
@JsonProperty("ratingKey")
private String ratingKey;
/**
* Whether this is the selected poster.
*/
@JsonProperty("selected")
private boolean selected;
/**
* The URL of the poster thumbnail.
*/
@JsonProperty("thumb")
private String thumb;
@JsonCreator
public GetMediaPostersMetadata(
@JsonProperty("key") String key,
@JsonProperty("provider") Optional<String> provider,
@JsonProperty("ratingKey") String ratingKey,
@JsonProperty("selected") boolean selected,
@JsonProperty("thumb") String thumb) {
Utils.checkNotNull(key, "key");
Utils.checkNotNull(provider, "provider");
Utils.checkNotNull(ratingKey, "ratingKey");
Utils.checkNotNull(selected, "selected");
Utils.checkNotNull(thumb, "thumb");
this.key = key;
this.provider = provider;
this.ratingKey = ratingKey;
this.selected = selected;
this.thumb = thumb;
}
public GetMediaPostersMetadata(
String key,
String ratingKey,
boolean selected,
String thumb) {
this(key, Optional.empty(), ratingKey, selected, thumb);
}
/**
* The URL of the poster.
*/
@JsonIgnore
public String key() {
return key;
}
/**
* The provider of the poster.
*/
@JsonIgnore
public Optional<String> provider() {
return provider;
}
/**
* The URL of the poster.
*/
@JsonIgnore
public String ratingKey() {
return ratingKey;
}
/**
* Whether this is the selected poster.
*/
@JsonIgnore
public boolean selected() {
return selected;
}
/**
* The URL of the poster thumbnail.
*/
@JsonIgnore
public String thumb() {
return thumb;
}
public final static Builder builder() {
return new Builder();
}
/**
* The URL of the poster.
*/
public GetMediaPostersMetadata withKey(String key) {
Utils.checkNotNull(key, "key");
this.key = key;
return this;
}
/**
* The provider of the poster.
*/
public GetMediaPostersMetadata withProvider(String provider) {
Utils.checkNotNull(provider, "provider");
this.provider = Optional.ofNullable(provider);
return this;
}
/**
* The provider of the poster.
*/
public GetMediaPostersMetadata withProvider(Optional<String> provider) {
Utils.checkNotNull(provider, "provider");
this.provider = provider;
return this;
}
/**
* The URL of the poster.
*/
public GetMediaPostersMetadata withRatingKey(String ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* Whether this is the selected poster.
*/
public GetMediaPostersMetadata withSelected(boolean selected) {
Utils.checkNotNull(selected, "selected");
this.selected = selected;
return this;
}
/**
* The URL of the poster thumbnail.
*/
public GetMediaPostersMetadata withThumb(String thumb) {
Utils.checkNotNull(thumb, "thumb");
this.thumb = thumb;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaPostersMetadata other = (GetMediaPostersMetadata) o;
return
Objects.deepEquals(this.key, other.key) &&
Objects.deepEquals(this.provider, other.provider) &&
Objects.deepEquals(this.ratingKey, other.ratingKey) &&
Objects.deepEquals(this.selected, other.selected) &&
Objects.deepEquals(this.thumb, other.thumb);
}
@Override
public int hashCode() {
return Objects.hash(
key,
provider,
ratingKey,
selected,
thumb);
}
@Override
public String toString() {
return Utils.toString(GetMediaPostersMetadata.class,
"key", key,
"provider", provider,
"ratingKey", ratingKey,
"selected", selected,
"thumb", thumb);
}
public final static class Builder {
private String key;
private Optional<String> provider = Optional.empty();
private String ratingKey;
private Boolean selected;
private String thumb;
private Builder() {
// force use of static builder() method
}
/**
* The URL of the poster.
*/
public Builder key(String key) {
Utils.checkNotNull(key, "key");
this.key = key;
return this;
}
/**
* The provider of the poster.
*/
public Builder provider(String provider) {
Utils.checkNotNull(provider, "provider");
this.provider = Optional.ofNullable(provider);
return this;
}
/**
* The provider of the poster.
*/
public Builder provider(Optional<String> provider) {
Utils.checkNotNull(provider, "provider");
this.provider = provider;
return this;
}
/**
* The URL of the poster.
*/
public Builder ratingKey(String ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* Whether this is the selected poster.
*/
public Builder selected(boolean selected) {
Utils.checkNotNull(selected, "selected");
this.selected = selected;
return this;
}
/**
* The URL of the poster thumbnail.
*/
public Builder thumb(String thumb) {
Utils.checkNotNull(thumb, "thumb");
this.thumb = thumb;
return this;
}
public GetMediaPostersMetadata build() {
return new GetMediaPostersMetadata(
key,
provider,
ratingKey,
selected,
thumb);
}
}
}

View File

@@ -0,0 +1,99 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.SpeakeasyMetadata;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.util.Objects;
public class GetMediaPostersRequest {
/**
* the id of the library item to return the posters of.
*/
@SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")
private long ratingKey;
@JsonCreator
public GetMediaPostersRequest(
long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
}
/**
* the id of the library item to return the posters of.
*/
@JsonIgnore
public long ratingKey() {
return ratingKey;
}
public final static Builder builder() {
return new Builder();
}
/**
* the id of the library item to return the posters of.
*/
public GetMediaPostersRequest withRatingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaPostersRequest other = (GetMediaPostersRequest) o;
return
Objects.deepEquals(this.ratingKey, other.ratingKey);
}
@Override
public int hashCode() {
return Objects.hash(
ratingKey);
}
@Override
public String toString() {
return Utils.toString(GetMediaPostersRequest.class,
"ratingKey", ratingKey);
}
public final static class Builder {
private Long ratingKey;
private Builder() {
// force use of static builder() method
}
/**
* the id of the library item to return the posters of.
*/
public Builder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
public GetMediaPostersRequest build() {
return new GetMediaPostersRequest(
ratingKey);
}
}
}

View File

@@ -0,0 +1,30 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Exception;
import java.lang.Long;
public class GetMediaPostersRequestBuilder {
private Long ratingKey;
private final SDKMethodInterfaces.MethodCallGetMediaPosters sdk;
public GetMediaPostersRequestBuilder(SDKMethodInterfaces.MethodCallGetMediaPosters sdk) {
this.sdk = sdk;
}
public GetMediaPostersRequestBuilder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
public GetMediaPostersResponse call() throws Exception {
return sdk.getMediaPosters(
ratingKey);
}
}

View File

@@ -0,0 +1,248 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.Response;
import dev.plexapi.sdk.utils.Utils;
import java.io.InputStream;
import java.lang.Integer;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.net.http.HttpResponse;
import java.util.Objects;
import java.util.Optional;
public class GetMediaPostersResponse implements Response {
/**
* HTTP response content type for this operation
*/
private String contentType;
/**
* HTTP response status code for this operation
*/
private int statusCode;
/**
* Raw HTTP response; suitable for custom response parsing
*/
private HttpResponse<InputStream> rawResponse;
/**
* The available posters for the library item.
*/
private Optional<? extends GetMediaPostersResponseBody> object;
@JsonCreator
public GetMediaPostersResponse(
String contentType,
int statusCode,
HttpResponse<InputStream> rawResponse,
Optional<? extends GetMediaPostersResponseBody> object) {
Utils.checkNotNull(contentType, "contentType");
Utils.checkNotNull(statusCode, "statusCode");
Utils.checkNotNull(rawResponse, "rawResponse");
Utils.checkNotNull(object, "object");
this.contentType = contentType;
this.statusCode = statusCode;
this.rawResponse = rawResponse;
this.object = object;
}
public GetMediaPostersResponse(
String contentType,
int statusCode,
HttpResponse<InputStream> rawResponse) {
this(contentType, statusCode, rawResponse, Optional.empty());
}
/**
* HTTP response content type for this operation
*/
@JsonIgnore
public String contentType() {
return contentType;
}
/**
* HTTP response status code for this operation
*/
@JsonIgnore
public int statusCode() {
return statusCode;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
@JsonIgnore
public HttpResponse<InputStream> rawResponse() {
return rawResponse;
}
/**
* The available posters for the library item.
*/
@SuppressWarnings("unchecked")
@JsonIgnore
public Optional<GetMediaPostersResponseBody> object() {
return (Optional<GetMediaPostersResponseBody>) object;
}
public final static Builder builder() {
return new Builder();
}
/**
* HTTP response content type for this operation
*/
public GetMediaPostersResponse withContentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public GetMediaPostersResponse withStatusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public GetMediaPostersResponse withRawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
/**
* The available posters for the library item.
*/
public GetMediaPostersResponse withObject(GetMediaPostersResponseBody object) {
Utils.checkNotNull(object, "object");
this.object = Optional.ofNullable(object);
return this;
}
/**
* The available posters for the library item.
*/
public GetMediaPostersResponse withObject(Optional<? extends GetMediaPostersResponseBody> object) {
Utils.checkNotNull(object, "object");
this.object = object;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaPostersResponse other = (GetMediaPostersResponse) o;
return
Objects.deepEquals(this.contentType, other.contentType) &&
Objects.deepEquals(this.statusCode, other.statusCode) &&
Objects.deepEquals(this.rawResponse, other.rawResponse) &&
Objects.deepEquals(this.object, other.object);
}
@Override
public int hashCode() {
return Objects.hash(
contentType,
statusCode,
rawResponse,
object);
}
@Override
public String toString() {
return Utils.toString(GetMediaPostersResponse.class,
"contentType", contentType,
"statusCode", statusCode,
"rawResponse", rawResponse,
"object", object);
}
public final static class Builder {
private String contentType;
private Integer statusCode;
private HttpResponse<InputStream> rawResponse;
private Optional<? extends GetMediaPostersResponseBody> object = Optional.empty();
private Builder() {
// force use of static builder() method
}
/**
* HTTP response content type for this operation
*/
public Builder contentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public Builder statusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public Builder rawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
/**
* The available posters for the library item.
*/
public Builder object(GetMediaPostersResponseBody object) {
Utils.checkNotNull(object, "object");
this.object = Optional.ofNullable(object);
return this;
}
/**
* The available posters for the library item.
*/
public Builder object(Optional<? extends GetMediaPostersResponseBody> object) {
Utils.checkNotNull(object, "object");
this.object = object;
return this;
}
public GetMediaPostersResponse build() {
return new GetMediaPostersResponse(
contentType,
statusCode,
rawResponse,
object);
}
}
}

View File

@@ -0,0 +1,113 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
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;
/**
* GetMediaPostersResponseBody
*
* <p>The available posters for the library item.
*/
public class GetMediaPostersResponseBody {
@JsonInclude(Include.NON_ABSENT)
@JsonProperty("MediaContainer")
private Optional<? extends GetMediaPostersMediaContainer> mediaContainer;
@JsonCreator
public GetMediaPostersResponseBody(
@JsonProperty("MediaContainer") Optional<? extends GetMediaPostersMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
}
public GetMediaPostersResponseBody() {
this(Optional.empty());
}
@SuppressWarnings("unchecked")
@JsonIgnore
public Optional<GetMediaPostersMediaContainer> mediaContainer() {
return (Optional<GetMediaPostersMediaContainer>) mediaContainer;
}
public final static Builder builder() {
return new Builder();
}
public GetMediaPostersResponseBody withMediaContainer(GetMediaPostersMediaContainer mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = Optional.ofNullable(mediaContainer);
return this;
}
public GetMediaPostersResponseBody withMediaContainer(Optional<? extends GetMediaPostersMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GetMediaPostersResponseBody other = (GetMediaPostersResponseBody) o;
return
Objects.deepEquals(this.mediaContainer, other.mediaContainer);
}
@Override
public int hashCode() {
return Objects.hash(
mediaContainer);
}
@Override
public String toString() {
return Utils.toString(GetMediaPostersResponseBody.class,
"mediaContainer", mediaContainer);
}
public final static class Builder {
private Optional<? extends GetMediaPostersMediaContainer> mediaContainer = Optional.empty();
private Builder() {
// force use of static builder() method
}
public Builder mediaContainer(GetMediaPostersMediaContainer mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = Optional.ofNullable(mediaContainer);
return this;
}
public Builder mediaContainer(Optional<? extends GetMediaPostersMediaContainer> mediaContainer) {
Utils.checkNotNull(mediaContainer, "mediaContainer");
this.mediaContainer = mediaContainer;
return this;
}
public GetMediaPostersResponseBody build() {
return new GetMediaPostersResponseBody(
mediaContainer);
}
}
}

View File

@@ -0,0 +1,223 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.SpeakeasyMetadata;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
public class PostMediaArtsRequest {
/**
* the id of the library item to return the posters of.
*/
@SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")
private long ratingKey;
/**
* The URL of the image, if uploading a remote image
*/
@SpeakeasyMetadata("queryParam:style=form,explode=true,name=url")
private Optional<String> url;
/**
* The contents of the image, if uploading a local file
*/
@SpeakeasyMetadata("request:mediaType=image/*")
private Optional<byte[]> requestBody;
@JsonCreator
public PostMediaArtsRequest(
long ratingKey,
Optional<String> url,
Optional<byte[]> requestBody) {
Utils.checkNotNull(ratingKey, "ratingKey");
Utils.checkNotNull(url, "url");
Utils.checkNotNull(requestBody, "requestBody");
this.ratingKey = ratingKey;
this.url = url;
this.requestBody = requestBody;
}
public PostMediaArtsRequest(
long ratingKey) {
this(ratingKey, Optional.empty(), Optional.empty());
}
/**
* the id of the library item to return the posters of.
*/
@JsonIgnore
public long ratingKey() {
return ratingKey;
}
/**
* The URL of the image, if uploading a remote image
*/
@JsonIgnore
public Optional<String> url() {
return url;
}
/**
* The contents of the image, if uploading a local file
*/
@JsonIgnore
public Optional<byte[]> requestBody() {
return requestBody;
}
public final static Builder builder() {
return new Builder();
}
/**
* the id of the library item to return the posters of.
*/
public PostMediaArtsRequest withRatingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public PostMediaArtsRequest withUrl(String url) {
Utils.checkNotNull(url, "url");
this.url = Optional.ofNullable(url);
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public PostMediaArtsRequest withUrl(Optional<String> url) {
Utils.checkNotNull(url, "url");
this.url = url;
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public PostMediaArtsRequest withRequestBody(byte[] requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = Optional.ofNullable(requestBody);
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public PostMediaArtsRequest withRequestBody(Optional<byte[]> requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = requestBody;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
PostMediaArtsRequest other = (PostMediaArtsRequest) o;
return
Objects.deepEquals(this.ratingKey, other.ratingKey) &&
Objects.deepEquals(this.url, other.url) &&
Objects.deepEquals(this.requestBody, other.requestBody);
}
@Override
public int hashCode() {
return Objects.hash(
ratingKey,
url,
requestBody);
}
@Override
public String toString() {
return Utils.toString(PostMediaArtsRequest.class,
"ratingKey", ratingKey,
"url", url,
"requestBody", requestBody);
}
public final static class Builder {
private Long ratingKey;
private Optional<String> url = Optional.empty();
private Optional<byte[]> requestBody = Optional.empty();
private Builder() {
// force use of static builder() method
}
/**
* the id of the library item to return the posters of.
*/
public Builder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public Builder url(String url) {
Utils.checkNotNull(url, "url");
this.url = Optional.ofNullable(url);
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public Builder url(Optional<String> url) {
Utils.checkNotNull(url, "url");
this.url = url;
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public Builder requestBody(byte[] requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = Optional.ofNullable(requestBody);
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public Builder requestBody(Optional<byte[]> requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = requestBody;
return this;
}
public PostMediaArtsRequest build() {
return new PostMediaArtsRequest(
ratingKey,
url,
requestBody);
}
}
}

View File

@@ -0,0 +1,60 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Exception;
import java.lang.Long;
import java.lang.String;
import java.util.Optional;
public class PostMediaArtsRequestBuilder {
private Long ratingKey;
private Optional<String> url = Optional.empty();
private Optional<byte[]> requestBody = Optional.empty();
private final SDKMethodInterfaces.MethodCallPostMediaArts sdk;
public PostMediaArtsRequestBuilder(SDKMethodInterfaces.MethodCallPostMediaArts sdk) {
this.sdk = sdk;
}
public PostMediaArtsRequestBuilder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
public PostMediaArtsRequestBuilder url(String url) {
Utils.checkNotNull(url, "url");
this.url = Optional.of(url);
return this;
}
public PostMediaArtsRequestBuilder url(Optional<String> url) {
Utils.checkNotNull(url, "url");
this.url = url;
return this;
}
public PostMediaArtsRequestBuilder requestBody(byte[] requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = Optional.of(requestBody);
return this;
}
public PostMediaArtsRequestBuilder requestBody(Optional<byte[]> requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = requestBody;
return this;
}
public PostMediaArtsResponse call() throws Exception {
return sdk.postMediaArts(
ratingKey,
url,
requestBody);
}
}

View File

@@ -0,0 +1,180 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.Response;
import dev.plexapi.sdk.utils.Utils;
import java.io.InputStream;
import java.lang.Integer;
import java.lang.Override;
import java.lang.String;
import java.net.http.HttpResponse;
import java.util.Objects;
public class PostMediaArtsResponse implements Response {
/**
* HTTP response content type for this operation
*/
private String contentType;
/**
* HTTP response status code for this operation
*/
private int statusCode;
/**
* Raw HTTP response; suitable for custom response parsing
*/
private HttpResponse<InputStream> rawResponse;
@JsonCreator
public PostMediaArtsResponse(
String contentType,
int statusCode,
HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(contentType, "contentType");
Utils.checkNotNull(statusCode, "statusCode");
Utils.checkNotNull(rawResponse, "rawResponse");
this.contentType = contentType;
this.statusCode = statusCode;
this.rawResponse = rawResponse;
}
/**
* HTTP response content type for this operation
*/
@JsonIgnore
public String contentType() {
return contentType;
}
/**
* HTTP response status code for this operation
*/
@JsonIgnore
public int statusCode() {
return statusCode;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
@JsonIgnore
public HttpResponse<InputStream> rawResponse() {
return rawResponse;
}
public final static Builder builder() {
return new Builder();
}
/**
* HTTP response content type for this operation
*/
public PostMediaArtsResponse withContentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public PostMediaArtsResponse withStatusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public PostMediaArtsResponse withRawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
PostMediaArtsResponse other = (PostMediaArtsResponse) o;
return
Objects.deepEquals(this.contentType, other.contentType) &&
Objects.deepEquals(this.statusCode, other.statusCode) &&
Objects.deepEquals(this.rawResponse, other.rawResponse);
}
@Override
public int hashCode() {
return Objects.hash(
contentType,
statusCode,
rawResponse);
}
@Override
public String toString() {
return Utils.toString(PostMediaArtsResponse.class,
"contentType", contentType,
"statusCode", statusCode,
"rawResponse", rawResponse);
}
public final static class Builder {
private String contentType;
private Integer statusCode;
private HttpResponse<InputStream> rawResponse;
private Builder() {
// force use of static builder() method
}
/**
* HTTP response content type for this operation
*/
public Builder contentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public Builder statusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public Builder rawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
public PostMediaArtsResponse build() {
return new PostMediaArtsResponse(
contentType,
statusCode,
rawResponse);
}
}
}

View File

@@ -0,0 +1,223 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.SpeakeasyMetadata;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Long;
import java.lang.Override;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
public class PostMediaPosterRequest {
/**
* the id of the library item to return the posters of.
*/
@SpeakeasyMetadata("pathParam:style=simple,explode=false,name=ratingKey")
private long ratingKey;
/**
* The URL of the image, if uploading a remote image
*/
@SpeakeasyMetadata("queryParam:style=form,explode=true,name=url")
private Optional<String> url;
/**
* The contents of the image, if uploading a local file
*/
@SpeakeasyMetadata("request:mediaType=image/*")
private Optional<byte[]> requestBody;
@JsonCreator
public PostMediaPosterRequest(
long ratingKey,
Optional<String> url,
Optional<byte[]> requestBody) {
Utils.checkNotNull(ratingKey, "ratingKey");
Utils.checkNotNull(url, "url");
Utils.checkNotNull(requestBody, "requestBody");
this.ratingKey = ratingKey;
this.url = url;
this.requestBody = requestBody;
}
public PostMediaPosterRequest(
long ratingKey) {
this(ratingKey, Optional.empty(), Optional.empty());
}
/**
* the id of the library item to return the posters of.
*/
@JsonIgnore
public long ratingKey() {
return ratingKey;
}
/**
* The URL of the image, if uploading a remote image
*/
@JsonIgnore
public Optional<String> url() {
return url;
}
/**
* The contents of the image, if uploading a local file
*/
@JsonIgnore
public Optional<byte[]> requestBody() {
return requestBody;
}
public final static Builder builder() {
return new Builder();
}
/**
* the id of the library item to return the posters of.
*/
public PostMediaPosterRequest withRatingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public PostMediaPosterRequest withUrl(String url) {
Utils.checkNotNull(url, "url");
this.url = Optional.ofNullable(url);
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public PostMediaPosterRequest withUrl(Optional<String> url) {
Utils.checkNotNull(url, "url");
this.url = url;
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public PostMediaPosterRequest withRequestBody(byte[] requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = Optional.ofNullable(requestBody);
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public PostMediaPosterRequest withRequestBody(Optional<byte[]> requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = requestBody;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
PostMediaPosterRequest other = (PostMediaPosterRequest) o;
return
Objects.deepEquals(this.ratingKey, other.ratingKey) &&
Objects.deepEquals(this.url, other.url) &&
Objects.deepEquals(this.requestBody, other.requestBody);
}
@Override
public int hashCode() {
return Objects.hash(
ratingKey,
url,
requestBody);
}
@Override
public String toString() {
return Utils.toString(PostMediaPosterRequest.class,
"ratingKey", ratingKey,
"url", url,
"requestBody", requestBody);
}
public final static class Builder {
private Long ratingKey;
private Optional<String> url = Optional.empty();
private Optional<byte[]> requestBody = Optional.empty();
private Builder() {
// force use of static builder() method
}
/**
* the id of the library item to return the posters of.
*/
public Builder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public Builder url(String url) {
Utils.checkNotNull(url, "url");
this.url = Optional.ofNullable(url);
return this;
}
/**
* The URL of the image, if uploading a remote image
*/
public Builder url(Optional<String> url) {
Utils.checkNotNull(url, "url");
this.url = url;
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public Builder requestBody(byte[] requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = Optional.ofNullable(requestBody);
return this;
}
/**
* The contents of the image, if uploading a local file
*/
public Builder requestBody(Optional<byte[]> requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = requestBody;
return this;
}
public PostMediaPosterRequest build() {
return new PostMediaPosterRequest(
ratingKey,
url,
requestBody);
}
}
}

View File

@@ -0,0 +1,60 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import dev.plexapi.sdk.utils.Utils;
import java.lang.Exception;
import java.lang.Long;
import java.lang.String;
import java.util.Optional;
public class PostMediaPosterRequestBuilder {
private Long ratingKey;
private Optional<String> url = Optional.empty();
private Optional<byte[]> requestBody = Optional.empty();
private final SDKMethodInterfaces.MethodCallPostMediaPoster sdk;
public PostMediaPosterRequestBuilder(SDKMethodInterfaces.MethodCallPostMediaPoster sdk) {
this.sdk = sdk;
}
public PostMediaPosterRequestBuilder ratingKey(long ratingKey) {
Utils.checkNotNull(ratingKey, "ratingKey");
this.ratingKey = ratingKey;
return this;
}
public PostMediaPosterRequestBuilder url(String url) {
Utils.checkNotNull(url, "url");
this.url = Optional.of(url);
return this;
}
public PostMediaPosterRequestBuilder url(Optional<String> url) {
Utils.checkNotNull(url, "url");
this.url = url;
return this;
}
public PostMediaPosterRequestBuilder requestBody(byte[] requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = Optional.of(requestBody);
return this;
}
public PostMediaPosterRequestBuilder requestBody(Optional<byte[]> requestBody) {
Utils.checkNotNull(requestBody, "requestBody");
this.requestBody = requestBody;
return this;
}
public PostMediaPosterResponse call() throws Exception {
return sdk.postMediaPoster(
ratingKey,
url,
requestBody);
}
}

View File

@@ -0,0 +1,180 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.plexapi.sdk.utils.Response;
import dev.plexapi.sdk.utils.Utils;
import java.io.InputStream;
import java.lang.Integer;
import java.lang.Override;
import java.lang.String;
import java.net.http.HttpResponse;
import java.util.Objects;
public class PostMediaPosterResponse implements Response {
/**
* HTTP response content type for this operation
*/
private String contentType;
/**
* HTTP response status code for this operation
*/
private int statusCode;
/**
* Raw HTTP response; suitable for custom response parsing
*/
private HttpResponse<InputStream> rawResponse;
@JsonCreator
public PostMediaPosterResponse(
String contentType,
int statusCode,
HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(contentType, "contentType");
Utils.checkNotNull(statusCode, "statusCode");
Utils.checkNotNull(rawResponse, "rawResponse");
this.contentType = contentType;
this.statusCode = statusCode;
this.rawResponse = rawResponse;
}
/**
* HTTP response content type for this operation
*/
@JsonIgnore
public String contentType() {
return contentType;
}
/**
* HTTP response status code for this operation
*/
@JsonIgnore
public int statusCode() {
return statusCode;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
@JsonIgnore
public HttpResponse<InputStream> rawResponse() {
return rawResponse;
}
public final static Builder builder() {
return new Builder();
}
/**
* HTTP response content type for this operation
*/
public PostMediaPosterResponse withContentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public PostMediaPosterResponse withStatusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public PostMediaPosterResponse withRawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
PostMediaPosterResponse other = (PostMediaPosterResponse) o;
return
Objects.deepEquals(this.contentType, other.contentType) &&
Objects.deepEquals(this.statusCode, other.statusCode) &&
Objects.deepEquals(this.rawResponse, other.rawResponse);
}
@Override
public int hashCode() {
return Objects.hash(
contentType,
statusCode,
rawResponse);
}
@Override
public String toString() {
return Utils.toString(PostMediaPosterResponse.class,
"contentType", contentType,
"statusCode", statusCode,
"rawResponse", rawResponse);
}
public final static class Builder {
private String contentType;
private Integer statusCode;
private HttpResponse<InputStream> rawResponse;
private Builder() {
// force use of static builder() method
}
/**
* HTTP response content type for this operation
*/
public Builder contentType(String contentType) {
Utils.checkNotNull(contentType, "contentType");
this.contentType = contentType;
return this;
}
/**
* HTTP response status code for this operation
*/
public Builder statusCode(int statusCode) {
Utils.checkNotNull(statusCode, "statusCode");
this.statusCode = statusCode;
return this;
}
/**
* Raw HTTP response; suitable for custom response parsing
*/
public Builder rawResponse(HttpResponse<InputStream> rawResponse) {
Utils.checkNotNull(rawResponse, "rawResponse");
this.rawResponse = rawResponse;
return this;
}
public PostMediaPosterResponse build() {
return new PostMediaPosterResponse(
contentType,
statusCode,
rawResponse);
}
}
}

View File

@@ -270,6 +270,30 @@ public class SDKMethodInterfaces {
GetMediaMetaDataRequest request) throws Exception;
}
public interface MethodCallGetMediaArts {
GetMediaArtsResponse getMediaArts(
long ratingKey) throws Exception;
}
public interface MethodCallPostMediaArts {
PostMediaArtsResponse postMediaArts(
long ratingKey,
Optional<String> url,
Optional<byte[]> requestBody) throws Exception;
}
public interface MethodCallGetMediaPosters {
GetMediaPostersResponse getMediaPosters(
long ratingKey) throws Exception;
}
public interface MethodCallPostMediaPoster {
PostMediaPosterResponse postMediaPoster(
long ratingKey,
Optional<String> url,
Optional<byte[]> requestBody) throws Exception;
}
public interface MethodCallGetMetadataChildren {
GetMetadataChildrenResponse getMetadataChildren(
double ratingKey,

View File

@@ -0,0 +1,10 @@
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.utils;
public final class Constants {
public static final boolean HAS_CLIENT_CREDENTIALS_BASIC = false;
}

View File

@@ -7,8 +7,14 @@ import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Base64;
import java.util.Deque;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public final class Security {
@@ -187,6 +193,58 @@ public final class Security {
.getBytes(StandardCharsets.UTF_8)));
}
public static Optional<Object> findComplexObjectWithNonEmptyAnnotatedField(Object object, String... regexes) {
if (object == null || object instanceof String) {
return Optional.empty();
}
Deque<Object> stack = new LinkedList<>();
// be defensive about circular references (not expected)
Set<Object> processed = new HashSet<>();
stack.push(object);
processed.add(object);
while (!stack.isEmpty()) {
Object o = stack.pop();
Field[] fields = o.getClass().getDeclaredFields();
List<Field> annotatedFields = Arrays.stream(fields) //
.filter(f -> {
SpeakeasyMetadata[] anns = f.getDeclaredAnnotationsByType(SpeakeasyMetadata.class);
return anns != null && anns.length > 0;
}) //
.collect(Collectors.toList());
for (Field f : annotatedFields) {
SpeakeasyMetadata[] anns = f.getDeclaredAnnotationsByType(SpeakeasyMetadata.class);
Object value = getUnwrappedFieldValue(o, f);
if (value != null && !(value instanceof String)) {
// we are looking for a complex object (so can't be a String)
boolean regexMatches = Arrays //
.stream(regexes) //
.allMatch(regex -> matches(anns, regex));
if (regexMatches) {
return Optional.of(value);
} else if (!processed.contains(value)) {
stack.push(value);
processed.add(value);
}
}
}
}
return Optional.empty();
}
private static Object getUnwrappedFieldValue(Object o, Field f) {
try {
f.setAccessible(true);
Object value = f.get(o);
if (value != null && value instanceof Optional) {
return ((Optional<?>) value).orElse(null);
} else {
return value;
}
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new RuntimeException(e);
}
}
public static Stream<Field> findFieldsWhereMetadataContainsRegexes(Object o, String... regexes) {
Field[] fields = o.getClass().getDeclaredFields();
return Arrays.stream(fields) //