mirror of
https://github.com/LukeHagar/plexjava.git
synced 2025-12-06 12:37:47 +00:00
SDK update generated by liblab
This commit is contained in:
8
src/main/java/com/plexsdk/Configuration.java
Normal file
8
src/main/java/com/plexsdk/Configuration.java
Normal file
@@ -0,0 +1,8 @@
|
||||
package com.plexsdk;
|
||||
|
||||
public class Configuration {
|
||||
|
||||
public static final String USER_AGENT = "liblab/0.1.25 PlexSDK/0.0.1 java/1.8";
|
||||
|
||||
public static final String DEFAULT_API_KEY_HEADER = "X-Plex-Token";
|
||||
}
|
||||
14
src/main/java/com/plexsdk/Environment.java
Normal file
14
src/main/java/com/plexsdk/Environment.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.plexsdk;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public enum Environment {
|
||||
DEFAULT("{protocol}://{ip}:{port}");
|
||||
|
||||
private final String url;
|
||||
|
||||
public String getUrl() {
|
||||
return this.url;
|
||||
}
|
||||
}
|
||||
85
src/main/java/com/plexsdk/PlexSDK.java
Normal file
85
src/main/java/com/plexsdk/PlexSDK.java
Normal file
@@ -0,0 +1,85 @@
|
||||
package com.plexsdk;
|
||||
|
||||
import com.plexsdk.Environment;
|
||||
import com.plexsdk.http.interceptors.ApiKeyInterceptor;
|
||||
import com.plexsdk.http.interceptors.DefaultHeadersInterceptor;
|
||||
import com.plexsdk.http.interceptors.RetryInterceptor;
|
||||
import com.plexsdk.services.*;
|
||||
import java.util.Map;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class PlexSDK {
|
||||
|
||||
public ActivitiesService activitiesService;
|
||||
public ButlerService butlerService;
|
||||
public HubsService hubsService;
|
||||
public LibraryService libraryService;
|
||||
public LogService logService;
|
||||
public MediaService mediaService;
|
||||
public PlaylistsService playlistsService;
|
||||
public SearchService searchService;
|
||||
public SecurityService securityService;
|
||||
public ServerService serverService;
|
||||
public SessionsService sessionsService;
|
||||
public UpdaterService updaterService;
|
||||
public VideoService videoService;
|
||||
|
||||
private final ApiKeyInterceptor apiKeyInterceptor = new ApiKeyInterceptor();
|
||||
|
||||
public PlexSDK() {
|
||||
final String serverUrl = Environment.DEFAULT.getUrl();
|
||||
final OkHttpClient httpClient = new OkHttpClient.Builder()
|
||||
.addInterceptor(new DefaultHeadersInterceptor())
|
||||
.addInterceptor(new RetryInterceptor())
|
||||
.addInterceptor(apiKeyInterceptor)
|
||||
.build();
|
||||
|
||||
this.activitiesService = new ActivitiesService(httpClient, serverUrl);
|
||||
this.butlerService = new ButlerService(httpClient, serverUrl);
|
||||
this.hubsService = new HubsService(httpClient, serverUrl);
|
||||
this.libraryService = new LibraryService(httpClient, serverUrl);
|
||||
this.logService = new LogService(httpClient, serverUrl);
|
||||
this.mediaService = new MediaService(httpClient, serverUrl);
|
||||
this.playlistsService = new PlaylistsService(httpClient, serverUrl);
|
||||
this.searchService = new SearchService(httpClient, serverUrl);
|
||||
this.securityService = new SecurityService(httpClient, serverUrl);
|
||||
this.serverService = new ServerService(httpClient, serverUrl);
|
||||
this.sessionsService = new SessionsService(httpClient, serverUrl);
|
||||
this.updaterService = new UpdaterService(httpClient, serverUrl);
|
||||
this.videoService = new VideoService(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
public PlexSDK(String apiKey) {
|
||||
this(apiKey, null);
|
||||
}
|
||||
|
||||
public PlexSDK(String apiKey, String apiKeyHeader) {
|
||||
this();
|
||||
setApiKey(apiKey);
|
||||
setApiKeyHeader(apiKeyHeader);
|
||||
}
|
||||
|
||||
public void setBaseUrl(String url) {
|
||||
this.activitiesService.setBaseUrl(url);
|
||||
this.butlerService.setBaseUrl(url);
|
||||
this.hubsService.setBaseUrl(url);
|
||||
this.libraryService.setBaseUrl(url);
|
||||
this.logService.setBaseUrl(url);
|
||||
this.mediaService.setBaseUrl(url);
|
||||
this.playlistsService.setBaseUrl(url);
|
||||
this.searchService.setBaseUrl(url);
|
||||
this.securityService.setBaseUrl(url);
|
||||
this.serverService.setBaseUrl(url);
|
||||
this.sessionsService.setBaseUrl(url);
|
||||
this.updaterService.setBaseUrl(url);
|
||||
this.videoService.setBaseUrl(url);
|
||||
}
|
||||
|
||||
public void setApiKey(String apiKey) {
|
||||
this.apiKeyInterceptor.setApiKey(apiKey);
|
||||
}
|
||||
|
||||
public void setApiKeyHeader(String apiKeyHeader) {
|
||||
this.apiKeyInterceptor.setApiKeyHeader(apiKeyHeader);
|
||||
}
|
||||
}
|
||||
59
src/main/java/com/plexsdk/exceptions/ApiException.java
Normal file
59
src/main/java/com/plexsdk/exceptions/ApiException.java
Normal file
@@ -0,0 +1,59 @@
|
||||
package com.plexsdk.exceptions;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* This is the base class for all exceptions that represent an error response from the server.
|
||||
*/
|
||||
public class ApiException extends RuntimeException {
|
||||
|
||||
private static final Map<Integer, String> ERROR_MAP = Collections.unmodifiableMap(
|
||||
new HashMap<Integer, String>() {
|
||||
{
|
||||
put(401, "Unauthorized");
|
||||
put(403, "Forbidden");
|
||||
put(404, "Not Found");
|
||||
put(405, "Method Not Allowed");
|
||||
put(406, "Not Acceptable");
|
||||
put(409, "Conflict");
|
||||
put(410, "Gone");
|
||||
put(500, "Internal Server Error");
|
||||
put(502, "Bad Gateway");
|
||||
put(503, "Service Unavailable");
|
||||
put(504, "Gateway Timeout");
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
private final int statusCode;
|
||||
|
||||
public ApiException(int code) {
|
||||
super(getExceptionMessage(code));
|
||||
this.statusCode = code;
|
||||
}
|
||||
|
||||
public ApiException(String message) {
|
||||
super(message);
|
||||
this.statusCode = 0;
|
||||
}
|
||||
|
||||
public ApiException(String message, Throwable t) {
|
||||
super(message, t);
|
||||
this.statusCode = 0;
|
||||
}
|
||||
|
||||
public ApiException(int code, String message) {
|
||||
super(message);
|
||||
this.statusCode = code;
|
||||
}
|
||||
|
||||
public int getStatusCode() {
|
||||
return this.statusCode;
|
||||
}
|
||||
|
||||
static String getExceptionMessage(int code) {
|
||||
return ERROR_MAP.getOrDefault(code, "Unknown Error");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.plexsdk.exceptions;
|
||||
|
||||
/**
|
||||
* Thrown to indicate that a service method has been passed an illegal or inappropriate argument.
|
||||
* For example, if a required argument is being passed as null.
|
||||
*/
|
||||
public class ArgumentCannotBeNullException extends RuntimeException {
|
||||
|
||||
private static final String ARGUMENT_NAME_MESSAGE_FORMAT = "Required argument %s cannot be null.";
|
||||
private static final String DEFAULT_MESSAGE = "Required argument cannot be null.";
|
||||
|
||||
public ArgumentCannotBeNullException() {
|
||||
super(DEFAULT_MESSAGE);
|
||||
}
|
||||
|
||||
public ArgumentCannotBeNullException(String argumentName) {
|
||||
super(String.format(ARGUMENT_NAME_MESSAGE_FORMAT, argumentName));
|
||||
}
|
||||
}
|
||||
1
src/main/java/com/plexsdk/hooks/CustomHook.java
Normal file
1
src/main/java/com/plexsdk/hooks/CustomHook.java
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
26
src/main/java/com/plexsdk/hooks/model/Hook.java
Normal file
26
src/main/java/com/plexsdk/hooks/model/Hook.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package com.plexsdk.hooks.model;
|
||||
|
||||
/**
|
||||
* Liblab Hook interface
|
||||
*/
|
||||
public interface Hook {
|
||||
/**
|
||||
* Is called before the request is made to the API
|
||||
* @param request the request about to be made by the SDK
|
||||
*/
|
||||
void beforeRequest(Request request);
|
||||
|
||||
/**
|
||||
* Is called after the response has returned
|
||||
* @param request the request that was made by the SDK
|
||||
* @param response the response coming back from the API the SDK has called
|
||||
*/
|
||||
void afterResponse(Request request, Response response);
|
||||
|
||||
/**
|
||||
* Is called when an error occurs in the SDK
|
||||
* @param request the request that was made by the SDK
|
||||
* @param exception The Exception thrown
|
||||
*/
|
||||
void onError(Request request, Exception exception);
|
||||
}
|
||||
96
src/main/java/com/plexsdk/hooks/model/Request.java
Normal file
96
src/main/java/com/plexsdk/hooks/model/Request.java
Normal file
@@ -0,0 +1,96 @@
|
||||
package com.plexsdk.hooks.model;
|
||||
|
||||
import com.plexsdk.http.ModelConverter;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
/**
|
||||
* Liblab's representation of a request
|
||||
*/
|
||||
public class Request {
|
||||
|
||||
private String method;
|
||||
private String url;
|
||||
private String body;
|
||||
private Map<String, String> headers;
|
||||
|
||||
public Request(String method, String url, String body, Map<String, String> headers) {
|
||||
this.method = method;
|
||||
this.url = url;
|
||||
this.body = body;
|
||||
this.headers = headers;
|
||||
}
|
||||
|
||||
public String getMethod() {
|
||||
return method;
|
||||
}
|
||||
|
||||
public void setMethod(String method) {
|
||||
this.method = method;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public void setBody(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
public Map<String, String> getHeaders() {
|
||||
return headers;
|
||||
}
|
||||
|
||||
public void setHeaders(Map<String, String> headers) {
|
||||
this.headers = headers;
|
||||
}
|
||||
|
||||
public static Request toHookRequest(okhttp3.Request request) {
|
||||
Map<String, String> hookHeaders = request
|
||||
.headers()
|
||||
.toMultimap()
|
||||
.entrySet()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().get(0)));
|
||||
return new Request(
|
||||
request.method(),
|
||||
request.url().toString(),
|
||||
request.body() != null ? Objects.requireNonNull(request.body()).toString() : "",
|
||||
hookHeaders
|
||||
);
|
||||
}
|
||||
|
||||
public static okhttp3.Request toOkHttpRequest(Request hookRequest) {
|
||||
Headers.Builder headersBuilder = new Headers.Builder();
|
||||
hookRequest.getHeaders().forEach(headersBuilder::add);
|
||||
|
||||
if (hookRequest.getBody() != null && !hookRequest.getBody().isEmpty()) {
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(hookRequest.getBody())),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
return new okhttp3.Request.Builder()
|
||||
.method(hookRequest.getMethod(), requestBody)
|
||||
.headers(headersBuilder.build())
|
||||
.url(hookRequest.url)
|
||||
.build();
|
||||
} else {
|
||||
return new okhttp3.Request.Builder()
|
||||
.method(hookRequest.getMethod(), null)
|
||||
.headers(headersBuilder.build())
|
||||
.url(hookRequest.url)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
60
src/main/java/com/plexsdk/hooks/model/Response.java
Normal file
60
src/main/java/com/plexsdk/hooks/model/Response.java
Normal file
@@ -0,0 +1,60 @@
|
||||
package com.plexsdk.hooks.model;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Liblab's representation of a response
|
||||
*/
|
||||
public class Response {
|
||||
|
||||
private int statusCode;
|
||||
private String body;
|
||||
private Map<String, String> headers;
|
||||
|
||||
public Response(int statusCode, String body, Map<String, String> headers) {
|
||||
this.statusCode = statusCode;
|
||||
this.body = body;
|
||||
this.headers = headers;
|
||||
}
|
||||
|
||||
public int getStatusCode() {
|
||||
return statusCode;
|
||||
}
|
||||
|
||||
public void setStatusCode(int statusCode) {
|
||||
this.statusCode = statusCode;
|
||||
}
|
||||
|
||||
public String getBody() {
|
||||
return body;
|
||||
}
|
||||
|
||||
public void setBody(String body) {
|
||||
this.body = body;
|
||||
}
|
||||
|
||||
public Map<String, String> getHeaders() {
|
||||
return headers;
|
||||
}
|
||||
|
||||
public void setHeaders(Map<String, String> headers) {
|
||||
this.headers = headers;
|
||||
}
|
||||
|
||||
public static Response toHookResponse(okhttp3.Response response) {
|
||||
Map<String, String> responseHeaders = response
|
||||
.headers()
|
||||
.toMultimap()
|
||||
.entrySet()
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().get(0)));
|
||||
|
||||
return new Response(
|
||||
response.code(),
|
||||
response.body() != null ? Objects.requireNonNull(response.body()).toString() : null,
|
||||
responseHeaders
|
||||
);
|
||||
}
|
||||
}
|
||||
10
src/main/java/com/plexsdk/http/ActivitiesClient.java
Normal file
10
src/main/java/com/plexsdk/http/ActivitiesClient.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface ActivitiesClient {
|
||||
ResponseWithHeaders<com.plexsdk.models.GetServerActivitiesResponse> getServerActivities()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> cancelServerActivities(String activityUUID) throws ApiException;
|
||||
}
|
||||
13
src/main/java/com/plexsdk/http/ButlerClient.java
Normal file
13
src/main/java/com/plexsdk/http/ButlerClient.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface ButlerClient {
|
||||
ResponseWithHeaders<com.plexsdk.models.GetButlerTasksResponse> getButlerTasks()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> startAllTasks() throws ApiException;
|
||||
ResponseWithHeaders<String> stopAllTasks() throws ApiException;
|
||||
ResponseWithHeaders<String> startTask(String taskName) throws ApiException;
|
||||
ResponseWithHeaders<String> stopTask(String taskName) throws ApiException;
|
||||
}
|
||||
10
src/main/java/com/plexsdk/http/HubsClient.java
Normal file
10
src/main/java/com/plexsdk/http/HubsClient.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface HubsClient {
|
||||
ResponseWithHeaders<String> getGlobalHubs(Float count, Float onlyTransient) throws ApiException;
|
||||
ResponseWithHeaders<String> getLibraryHubs(Float sectionId, Float count, Float onlyTransient)
|
||||
throws ApiException;
|
||||
}
|
||||
23
src/main/java/com/plexsdk/http/LibraryClient.java
Normal file
23
src/main/java/com/plexsdk/http/LibraryClient.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface LibraryClient {
|
||||
ResponseWithHeaders<String> getFileHash(String url, Float type) throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetRecentlyAddedResponse> getRecentlyAdded()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> getLibraries() throws ApiException;
|
||||
ResponseWithHeaders<String> getLibrary(Float sectionId, Float includeDetails) throws ApiException;
|
||||
ResponseWithHeaders<String> deleteLibrary(Float sectionId) throws ApiException;
|
||||
ResponseWithHeaders<String> getLibraryItems(Float sectionId, Float type, String filter)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> refreshLibrary(Float sectionId) throws ApiException;
|
||||
ResponseWithHeaders<String> getLatestLibraryItems(Float sectionId, Float type, String filter)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> getCommonLibraryItems(Float sectionId, Float type, String filter)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> getMetadata(Float ratingKey) throws ApiException;
|
||||
ResponseWithHeaders<String> getMetadataChildren(Float ratingKey) throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetOnDeckResponse> getOnDeck() throws ApiException;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/http/LogClient.java
Normal file
11
src/main/java/com/plexsdk/http/LogClient.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface LogClient {
|
||||
ResponseWithHeaders<String> logLine(Float level, String message, String source)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> logMultiLine() throws ApiException;
|
||||
ResponseWithHeaders<String> enablePaperTrail() throws ApiException;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/http/MediaClient.java
Normal file
11
src/main/java/com/plexsdk/http/MediaClient.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface MediaClient {
|
||||
ResponseWithHeaders<String> markPlayed(Float key) throws ApiException;
|
||||
ResponseWithHeaders<String> markUnplayed(Float key) throws ApiException;
|
||||
ResponseWithHeaders<String> updatePlayProgress(String key, Float time, String state)
|
||||
throws ApiException;
|
||||
}
|
||||
74
src/main/java/com/plexsdk/http/ModelConverter.java
Normal file
74
src/main/java/com/plexsdk/http/ModelConverter.java
Normal file
@@ -0,0 +1,74 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import okhttp3.Response;
|
||||
import okhttp3.ResponseBody;
|
||||
|
||||
public final class ModelConverter {
|
||||
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
static {
|
||||
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
mapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
|
||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
|
||||
mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
|
||||
mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
|
||||
}
|
||||
|
||||
private ModelConverter() {}
|
||||
|
||||
public static <T> T convert(final Response response, final Class<T> clazz) {
|
||||
final ResponseBody body = response.body();
|
||||
try {
|
||||
return mapper.readValue(body.string(), clazz);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> T convert(final String response, final Class<T> clazz) {
|
||||
try {
|
||||
return mapper.readValue(response, clazz);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> T convert(Response response, TypeReference<T> typeReference) {
|
||||
try {
|
||||
return convert(response.body().string(), typeReference);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static <T> T convert(String response, TypeReference<T> typeReference) {
|
||||
try {
|
||||
return mapper.readValue(response, typeReference);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String modelToJson(final Object model) {
|
||||
try {
|
||||
return mapper.writeValueAsString(model);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
23
src/main/java/com/plexsdk/http/PlaylistsClient.java
Normal file
23
src/main/java/com/plexsdk/http/PlaylistsClient.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface PlaylistsClient {
|
||||
ResponseWithHeaders<String> createPlaylist(
|
||||
String title,
|
||||
String type,
|
||||
Float smart,
|
||||
String uri,
|
||||
Float playQueueID
|
||||
) throws ApiException;
|
||||
ResponseWithHeaders<String> getPlaylists(String playlistType, Float smart) throws ApiException;
|
||||
ResponseWithHeaders<String> getPlaylist(Float playlistID) throws ApiException;
|
||||
ResponseWithHeaders<String> updatePlaylist(Float playlistID) throws ApiException;
|
||||
ResponseWithHeaders<String> deletePlaylist(Float playlistID) throws ApiException;
|
||||
ResponseWithHeaders<String> getPlaylistContents(Float playlistID, Float type) throws ApiException;
|
||||
ResponseWithHeaders<String> addPlaylistContents(Float playlistID, String uri, Float playQueueID)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> clearPlaylistContents(Float playlistID) throws ApiException;
|
||||
ResponseWithHeaders<String> uploadPlaylist(String path, Float force) throws ApiException;
|
||||
}
|
||||
22
src/main/java/com/plexsdk/http/ResponseWithHeaders.java
Normal file
22
src/main/java/com/plexsdk/http/ResponseWithHeaders.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import okhttp3.Headers;
|
||||
|
||||
public class ResponseWithHeaders<T> {
|
||||
|
||||
private T data;
|
||||
private Headers headers;
|
||||
|
||||
public ResponseWithHeaders(T data, Headers headers) {
|
||||
this.data = data;
|
||||
this.headers = headers;
|
||||
}
|
||||
|
||||
public T getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public Headers getHeaders() {
|
||||
return headers;
|
||||
}
|
||||
}
|
||||
13
src/main/java/com/plexsdk/http/SearchClient.java
Normal file
13
src/main/java/com/plexsdk/http/SearchClient.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface SearchClient {
|
||||
ResponseWithHeaders<String> performSearch(String query, Float sectionId, Float limit)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> performVoiceSearch(String query, Float sectionId, Float limit)
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetSearchResultsResponse> getSearchResults(String query)
|
||||
throws ApiException;
|
||||
}
|
||||
9
src/main/java/com/plexsdk/http/SecurityClient.java
Normal file
9
src/main/java/com/plexsdk/http/SecurityClient.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface SecurityClient {
|
||||
ResponseWithHeaders<String> getTransientToken(String type, String scope) throws ApiException;
|
||||
ResponseWithHeaders<String> getSourceConnectionInformation(String source) throws ApiException;
|
||||
}
|
||||
28
src/main/java/com/plexsdk/http/ServerClient.java
Normal file
28
src/main/java/com/plexsdk/http/ServerClient.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface ServerClient {
|
||||
ResponseWithHeaders<com.plexsdk.models.GetServerCapabilitiesResponse> getServerCapabilities()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> getServerPreferences() throws ApiException;
|
||||
ResponseWithHeaders<
|
||||
java.util.List<com.plexsdk.models.GetAvailableClientsResponse>
|
||||
> getAvailableClients() throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetDevicesResponse> getDevices() throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetServerIdentityResponse> getServerIdentity()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetMyPlexAccountResponse> getMyPlexAccount()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> getResizedPhoto(
|
||||
Float width,
|
||||
Float height,
|
||||
Integer opacity,
|
||||
Float blur,
|
||||
Float minSize,
|
||||
Float upscale,
|
||||
String url
|
||||
) throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetServerListResponse> getServerList() throws ApiException;
|
||||
}
|
||||
12
src/main/java/com/plexsdk/http/SessionsClient.java
Normal file
12
src/main/java/com/plexsdk/http/SessionsClient.java
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface SessionsClient {
|
||||
ResponseWithHeaders<String> getSessions() throws ApiException;
|
||||
ResponseWithHeaders<String> getSessionHistory() throws ApiException;
|
||||
ResponseWithHeaders<com.plexsdk.models.GetTranscodeSessionsResponse> getTranscodeSessions()
|
||||
throws ApiException;
|
||||
ResponseWithHeaders<String> stopTranscodeSession(String sessionKey) throws ApiException;
|
||||
}
|
||||
10
src/main/java/com/plexsdk/http/UpdaterClient.java
Normal file
10
src/main/java/com/plexsdk/http/UpdaterClient.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface UpdaterClient {
|
||||
ResponseWithHeaders<String> getUpdateStatus() throws ApiException;
|
||||
ResponseWithHeaders<String> checkForUpdates(String download) throws ApiException;
|
||||
ResponseWithHeaders<String> applyUpdates(String tonight, String skip) throws ApiException;
|
||||
}
|
||||
37
src/main/java/com/plexsdk/http/VideoClient.java
Normal file
37
src/main/java/com/plexsdk/http/VideoClient.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.plexsdk.http;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import java.util.List;
|
||||
|
||||
public interface VideoClient {
|
||||
ResponseWithHeaders<String> startUniversalTranscode(
|
||||
Float hasMDE,
|
||||
String path,
|
||||
Float mediaIndex,
|
||||
Float partIndex,
|
||||
String protocol,
|
||||
Float fastSeek,
|
||||
Float directPlay,
|
||||
Float directStream,
|
||||
Float subtitleSize,
|
||||
String subtites,
|
||||
Float audioBoost,
|
||||
String location,
|
||||
Float mediaBufferSize,
|
||||
String session,
|
||||
Float addDebugOverlay,
|
||||
Float autoAdjustQuality
|
||||
) throws ApiException;
|
||||
ResponseWithHeaders<String> getTimeline(
|
||||
Float ratingKey,
|
||||
String key,
|
||||
String state,
|
||||
Float hasMDE,
|
||||
Float time,
|
||||
Float duration,
|
||||
String context,
|
||||
Float playQueueItemID,
|
||||
Float playBackTime,
|
||||
Float row
|
||||
) throws ApiException;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.plexsdk.http.interceptors;
|
||||
|
||||
import com.plexsdk.Configuration;
|
||||
import java.io.IOException;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class ApiKeyInterceptor implements Interceptor {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private String apiKey;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
private String apiKeyHeader;
|
||||
|
||||
@Override
|
||||
public Response intercept(Chain chain) throws IOException {
|
||||
return chain.proceed(addApiKeyToRequest(chain.request()));
|
||||
}
|
||||
|
||||
private Request addApiKeyToRequest(Request request) {
|
||||
return this.apiKey != null && !this.apiKey.isEmpty()
|
||||
? request.newBuilder().addHeader(resolveHeader(), this.apiKey).build()
|
||||
: request;
|
||||
}
|
||||
|
||||
private String resolveHeader() {
|
||||
return this.apiKeyHeader != null && !this.apiKeyHeader.isEmpty()
|
||||
? this.apiKeyHeader
|
||||
: Configuration.DEFAULT_API_KEY_HEADER;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.plexsdk.http.interceptors;
|
||||
|
||||
import com.plexsdk.Configuration;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Request.Builder;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class DefaultHeadersInterceptor implements Interceptor {
|
||||
|
||||
private final Map<String, String> defaultHeaders = new HashMap<>();
|
||||
|
||||
public DefaultHeadersInterceptor() {
|
||||
defaultHeaders.put("User-Agent", Configuration.USER_AGENT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Response intercept(Chain chain) throws IOException {
|
||||
return chain.proceed(addDefaultHeadersToRequest(chain.request()));
|
||||
}
|
||||
|
||||
private Request addDefaultHeadersToRequest(Request request) {
|
||||
if (defaultHeaders.isEmpty()) {
|
||||
return request;
|
||||
}
|
||||
|
||||
Builder requestBuilder = request.newBuilder();
|
||||
|
||||
defaultHeaders.forEach(requestBuilder::addHeader);
|
||||
|
||||
return requestBuilder.build();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.plexsdk.http.interceptors;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.stream.IntStream;
|
||||
import okhttp3.Interceptor;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class RetryInterceptor implements Interceptor {
|
||||
|
||||
private static final int MAX_RETRIES = 3;
|
||||
private static final double RETRY_DELAY = 150;
|
||||
private static final int[] RETRYABLE_CODES = { 500, 503, 504 };
|
||||
|
||||
@Override
|
||||
public Response intercept(Chain chain) throws IOException {
|
||||
// Try the request and if it fails use exponential backoff to retry
|
||||
Request request = chain.request();
|
||||
Response response = chain.proceed(request);
|
||||
int tryCount = 1;
|
||||
while (!response.isSuccessful() && isRetryable(response) && tryCount - 1 < MAX_RETRIES) {
|
||||
try {
|
||||
Thread.sleep((long) Math.pow(RETRY_DELAY, tryCount - 1));
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
response.close();
|
||||
response = chain.proceed(request);
|
||||
tryCount++;
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
private boolean isRetryable(Response response) {
|
||||
final int statusCode = response.code();
|
||||
return IntStream.of(RETRYABLE_CODES).anyMatch(x -> x == statusCode);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.plexsdk.http.util;
|
||||
|
||||
import static com.plexsdk.http.ModelConverter.modelToJson;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Provides static methods to convert values (object, array, boxed types) into string representation for http url.
|
||||
* Usually used for converting objects to be http url friendly (e.g. query or header parameters)
|
||||
*/
|
||||
public class HttpArgumentConverter {
|
||||
|
||||
/**
|
||||
* Converts any value (object, array, primitive) into a string representation.
|
||||
*
|
||||
* @param value The value (object, array or primitive) to be converted.
|
||||
* @return A string representation of the input value in a format that can be used as url query or header parameter value.
|
||||
*/
|
||||
public static String toStringArgument(final Object value) {
|
||||
if (value == null) {
|
||||
return "";
|
||||
}
|
||||
if (
|
||||
value instanceof String ||
|
||||
value instanceof Number ||
|
||||
value instanceof Boolean ||
|
||||
value instanceof Enum<?>
|
||||
) {
|
||||
return String.valueOf(value);
|
||||
}
|
||||
if (value instanceof List<?>) {
|
||||
List<?> list = (List<?>) value;
|
||||
return list
|
||||
.stream()
|
||||
.map(HttpArgumentConverter::toStringArgument)
|
||||
.collect(Collectors.joining(","));
|
||||
}
|
||||
|
||||
return modelToJson(value);
|
||||
}
|
||||
}
|
||||
83
src/main/java/com/plexsdk/http/util/HttpHeaders.java
Normal file
83
src/main/java/com/plexsdk/http/util/HttpHeaders.java
Normal file
@@ -0,0 +1,83 @@
|
||||
package com.plexsdk.http.util;
|
||||
|
||||
import static com.plexsdk.http.util.HttpArgumentConverter.toStringArgument;
|
||||
|
||||
import com.plexsdk.exceptions.ArgumentCannotBeNullException;
|
||||
import okhttp3.Headers;
|
||||
|
||||
/**
|
||||
* HttpHeaders represents a utility class for building HTTP headers.
|
||||
*/
|
||||
public class HttpHeaders {
|
||||
|
||||
/**
|
||||
* Private constructor to prevent direct instantiation of the class.
|
||||
*/
|
||||
private HttpHeaders() {}
|
||||
|
||||
/**
|
||||
* Creates a new instance of the HttpHeaders.Builder.
|
||||
*
|
||||
* @return A new instance of HttpHeaders.Builder.
|
||||
*/
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Builder class for constructing HTTP headers.
|
||||
*/
|
||||
public static class Builder {
|
||||
|
||||
private final Headers.Builder headersBuilder;
|
||||
|
||||
/**
|
||||
* Constructs a new instance of the Builder.
|
||||
*/
|
||||
private Builder() {
|
||||
this.headersBuilder = new Headers.Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a required header with the specified name and value to the headers' builder.
|
||||
*
|
||||
* @param name The name of the header.
|
||||
* @param value The value of the header.
|
||||
* @return The current Builder instance.
|
||||
* @throws ArgumentCannotBeNullException If the value is null.
|
||||
*/
|
||||
public Builder addRequiredHeader(String name, Object value)
|
||||
throws ArgumentCannotBeNullException {
|
||||
if (value == null) {
|
||||
throw new ArgumentCannotBeNullException(name);
|
||||
}
|
||||
this.headersBuilder.add(name, toStringArgument(value));
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an optional header with the specified name and value to the headers' builder.
|
||||
*
|
||||
* @param name The name of the header.
|
||||
* @param value The value of the header.
|
||||
* @return The current Builder instance.
|
||||
*/
|
||||
public Builder addOptionalHeader(String name, Object value) {
|
||||
if (value != null) {
|
||||
this.headersBuilder.add(name, toStringArgument(value));
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the headers using the configured values in the builder.
|
||||
*
|
||||
* @return The constructed Headers object.
|
||||
*/
|
||||
public Headers build() {
|
||||
return this.headersBuilder.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
102
src/main/java/com/plexsdk/http/util/HttpUrl.java
Normal file
102
src/main/java/com/plexsdk/http/util/HttpUrl.java
Normal file
@@ -0,0 +1,102 @@
|
||||
package com.plexsdk.http.util;
|
||||
|
||||
import static com.plexsdk.http.util.HttpArgumentConverter.toStringArgument;
|
||||
|
||||
import com.plexsdk.exceptions.ArgumentCannotBeNullException;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* The HttpUrl class provides a convenient way to construct HTTP URLs with query parameters and path parameters.
|
||||
*/
|
||||
public class HttpUrl {
|
||||
|
||||
/**
|
||||
* Private constructor to prevent direct instantiation of the class.
|
||||
*/
|
||||
private HttpUrl() {}
|
||||
|
||||
/**
|
||||
* Creates a new instance of the Builder class to start constructing an HTTP URL.
|
||||
*
|
||||
* @param url The base URL for the HTTP request.
|
||||
* @return A new instance of the Builder class.
|
||||
*/
|
||||
public static Builder builder(String url) {
|
||||
return new Builder(url);
|
||||
}
|
||||
|
||||
/**
|
||||
* The Builder class provides methods to add query parameters and path parameters to an HTTP URL.
|
||||
*/
|
||||
public static class Builder {
|
||||
|
||||
private final okhttp3.HttpUrl.Builder httpUrlBuilder;
|
||||
|
||||
/**
|
||||
* Constructs a new Builder instance with the specified base URL.
|
||||
*
|
||||
* @param url The base URL for the HTTP request.
|
||||
*/
|
||||
private Builder(String url) {
|
||||
this.httpUrlBuilder = Objects.requireNonNull(okhttp3.HttpUrl.parse(url)).newBuilder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a required query parameter to the HTTP URL.
|
||||
*
|
||||
* @param name The name of the query parameter.
|
||||
* @param value The value of the query parameter.
|
||||
* @return The Builder instance.
|
||||
* @throws ArgumentCannotBeNullException If the value is null.
|
||||
*/
|
||||
public Builder addRequiredQueryParameter(String name, Object value)
|
||||
throws ArgumentCannotBeNullException {
|
||||
if (value == null) {
|
||||
throw new ArgumentCannotBeNullException(name);
|
||||
}
|
||||
this.httpUrlBuilder.addQueryParameter(name, toStringArgument(value));
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an optional query parameter to the HTTP URL.
|
||||
*
|
||||
* @param name The name of the query parameter.
|
||||
* @param value The value of the query parameter.
|
||||
* @return The Builder instance.
|
||||
*/
|
||||
public Builder addOptionalQueryParameter(String name, Object value) {
|
||||
if (value != null) {
|
||||
this.httpUrlBuilder.addQueryParameter(name, toStringArgument(value));
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a path parameter to the HTTP URL.
|
||||
*
|
||||
* @param value The value of the path parameter.
|
||||
* @return The Builder instance.
|
||||
* @throws ArgumentCannotBeNullException If the value is null.
|
||||
*/
|
||||
public Builder addPathParameter(String value) throws ArgumentCannotBeNullException {
|
||||
if (value == null || value.isEmpty()) {
|
||||
throw new ArgumentCannotBeNullException();
|
||||
}
|
||||
this.httpUrlBuilder.addPathSegment(value);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the final HTTP URL.
|
||||
*
|
||||
* @return The constructed HTTP URL as a string.
|
||||
*/
|
||||
public String build() {
|
||||
return this.httpUrlBuilder.build().toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
77
src/main/java/com/plexsdk/models/BaseModel.java
Normal file
77
src/main/java/com/plexsdk/models/BaseModel.java
Normal file
@@ -0,0 +1,77 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import com.plexsdk.http.ModelConverter;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public abstract class BaseModel {
|
||||
|
||||
public abstract static class Builder {
|
||||
|
||||
protected static enum ValidationType {
|
||||
ALL_OF,
|
||||
ANY_OF,
|
||||
ONE_OF,
|
||||
NONE,
|
||||
}
|
||||
|
||||
private final ValidationType _validationType;
|
||||
|
||||
protected Builder(ValidationType validationType) {
|
||||
this._validationType = validationType;
|
||||
}
|
||||
|
||||
protected abstract Set<String> getNonNullInstanceFieldNames();
|
||||
|
||||
protected abstract Set<Set<String>> getRequiredFieldsGroups();
|
||||
|
||||
protected boolean isValidAllOf() {
|
||||
// Check if all of the required field groups are a subset of the non-null, non-static fields.
|
||||
return getNonNullInstanceFieldNames()
|
||||
.containsAll(
|
||||
getRequiredFieldsGroups().stream().flatMap(Collection::stream).collect(Collectors.toSet())
|
||||
);
|
||||
}
|
||||
|
||||
protected boolean isValidAnyOf() {
|
||||
// Check if any of the required field groups are a subset of the non-null, non-static fields.
|
||||
return getRequiredFieldsGroups()
|
||||
.stream()
|
||||
.anyMatch(group -> getNonNullInstanceFieldNames().containsAll(group));
|
||||
}
|
||||
|
||||
protected boolean isValidOneOf() {
|
||||
// Check if the set of non-null fields match one of the required field groups.
|
||||
return getRequiredFieldsGroups().contains(getNonNullInstanceFieldNames());
|
||||
}
|
||||
|
||||
protected String validate() {
|
||||
if (getRequiredFieldsGroups().isEmpty()) {
|
||||
// Nothing to validate since there are no required fields groups.
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
switch (this._validationType) {
|
||||
case ALL_OF:
|
||||
return !isValidAllOf() ? "Object fails AllOf validation." : null;
|
||||
case ANY_OF:
|
||||
return !isValidAnyOf() ? "Object fails AnyOf validation." : null;
|
||||
case ONE_OF:
|
||||
return !isValidOneOf() ? "Object fails OneOf validation." : null;
|
||||
case NONE:
|
||||
default:
|
||||
return !isValidOneOf() ? "Object fails required fields validation." : null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public BaseModel() {}
|
||||
|
||||
protected BaseModel(Builder builder) {}
|
||||
|
||||
public String toJson() {
|
||||
return ModelConverter.modelToJson(this);
|
||||
}
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/Download.java
Normal file
11
src/main/java/com/plexsdk/models/Download.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Download {
|
||||
V1("1");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/Force.java
Normal file
11
src/main/java/com/plexsdk/models/Force.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Force {
|
||||
V1(1);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
332
src/main/java/com/plexsdk/models/GetButlerTasksResponse.java
Normal file
332
src/main/java/com/plexsdk/models/GetButlerTasksResponse.java
Normal file
@@ -0,0 +1,332 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetButlerTasksResponse.Builder.class
|
||||
)
|
||||
public class GetButlerTasksResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetButlerTasksResponse.ButlerTasks.Builder.class
|
||||
)
|
||||
public static class ButlerTasks extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetButlerTasksResponse.ButlerTasks.ButlerTask.Builder.class
|
||||
)
|
||||
public static class ButlerTask extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("description")
|
||||
private java.lang.String description;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("enabled")
|
||||
private java.lang.Boolean enabled;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("interval")
|
||||
private java.lang.Double interval;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("name")
|
||||
private java.lang.String name;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("scheduleRandomized")
|
||||
private java.lang.Boolean scheduleRandomized;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("title")
|
||||
private java.lang.String title;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetButlerTasksResponse.ButlerTasks.ButlerTask build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetButlerTasksResponse.ButlerTasks.ButlerTask buildWithoutValidation() {
|
||||
return new GetButlerTasksResponse.ButlerTasks.ButlerTask(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("description")
|
||||
private final java.lang.String description;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("enabled")
|
||||
private final java.lang.Boolean enabled;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("interval")
|
||||
private final java.lang.Double interval;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("name")
|
||||
private final java.lang.String name;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("scheduleRandomized")
|
||||
private final java.lang.Boolean scheduleRandomized;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("title")
|
||||
private final java.lang.String title;
|
||||
|
||||
ButlerTask(Builder builder) {
|
||||
super(builder);
|
||||
this.description = builder.getDescription();
|
||||
this.enabled = builder.getEnabled();
|
||||
this.interval = builder.getInterval();
|
||||
this.name = builder.getName();
|
||||
this.scheduleRandomized = builder.getScheduleRandomized();
|
||||
this.title = builder.getTitle();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("ButlerTask")
|
||||
private java.util.List<GetButlerTasksResponse.ButlerTasks.ButlerTask> butlerTask;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetButlerTasksResponse.ButlerTasks build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetButlerTasksResponse.ButlerTasks buildWithoutValidation() {
|
||||
return new GetButlerTasksResponse.ButlerTasks(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("ButlerTask")
|
||||
private final java.util.List<GetButlerTasksResponse.ButlerTasks.ButlerTask> butlerTask;
|
||||
|
||||
ButlerTasks(Builder builder) {
|
||||
super(builder);
|
||||
this.butlerTask = builder.getButlerTask();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("ButlerTasks")
|
||||
private GetButlerTasksResponse.ButlerTasks butlerTasks;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetButlerTasksResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetButlerTasksResponse buildWithoutValidation() {
|
||||
return new GetButlerTasksResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("ButlerTasks")
|
||||
private final GetButlerTasksResponse.ButlerTasks butlerTasks;
|
||||
|
||||
GetButlerTasksResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.butlerTasks = builder.getButlerTasks();
|
||||
}
|
||||
}
|
||||
339
src/main/java/com/plexsdk/models/GetDevicesResponse.java
Normal file
339
src/main/java/com/plexsdk/models/GetDevicesResponse.java
Normal file
@@ -0,0 +1,339 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetDevicesResponse.Builder.class
|
||||
)
|
||||
public class GetDevicesResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetDevicesResponse.MediaContainer.Builder.class
|
||||
)
|
||||
public static class MediaContainer extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetDevicesResponse.MediaContainer.Device.Builder.class
|
||||
)
|
||||
public static class Device extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("clientIdentifier")
|
||||
private java.lang.String clientIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("createdAt")
|
||||
private java.lang.Double createdAt;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("id")
|
||||
private java.lang.Double id;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("name")
|
||||
private java.lang.String name;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("platform")
|
||||
private java.lang.String platform;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetDevicesResponse.MediaContainer.Device build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetDevicesResponse.MediaContainer.Device buildWithoutValidation() {
|
||||
return new GetDevicesResponse.MediaContainer.Device(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("clientIdentifier")
|
||||
private final java.lang.String clientIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("createdAt")
|
||||
private final java.lang.Double createdAt;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("id")
|
||||
private final java.lang.Double id;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("name")
|
||||
private final java.lang.String name;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("platform")
|
||||
private final java.lang.String platform;
|
||||
|
||||
Device(Builder builder) {
|
||||
super(builder);
|
||||
this.clientIdentifier = builder.getClientIdentifier();
|
||||
this.createdAt = builder.getCreatedAt();
|
||||
this.id = builder.getId();
|
||||
this.name = builder.getName();
|
||||
this.platform = builder.getPlatform();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Device")
|
||||
private java.util.List<GetDevicesResponse.MediaContainer.Device> device;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("identifier")
|
||||
private java.lang.String identifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetDevicesResponse.MediaContainer build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetDevicesResponse.MediaContainer buildWithoutValidation() {
|
||||
return new GetDevicesResponse.MediaContainer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Device")
|
||||
private final java.util.List<GetDevicesResponse.MediaContainer.Device> device;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("identifier")
|
||||
private final java.lang.String identifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
MediaContainer(Builder builder) {
|
||||
super(builder);
|
||||
this.device = builder.getDevice();
|
||||
this.identifier = builder.getIdentifier();
|
||||
this.size = builder.getSize();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private GetDevicesResponse.MediaContainer mediaContainer;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetDevicesResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetDevicesResponse buildWithoutValidation() {
|
||||
return new GetDevicesResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private final GetDevicesResponse.MediaContainer mediaContainer;
|
||||
|
||||
GetDevicesResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.mediaContainer = builder.getMediaContainer();
|
||||
}
|
||||
}
|
||||
274
src/main/java/com/plexsdk/models/GetMyPlexAccountResponse.java
Normal file
274
src/main/java/com/plexsdk/models/GetMyPlexAccountResponse.java
Normal file
@@ -0,0 +1,274 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetMyPlexAccountResponse.Builder.class
|
||||
)
|
||||
public class GetMyPlexAccountResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetMyPlexAccountResponse.MyPlex.Builder.class
|
||||
)
|
||||
public static class MyPlex extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("authToken")
|
||||
private java.lang.String authToken;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("mappingError")
|
||||
private java.lang.String mappingError;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("mappingState")
|
||||
private java.lang.String mappingState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("privateAddress")
|
||||
private java.lang.String privateAddress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("privatePort")
|
||||
private java.lang.Double privatePort;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("publicAddress")
|
||||
private java.lang.String publicAddress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("publicPort")
|
||||
private java.lang.Double publicPort;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("signInState")
|
||||
private java.lang.String signInState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subscriptionActive")
|
||||
private java.lang.Boolean subscriptionActive;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subscriptionFeatures")
|
||||
private java.lang.String subscriptionFeatures;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subscriptionState")
|
||||
private java.lang.String subscriptionState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("username")
|
||||
private java.lang.String username;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetMyPlexAccountResponse.MyPlex build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetMyPlexAccountResponse.MyPlex buildWithoutValidation() {
|
||||
return new GetMyPlexAccountResponse.MyPlex(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("authToken")
|
||||
private final java.lang.String authToken;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("mappingError")
|
||||
private final java.lang.String mappingError;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("mappingState")
|
||||
private final java.lang.String mappingState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("privateAddress")
|
||||
private final java.lang.String privateAddress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("privatePort")
|
||||
private final java.lang.Double privatePort;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("publicAddress")
|
||||
private final java.lang.String publicAddress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("publicPort")
|
||||
private final java.lang.Double publicPort;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("signInState")
|
||||
private final java.lang.String signInState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subscriptionActive")
|
||||
private final java.lang.Boolean subscriptionActive;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subscriptionFeatures")
|
||||
private final java.lang.String subscriptionFeatures;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subscriptionState")
|
||||
private final java.lang.String subscriptionState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("username")
|
||||
private final java.lang.String username;
|
||||
|
||||
MyPlex(Builder builder) {
|
||||
super(builder);
|
||||
this.authToken = builder.getAuthToken();
|
||||
this.mappingError = builder.getMappingError();
|
||||
this.mappingState = builder.getMappingState();
|
||||
this.privateAddress = builder.getPrivateAddress();
|
||||
this.privatePort = builder.getPrivatePort();
|
||||
this.publicAddress = builder.getPublicAddress();
|
||||
this.publicPort = builder.getPublicPort();
|
||||
this.signInState = builder.getSignInState();
|
||||
this.subscriptionActive = builder.getSubscriptionActive();
|
||||
this.subscriptionFeatures = builder.getSubscriptionFeatures();
|
||||
this.subscriptionState = builder.getSubscriptionState();
|
||||
this.username = builder.getUsername();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MyPlex")
|
||||
private GetMyPlexAccountResponse.MyPlex myPlex;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetMyPlexAccountResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetMyPlexAccountResponse buildWithoutValidation() {
|
||||
return new GetMyPlexAccountResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MyPlex")
|
||||
private final GetMyPlexAccountResponse.MyPlex myPlex;
|
||||
|
||||
GetMyPlexAccountResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.myPlex = builder.getMyPlex();
|
||||
}
|
||||
}
|
||||
1289
src/main/java/com/plexsdk/models/GetOnDeckResponse.java
Normal file
1289
src/main/java/com/plexsdk/models/GetOnDeckResponse.java
Normal file
File diff suppressed because it is too large
Load Diff
1430
src/main/java/com/plexsdk/models/GetRecentlyAddedResponse.java
Normal file
1430
src/main/java/com/plexsdk/models/GetRecentlyAddedResponse.java
Normal file
File diff suppressed because it is too large
Load Diff
1530
src/main/java/com/plexsdk/models/GetSearchResultsResponse.java
Normal file
1530
src/main/java/com/plexsdk/models/GetSearchResultsResponse.java
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,453 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerActivitiesResponse.Builder.class
|
||||
)
|
||||
public class GetServerActivitiesResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerActivitiesResponse.MediaContainer.Builder.class
|
||||
)
|
||||
public static class MediaContainer extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerActivitiesResponse.MediaContainer.Activity.Builder.class
|
||||
)
|
||||
public static class Activity extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerActivitiesResponse.MediaContainer.Activity.Context.Builder.class
|
||||
)
|
||||
public static class Context extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("librarySectionID")
|
||||
private java.lang.String librarySectionId;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse.MediaContainer.Activity.Context build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse.MediaContainer.Activity.Context buildWithoutValidation() {
|
||||
return new GetServerActivitiesResponse.MediaContainer.Activity.Context(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("librarySectionID")
|
||||
private final java.lang.String librarySectionId;
|
||||
|
||||
Context(Builder builder) {
|
||||
super(builder);
|
||||
this.librarySectionId = builder.getLibrarySectionId();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("cancellable")
|
||||
private java.lang.Boolean cancellable;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Context")
|
||||
private GetServerActivitiesResponse.MediaContainer.Activity.Context context;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("progress")
|
||||
private java.lang.Double progress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subtitle")
|
||||
private java.lang.String subtitle;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("title")
|
||||
private java.lang.String title;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("type")
|
||||
private java.lang.String type;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("userID")
|
||||
private java.lang.Double userId;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("uuid")
|
||||
private java.lang.String uuid;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse.MediaContainer.Activity build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse.MediaContainer.Activity buildWithoutValidation() {
|
||||
return new GetServerActivitiesResponse.MediaContainer.Activity(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("cancellable")
|
||||
private final java.lang.Boolean cancellable;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Context")
|
||||
private final GetServerActivitiesResponse.MediaContainer.Activity.Context context;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("progress")
|
||||
private final java.lang.Double progress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("subtitle")
|
||||
private final java.lang.String subtitle;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("title")
|
||||
private final java.lang.String title;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("type")
|
||||
private final java.lang.String type;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("userID")
|
||||
private final java.lang.Double userId;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("uuid")
|
||||
private final java.lang.String uuid;
|
||||
|
||||
Activity(Builder builder) {
|
||||
super(builder);
|
||||
this.cancellable = builder.getCancellable();
|
||||
this.context = builder.getContext();
|
||||
this.progress = builder.getProgress();
|
||||
this.subtitle = builder.getSubtitle();
|
||||
this.title = builder.getTitle();
|
||||
this.type = builder.getType();
|
||||
this.userId = builder.getUserId();
|
||||
this.uuid = builder.getUuid();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Activity")
|
||||
private java.util.List<GetServerActivitiesResponse.MediaContainer.Activity> activity;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse.MediaContainer build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse.MediaContainer buildWithoutValidation() {
|
||||
return new GetServerActivitiesResponse.MediaContainer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Activity")
|
||||
private final java.util.List<GetServerActivitiesResponse.MediaContainer.Activity> activity;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
MediaContainer(Builder builder) {
|
||||
super(builder);
|
||||
this.activity = builder.getActivity();
|
||||
this.size = builder.getSize();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private GetServerActivitiesResponse.MediaContainer mediaContainer;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerActivitiesResponse buildWithoutValidation() {
|
||||
return new GetServerActivitiesResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private final GetServerActivitiesResponse.MediaContainer mediaContainer;
|
||||
|
||||
GetServerActivitiesResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.mediaContainer = builder.getMediaContainer();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,661 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerCapabilitiesResponse.Builder.class
|
||||
)
|
||||
public class GetServerCapabilitiesResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerCapabilitiesResponse.MediaContainer.Builder.class
|
||||
)
|
||||
public static class MediaContainer extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerCapabilitiesResponse.MediaContainer.Directory.Builder.class
|
||||
)
|
||||
public static class Directory extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("count")
|
||||
private java.lang.Double count;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("key")
|
||||
private java.lang.String key;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("title")
|
||||
private java.lang.String title;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerCapabilitiesResponse.MediaContainer.Directory build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerCapabilitiesResponse.MediaContainer.Directory buildWithoutValidation() {
|
||||
return new GetServerCapabilitiesResponse.MediaContainer.Directory(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("count")
|
||||
private final java.lang.Double count;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("key")
|
||||
private final java.lang.String key;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("title")
|
||||
private final java.lang.String title;
|
||||
|
||||
Directory(Builder builder) {
|
||||
super(builder);
|
||||
this.count = builder.getCount();
|
||||
this.key = builder.getKey();
|
||||
this.title = builder.getTitle();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowCameraUpload")
|
||||
private java.lang.Boolean allowCameraUpload;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowChannelAccess")
|
||||
private java.lang.Boolean allowChannelAccess;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowMediaDeletion")
|
||||
private java.lang.Boolean allowMediaDeletion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowSharing")
|
||||
private java.lang.Boolean allowSharing;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowSync")
|
||||
private java.lang.Boolean allowSync;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowTuners")
|
||||
private java.lang.Boolean allowTuners;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("backgroundProcessing")
|
||||
private java.lang.Boolean backgroundProcessing;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("certificate")
|
||||
private java.lang.Boolean certificate;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("companionProxy")
|
||||
private java.lang.Boolean companionProxy;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("countryCode")
|
||||
private java.lang.String countryCode;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("diagnostics")
|
||||
private java.lang.String diagnostics;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Directory")
|
||||
private java.util.List<GetServerCapabilitiesResponse.MediaContainer.Directory> directory;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("eventStream")
|
||||
private java.lang.Boolean eventStream;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("friendlyName")
|
||||
private java.lang.String friendlyName;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("hubSearch")
|
||||
private java.lang.Boolean hubSearch;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("itemClusters")
|
||||
private java.lang.Boolean itemClusters;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("livetv")
|
||||
private java.lang.Double livetv;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("machineIdentifier")
|
||||
private java.lang.String machineIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("mediaProviders")
|
||||
private java.lang.Boolean mediaProviders;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("multiuser")
|
||||
private java.lang.Boolean multiuser;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("musicAnalysis")
|
||||
private java.lang.Double musicAnalysis;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlex")
|
||||
private java.lang.Boolean myPlex;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexMappingState")
|
||||
private java.lang.String myPlexMappingState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexSigninState")
|
||||
private java.lang.String myPlexSigninState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexSubscription")
|
||||
private java.lang.Boolean myPlexSubscription;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexUsername")
|
||||
private java.lang.String myPlexUsername;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("offlineTranscode")
|
||||
private java.lang.Double offlineTranscode;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("ownerFeatures")
|
||||
private java.lang.String ownerFeatures;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("photoAutoTag")
|
||||
private java.lang.Boolean photoAutoTag;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("platform")
|
||||
private java.lang.String platform;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("platformVersion")
|
||||
private java.lang.String platformVersion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("pluginHost")
|
||||
private java.lang.Boolean pluginHost;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("pushNotifications")
|
||||
private java.lang.Boolean pushNotifications;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("readOnlyLibraries")
|
||||
private java.lang.Boolean readOnlyLibraries;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("streamingBrainABRVersion")
|
||||
private java.lang.Double streamingBrainAbrversion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("streamingBrainVersion")
|
||||
private java.lang.Double streamingBrainVersion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("sync")
|
||||
private java.lang.Boolean sync;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderActiveVideoSessions")
|
||||
private java.lang.Double transcoderActiveVideoSessions;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderAudio")
|
||||
private java.lang.Boolean transcoderAudio;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderLyrics")
|
||||
private java.lang.Boolean transcoderLyrics;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderPhoto")
|
||||
private java.lang.Boolean transcoderPhoto;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderSubtitles")
|
||||
private java.lang.Boolean transcoderSubtitles;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideo")
|
||||
private java.lang.Boolean transcoderVideo;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideoBitrates")
|
||||
private java.lang.String transcoderVideoBitrates;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideoQualities")
|
||||
private java.lang.String transcoderVideoQualities;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideoResolutions")
|
||||
private java.lang.String transcoderVideoResolutions;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("updatedAt")
|
||||
private java.lang.Double updatedAt;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("updater")
|
||||
private java.lang.Boolean updater;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("version")
|
||||
private java.lang.String version;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("voiceSearch")
|
||||
private java.lang.Boolean voiceSearch;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerCapabilitiesResponse.MediaContainer build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerCapabilitiesResponse.MediaContainer buildWithoutValidation() {
|
||||
return new GetServerCapabilitiesResponse.MediaContainer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowCameraUpload")
|
||||
private final java.lang.Boolean allowCameraUpload;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowChannelAccess")
|
||||
private final java.lang.Boolean allowChannelAccess;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowMediaDeletion")
|
||||
private final java.lang.Boolean allowMediaDeletion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowSharing")
|
||||
private final java.lang.Boolean allowSharing;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowSync")
|
||||
private final java.lang.Boolean allowSync;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("allowTuners")
|
||||
private final java.lang.Boolean allowTuners;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("backgroundProcessing")
|
||||
private final java.lang.Boolean backgroundProcessing;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("certificate")
|
||||
private final java.lang.Boolean certificate;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("companionProxy")
|
||||
private final java.lang.Boolean companionProxy;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("countryCode")
|
||||
private final java.lang.String countryCode;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("diagnostics")
|
||||
private final java.lang.String diagnostics;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Directory")
|
||||
private final java.util.List<GetServerCapabilitiesResponse.MediaContainer.Directory> directory;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("eventStream")
|
||||
private final java.lang.Boolean eventStream;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("friendlyName")
|
||||
private final java.lang.String friendlyName;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("hubSearch")
|
||||
private final java.lang.Boolean hubSearch;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("itemClusters")
|
||||
private final java.lang.Boolean itemClusters;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("livetv")
|
||||
private final java.lang.Double livetv;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("machineIdentifier")
|
||||
private final java.lang.String machineIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("mediaProviders")
|
||||
private final java.lang.Boolean mediaProviders;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("multiuser")
|
||||
private final java.lang.Boolean multiuser;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("musicAnalysis")
|
||||
private final java.lang.Double musicAnalysis;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlex")
|
||||
private final java.lang.Boolean myPlex;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexMappingState")
|
||||
private final java.lang.String myPlexMappingState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexSigninState")
|
||||
private final java.lang.String myPlexSigninState;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexSubscription")
|
||||
private final java.lang.Boolean myPlexSubscription;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("myPlexUsername")
|
||||
private final java.lang.String myPlexUsername;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("offlineTranscode")
|
||||
private final java.lang.Double offlineTranscode;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("ownerFeatures")
|
||||
private final java.lang.String ownerFeatures;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("photoAutoTag")
|
||||
private final java.lang.Boolean photoAutoTag;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("platform")
|
||||
private final java.lang.String platform;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("platformVersion")
|
||||
private final java.lang.String platformVersion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("pluginHost")
|
||||
private final java.lang.Boolean pluginHost;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("pushNotifications")
|
||||
private final java.lang.Boolean pushNotifications;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("readOnlyLibraries")
|
||||
private final java.lang.Boolean readOnlyLibraries;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("streamingBrainABRVersion")
|
||||
private final java.lang.Double streamingBrainAbrversion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("streamingBrainVersion")
|
||||
private final java.lang.Double streamingBrainVersion;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("sync")
|
||||
private final java.lang.Boolean sync;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderActiveVideoSessions")
|
||||
private final java.lang.Double transcoderActiveVideoSessions;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderAudio")
|
||||
private final java.lang.Boolean transcoderAudio;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderLyrics")
|
||||
private final java.lang.Boolean transcoderLyrics;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderPhoto")
|
||||
private final java.lang.Boolean transcoderPhoto;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderSubtitles")
|
||||
private final java.lang.Boolean transcoderSubtitles;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideo")
|
||||
private final java.lang.Boolean transcoderVideo;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideoBitrates")
|
||||
private final java.lang.String transcoderVideoBitrates;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideoQualities")
|
||||
private final java.lang.String transcoderVideoQualities;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcoderVideoResolutions")
|
||||
private final java.lang.String transcoderVideoResolutions;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("updatedAt")
|
||||
private final java.lang.Double updatedAt;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("updater")
|
||||
private final java.lang.Boolean updater;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("version")
|
||||
private final java.lang.String version;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("voiceSearch")
|
||||
private final java.lang.Boolean voiceSearch;
|
||||
|
||||
MediaContainer(Builder builder) {
|
||||
super(builder);
|
||||
this.allowCameraUpload = builder.getAllowCameraUpload();
|
||||
this.allowChannelAccess = builder.getAllowChannelAccess();
|
||||
this.allowMediaDeletion = builder.getAllowMediaDeletion();
|
||||
this.allowSharing = builder.getAllowSharing();
|
||||
this.allowSync = builder.getAllowSync();
|
||||
this.allowTuners = builder.getAllowTuners();
|
||||
this.backgroundProcessing = builder.getBackgroundProcessing();
|
||||
this.certificate = builder.getCertificate();
|
||||
this.companionProxy = builder.getCompanionProxy();
|
||||
this.countryCode = builder.getCountryCode();
|
||||
this.diagnostics = builder.getDiagnostics();
|
||||
this.directory = builder.getDirectory();
|
||||
this.eventStream = builder.getEventStream();
|
||||
this.friendlyName = builder.getFriendlyName();
|
||||
this.hubSearch = builder.getHubSearch();
|
||||
this.itemClusters = builder.getItemClusters();
|
||||
this.livetv = builder.getLivetv();
|
||||
this.machineIdentifier = builder.getMachineIdentifier();
|
||||
this.mediaProviders = builder.getMediaProviders();
|
||||
this.multiuser = builder.getMultiuser();
|
||||
this.musicAnalysis = builder.getMusicAnalysis();
|
||||
this.myPlex = builder.getMyPlex();
|
||||
this.myPlexMappingState = builder.getMyPlexMappingState();
|
||||
this.myPlexSigninState = builder.getMyPlexSigninState();
|
||||
this.myPlexSubscription = builder.getMyPlexSubscription();
|
||||
this.myPlexUsername = builder.getMyPlexUsername();
|
||||
this.offlineTranscode = builder.getOfflineTranscode();
|
||||
this.ownerFeatures = builder.getOwnerFeatures();
|
||||
this.photoAutoTag = builder.getPhotoAutoTag();
|
||||
this.platform = builder.getPlatform();
|
||||
this.platformVersion = builder.getPlatformVersion();
|
||||
this.pluginHost = builder.getPluginHost();
|
||||
this.pushNotifications = builder.getPushNotifications();
|
||||
this.readOnlyLibraries = builder.getReadOnlyLibraries();
|
||||
this.size = builder.getSize();
|
||||
this.streamingBrainAbrversion = builder.getStreamingBrainAbrversion();
|
||||
this.streamingBrainVersion = builder.getStreamingBrainVersion();
|
||||
this.sync = builder.getSync();
|
||||
this.transcoderActiveVideoSessions = builder.getTranscoderActiveVideoSessions();
|
||||
this.transcoderAudio = builder.getTranscoderAudio();
|
||||
this.transcoderLyrics = builder.getTranscoderLyrics();
|
||||
this.transcoderPhoto = builder.getTranscoderPhoto();
|
||||
this.transcoderSubtitles = builder.getTranscoderSubtitles();
|
||||
this.transcoderVideo = builder.getTranscoderVideo();
|
||||
this.transcoderVideoBitrates = builder.getTranscoderVideoBitrates();
|
||||
this.transcoderVideoQualities = builder.getTranscoderVideoQualities();
|
||||
this.transcoderVideoResolutions = builder.getTranscoderVideoResolutions();
|
||||
this.updatedAt = builder.getUpdatedAt();
|
||||
this.updater = builder.getUpdater();
|
||||
this.version = builder.getVersion();
|
||||
this.voiceSearch = builder.getVoiceSearch();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private GetServerCapabilitiesResponse.MediaContainer mediaContainer;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerCapabilitiesResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerCapabilitiesResponse buildWithoutValidation() {
|
||||
return new GetServerCapabilitiesResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private final GetServerCapabilitiesResponse.MediaContainer mediaContainer;
|
||||
|
||||
GetServerCapabilitiesResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.mediaContainer = builder.getMediaContainer();
|
||||
}
|
||||
}
|
||||
218
src/main/java/com/plexsdk/models/GetServerIdentityResponse.java
Normal file
218
src/main/java/com/plexsdk/models/GetServerIdentityResponse.java
Normal file
@@ -0,0 +1,218 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerIdentityResponse.Builder.class
|
||||
)
|
||||
public class GetServerIdentityResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerIdentityResponse.MediaContainer.Builder.class
|
||||
)
|
||||
public static class MediaContainer extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("claimed")
|
||||
private java.lang.Boolean claimed;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("machineIdentifier")
|
||||
private java.lang.String machineIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("version")
|
||||
private java.lang.String version;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerIdentityResponse.MediaContainer build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerIdentityResponse.MediaContainer buildWithoutValidation() {
|
||||
return new GetServerIdentityResponse.MediaContainer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("claimed")
|
||||
private final java.lang.Boolean claimed;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("machineIdentifier")
|
||||
private final java.lang.String machineIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("version")
|
||||
private final java.lang.String version;
|
||||
|
||||
MediaContainer(Builder builder) {
|
||||
super(builder);
|
||||
this.claimed = builder.getClaimed();
|
||||
this.machineIdentifier = builder.getMachineIdentifier();
|
||||
this.size = builder.getSize();
|
||||
this.version = builder.getVersion();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private GetServerIdentityResponse.MediaContainer mediaContainer;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerIdentityResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerIdentityResponse buildWithoutValidation() {
|
||||
return new GetServerIdentityResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private final GetServerIdentityResponse.MediaContainer mediaContainer;
|
||||
|
||||
GetServerIdentityResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.mediaContainer = builder.getMediaContainer();
|
||||
}
|
||||
}
|
||||
339
src/main/java/com/plexsdk/models/GetServerListResponse.java
Normal file
339
src/main/java/com/plexsdk/models/GetServerListResponse.java
Normal file
@@ -0,0 +1,339 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerListResponse.Builder.class
|
||||
)
|
||||
public class GetServerListResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerListResponse.MediaContainer.Builder.class
|
||||
)
|
||||
public static class MediaContainer extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetServerListResponse.MediaContainer.Server.Builder.class
|
||||
)
|
||||
public static class Server extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("address")
|
||||
private java.lang.String address;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("host")
|
||||
private java.lang.String host;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("machineIdentifier")
|
||||
private java.lang.String machineIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("name")
|
||||
private java.lang.String name;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("port")
|
||||
private java.lang.Double port;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("version")
|
||||
private java.lang.String version;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerListResponse.MediaContainer.Server build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerListResponse.MediaContainer.Server buildWithoutValidation() {
|
||||
return new GetServerListResponse.MediaContainer.Server(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("address")
|
||||
private final java.lang.String address;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("host")
|
||||
private final java.lang.String host;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("machineIdentifier")
|
||||
private final java.lang.String machineIdentifier;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("name")
|
||||
private final java.lang.String name;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("port")
|
||||
private final java.lang.Double port;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("version")
|
||||
private final java.lang.String version;
|
||||
|
||||
Server(Builder builder) {
|
||||
super(builder);
|
||||
this.address = builder.getAddress();
|
||||
this.host = builder.getHost();
|
||||
this.machineIdentifier = builder.getMachineIdentifier();
|
||||
this.name = builder.getName();
|
||||
this.port = builder.getPort();
|
||||
this.version = builder.getVersion();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Server")
|
||||
private java.util.List<GetServerListResponse.MediaContainer.Server> server;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerListResponse.MediaContainer build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerListResponse.MediaContainer buildWithoutValidation() {
|
||||
return new GetServerListResponse.MediaContainer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("Server")
|
||||
private final java.util.List<GetServerListResponse.MediaContainer.Server> server;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
MediaContainer(Builder builder) {
|
||||
super(builder);
|
||||
this.server = builder.getServer();
|
||||
this.size = builder.getSize();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private GetServerListResponse.MediaContainer mediaContainer;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetServerListResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetServerListResponse buildWithoutValidation() {
|
||||
return new GetServerListResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private final GetServerListResponse.MediaContainer mediaContainer;
|
||||
|
||||
GetServerListResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.mediaContainer = builder.getMediaContainer();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,455 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetTranscodeSessionsResponse.Builder.class
|
||||
)
|
||||
public class GetTranscodeSessionsResponse extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetTranscodeSessionsResponse.MediaContainer.Builder.class
|
||||
)
|
||||
public static class MediaContainer extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.EqualsAndHashCode(callSuper = false)
|
||||
@lombok.ToString
|
||||
@com.fasterxml.jackson.annotation.JsonInclude(
|
||||
com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL
|
||||
)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonDeserialize(
|
||||
builder = GetTranscodeSessionsResponse.MediaContainer.TranscodeSession.Builder.class
|
||||
)
|
||||
public static class TranscodeSession extends com.plexsdk.models.BaseModel {
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("audioChannels")
|
||||
private java.lang.Double audioChannels;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("audioCodec")
|
||||
private java.lang.String audioCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("audioDecision")
|
||||
private java.lang.String audioDecision;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("complete")
|
||||
private java.lang.Boolean complete;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("container")
|
||||
private java.lang.String container;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("context")
|
||||
private java.lang.String context;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("duration")
|
||||
private java.lang.Double duration;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("error")
|
||||
private java.lang.Boolean error;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("key")
|
||||
private java.lang.String key;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("maxOffsetAvailable")
|
||||
private java.lang.Double maxOffsetAvailable;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("minOffsetAvailable")
|
||||
private java.lang.Double minOffsetAvailable;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("progress")
|
||||
private java.lang.Double progress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("protocol")
|
||||
private java.lang.String protocol;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("sourceAudioCodec")
|
||||
private java.lang.String sourceAudioCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("sourceVideoCodec")
|
||||
private java.lang.String sourceVideoCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("speed")
|
||||
private java.lang.Double speed;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("throttled")
|
||||
private java.lang.Boolean throttled;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("timeStamp")
|
||||
private java.lang.Double timeStamp;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcodeHwRequested")
|
||||
private java.lang.Boolean transcodeHwRequested;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("videoCodec")
|
||||
private java.lang.String videoCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("videoDecision")
|
||||
private java.lang.String videoDecision;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetTranscodeSessionsResponse.MediaContainer.TranscodeSession build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetTranscodeSessionsResponse.MediaContainer.TranscodeSession buildWithoutValidation() {
|
||||
return new GetTranscodeSessionsResponse.MediaContainer.TranscodeSession(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("audioChannels")
|
||||
private final java.lang.Double audioChannels;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("audioCodec")
|
||||
private final java.lang.String audioCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("audioDecision")
|
||||
private final java.lang.String audioDecision;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("complete")
|
||||
private final java.lang.Boolean complete;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("container")
|
||||
private final java.lang.String container;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("context")
|
||||
private final java.lang.String context;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("duration")
|
||||
private final java.lang.Double duration;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("error")
|
||||
private final java.lang.Boolean error;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("key")
|
||||
private final java.lang.String key;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("maxOffsetAvailable")
|
||||
private final java.lang.Double maxOffsetAvailable;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("minOffsetAvailable")
|
||||
private final java.lang.Double minOffsetAvailable;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("progress")
|
||||
private final java.lang.Double progress;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("protocol")
|
||||
private final java.lang.String protocol;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("sourceAudioCodec")
|
||||
private final java.lang.String sourceAudioCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("sourceVideoCodec")
|
||||
private final java.lang.String sourceVideoCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("speed")
|
||||
private final java.lang.Double speed;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("throttled")
|
||||
private final java.lang.Boolean throttled;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("timeStamp")
|
||||
private final java.lang.Double timeStamp;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("transcodeHwRequested")
|
||||
private final java.lang.Boolean transcodeHwRequested;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("videoCodec")
|
||||
private final java.lang.String videoCodec;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("videoDecision")
|
||||
private final java.lang.String videoDecision;
|
||||
|
||||
TranscodeSession(Builder builder) {
|
||||
super(builder);
|
||||
this.audioChannels = builder.getAudioChannels();
|
||||
this.audioCodec = builder.getAudioCodec();
|
||||
this.audioDecision = builder.getAudioDecision();
|
||||
this.complete = builder.getComplete();
|
||||
this.container = builder.getContainer();
|
||||
this.context = builder.getContext();
|
||||
this.duration = builder.getDuration();
|
||||
this.error = builder.getError();
|
||||
this.key = builder.getKey();
|
||||
this.maxOffsetAvailable = builder.getMaxOffsetAvailable();
|
||||
this.minOffsetAvailable = builder.getMinOffsetAvailable();
|
||||
this.progress = builder.getProgress();
|
||||
this.protocol = builder.getProtocol();
|
||||
this.size = builder.getSize();
|
||||
this.sourceAudioCodec = builder.getSourceAudioCodec();
|
||||
this.sourceVideoCodec = builder.getSourceVideoCodec();
|
||||
this.speed = builder.getSpeed();
|
||||
this.throttled = builder.getThrottled();
|
||||
this.timeStamp = builder.getTimeStamp();
|
||||
this.transcodeHwRequested = builder.getTranscodeHwRequested();
|
||||
this.videoCodec = builder.getVideoCodec();
|
||||
this.videoDecision = builder.getVideoDecision();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group ->
|
||||
java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet())
|
||||
)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("TranscodeSession")
|
||||
private java.util.List<
|
||||
GetTranscodeSessionsResponse.MediaContainer.TranscodeSession
|
||||
> transcodeSession;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetTranscodeSessionsResponse.MediaContainer build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetTranscodeSessionsResponse.MediaContainer buildWithoutValidation() {
|
||||
return new GetTranscodeSessionsResponse.MediaContainer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.asList(this.getClass().getDeclaredFields())
|
||||
.stream()
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) &&
|
||||
field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("size")
|
||||
private final java.lang.Double size;
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("TranscodeSession")
|
||||
private final java.util.List<
|
||||
GetTranscodeSessionsResponse.MediaContainer.TranscodeSession
|
||||
> transcodeSession;
|
||||
|
||||
MediaContainer(Builder builder) {
|
||||
super(builder);
|
||||
this.size = builder.getSize();
|
||||
this.transcodeSession = builder.getTranscodeSession();
|
||||
}
|
||||
}
|
||||
|
||||
@lombok.Getter
|
||||
@lombok.Setter
|
||||
@lombok.experimental.Accessors(chain = true)
|
||||
@com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(
|
||||
buildMethodName = "buildWithoutValidation",
|
||||
withPrefix = "set"
|
||||
)
|
||||
public static class Builder extends com.plexsdk.models.BaseModel.Builder {
|
||||
|
||||
static final java.util.Set<java.util.Set<String>> REQUIRED_FIELDS_GROUPS;
|
||||
|
||||
static {
|
||||
java.lang.String[][] requiredFieldsGroups = new java.lang.String[][] {};
|
||||
|
||||
REQUIRED_FIELDS_GROUPS =
|
||||
java.util.Arrays
|
||||
.stream(requiredFieldsGroups)
|
||||
.map(group -> java.util.Arrays.stream(group).collect(java.util.stream.Collectors.toSet()))
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private GetTranscodeSessionsResponse.MediaContainer mediaContainer;
|
||||
|
||||
public Builder() {
|
||||
super(ValidationType.ALL_OF);
|
||||
}
|
||||
|
||||
protected Builder(BaseModel.Builder.ValidationType validationType) {
|
||||
super(validationType);
|
||||
}
|
||||
|
||||
public GetTranscodeSessionsResponse build() {
|
||||
String validateMsg = validate();
|
||||
|
||||
if (validateMsg != null) {
|
||||
throw new com.plexsdk.exceptions.ApiException(validateMsg);
|
||||
}
|
||||
|
||||
return buildWithoutValidation();
|
||||
}
|
||||
|
||||
public GetTranscodeSessionsResponse buildWithoutValidation() {
|
||||
return new GetTranscodeSessionsResponse(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<String> getNonNullInstanceFieldNames() {
|
||||
// Introspect the class to get a list of all declared fields.
|
||||
return java.util.Arrays
|
||||
.stream(this.getClass().getDeclaredFields())
|
||||
.filter(field -> {
|
||||
try {
|
||||
// Filter fields that are non-static and have values that are not null.
|
||||
return (
|
||||
!java.lang.reflect.Modifier.isStatic(field.getModifiers()) && field.get(this) != null
|
||||
);
|
||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||
// This should never happen...
|
||||
|
||||
throw new com.plexsdk.exceptions.ApiException(
|
||||
"Unexpected exception thrown while accessing instance fields.",
|
||||
e
|
||||
);
|
||||
}
|
||||
})
|
||||
.map(java.lang.reflect.Field::getName)
|
||||
.collect(java.util.stream.Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected java.util.Set<java.util.Set<String>> getRequiredFieldsGroups() {
|
||||
return REQUIRED_FIELDS_GROUPS;
|
||||
}
|
||||
}
|
||||
|
||||
@com.fasterxml.jackson.annotation.JsonProperty("MediaContainer")
|
||||
private final GetTranscodeSessionsResponse.MediaContainer mediaContainer;
|
||||
|
||||
GetTranscodeSessionsResponse(Builder builder) {
|
||||
super(builder);
|
||||
this.mediaContainer = builder.getMediaContainer();
|
||||
}
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/IncludeDetails.java
Normal file
11
src/main/java/com/plexsdk/models/IncludeDetails.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum IncludeDetails {
|
||||
V1(1);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
14
src/main/java/com/plexsdk/models/Level.java
Normal file
14
src/main/java/com/plexsdk/models/Level.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Level {
|
||||
V1(1),
|
||||
V2(2),
|
||||
V3(3),
|
||||
V4(4);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/MinSize.java
Normal file
11
src/main/java/com/plexsdk/models/MinSize.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum MinSize {
|
||||
V1(1);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/OnlyTransient.java
Normal file
11
src/main/java/com/plexsdk/models/OnlyTransient.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum OnlyTransient {
|
||||
V1(1);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
13
src/main/java/com/plexsdk/models/PlaylistType.java
Normal file
13
src/main/java/com/plexsdk/models/PlaylistType.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum PlaylistType {
|
||||
AUDIO("audio"),
|
||||
VIDEO("video"),
|
||||
PHOTO("photo");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
90
src/main/java/com/plexsdk/models/README.md
Normal file
90
src/main/java/com/plexsdk/models/README.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# PlexSDK Models
|
||||
|
||||
A list of all models.
|
||||
- [Level](#level)
|
||||
- [Upscale](#upscale)
|
||||
- [Type](#type)
|
||||
- [Smart](#smart)
|
||||
- [Force](#force)
|
||||
- [SecurityType](#securitytype)
|
||||
- [Scope](#scope)
|
||||
- [Download](#download)
|
||||
- [Tonight](#tonight)
|
||||
- [Skip](#skip)
|
||||
- [State](#state)
|
||||
- [GetServerCapabilitiesResponse](#getservercapabilitiesresponse)
|
||||
- [GetServerActivitiesResponse](#getserveractivitiesresponse)
|
||||
- [GetButlerTasksResponse](#getbutlertasksresponse)
|
||||
- [GetAvailableClientsResponse](#getavailableclientsresponse)
|
||||
- [GetDevicesResponse](#getdevicesresponse)
|
||||
- [GetServerIdentityResponse](#getserveridentityresponse)
|
||||
- [GetRecentlyAddedResponse](#getrecentlyaddedresponse)
|
||||
- [GetOnDeckResponse](#getondeckresponse)
|
||||
- [GetMyPlexAccountResponse](#getmyplexaccountresponse)
|
||||
- [GetSearchResultsResponse](#getsearchresultsresponse)
|
||||
- [GetServerListResponse](#getserverlistresponse)
|
||||
- [GetTranscodeSessionsResponse](#gettranscodesessionsresponse)
|
||||
- [TaskName](#taskname)
|
||||
- [OnlyTransient](#onlytransient)
|
||||
- [IncludeDetails](#includedetails)
|
||||
- [MinSize](#minsize)
|
||||
- [PlaylistType](#playlisttype)
|
||||
|
||||
## Level
|
||||
|
||||
## Upscale
|
||||
|
||||
## Type
|
||||
|
||||
## Smart
|
||||
|
||||
## Force
|
||||
|
||||
## SecurityType
|
||||
|
||||
## Scope
|
||||
|
||||
## Download
|
||||
|
||||
## Tonight
|
||||
|
||||
## Skip
|
||||
|
||||
## State
|
||||
|
||||
## GetServerCapabilitiesResponse
|
||||
|
||||
## GetServerActivitiesResponse
|
||||
|
||||
## GetButlerTasksResponse
|
||||
|
||||
## GetAvailableClientsResponse
|
||||
|
||||
## GetDevicesResponse
|
||||
|
||||
## GetServerIdentityResponse
|
||||
|
||||
## GetRecentlyAddedResponse
|
||||
|
||||
## GetOnDeckResponse
|
||||
|
||||
## GetMyPlexAccountResponse
|
||||
|
||||
## GetSearchResultsResponse
|
||||
|
||||
## GetServerListResponse
|
||||
|
||||
## GetTranscodeSessionsResponse
|
||||
|
||||
## TaskName
|
||||
|
||||
## OnlyTransient
|
||||
|
||||
## IncludeDetails
|
||||
|
||||
## MinSize
|
||||
|
||||
## PlaylistType
|
||||
|
||||
|
||||
|
||||
11
src/main/java/com/plexsdk/models/Scope.java
Normal file
11
src/main/java/com/plexsdk/models/Scope.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Scope {
|
||||
ALL("all");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/SecurityType.java
Normal file
11
src/main/java/com/plexsdk/models/SecurityType.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum SecurityType {
|
||||
DELEGATION("delegation");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/Skip.java
Normal file
11
src/main/java/com/plexsdk/models/Skip.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Skip {
|
||||
V1("1");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/Smart.java
Normal file
11
src/main/java/com/plexsdk/models/Smart.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Smart {
|
||||
V1(1);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
13
src/main/java/com/plexsdk/models/State.java
Normal file
13
src/main/java/com/plexsdk/models/State.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum State {
|
||||
PLAYING("playing"),
|
||||
PAUSED("paused"),
|
||||
STOPPED("stopped");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
24
src/main/java/com/plexsdk/models/TaskName.java
Normal file
24
src/main/java/com/plexsdk/models/TaskName.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum TaskName {
|
||||
BACKUPDATABASE("BackupDatabase"),
|
||||
BUILDGRACENOTECOLLECTIONS("BuildGracenoteCollections"),
|
||||
CHECKFORUPDATES("CheckForUpdates"),
|
||||
CLEANOLDBUNDLES("CleanOldBundles"),
|
||||
CLEANOLDCACHEFILES("CleanOldCacheFiles"),
|
||||
DEEPMEDIAANALYSIS("DeepMediaAnalysis"),
|
||||
GENERATEAUTOTAGS("GenerateAutoTags"),
|
||||
GENERATECHAPTERTHUMBS("GenerateChapterThumbs"),
|
||||
GENERATEMEDIAINDEXFILES("GenerateMediaIndexFiles"),
|
||||
OPTIMIZEDATABASE("OptimizeDatabase"),
|
||||
REFRESHLIBRARIES("RefreshLibraries"),
|
||||
REFRESHLOCALMEDIA("RefreshLocalMedia"),
|
||||
REFRESHPERIODICMETADATA("RefreshPeriodicMetadata"),
|
||||
UPGRADEMEDIAANALYSIS("UpgradeMediaAnalysis");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/Tonight.java
Normal file
11
src/main/java/com/plexsdk/models/Tonight.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Tonight {
|
||||
V1("1");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
13
src/main/java/com/plexsdk/models/Type.java
Normal file
13
src/main/java/com/plexsdk/models/Type.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Type {
|
||||
AUDIO("audio"),
|
||||
VIDEO("video"),
|
||||
PHOTO("photo");
|
||||
|
||||
public final String label;
|
||||
}
|
||||
11
src/main/java/com/plexsdk/models/Upscale.java
Normal file
11
src/main/java/com/plexsdk/models/Upscale.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.plexsdk.models;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public enum Upscale {
|
||||
V1(1);
|
||||
|
||||
public final Float label;
|
||||
}
|
||||
68
src/main/java/com/plexsdk/services/ActivitiesService.java
Normal file
68
src/main/java/com/plexsdk/services/ActivitiesService.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class ActivitiesService extends BaseService implements ActivitiesClient {
|
||||
|
||||
public ActivitiesService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Server Activities
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetServerActivitiesResponse> getServerActivities()
|
||||
throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("activities").build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetServerActivitiesResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetServerActivitiesResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Cancel Server Activities
|
||||
* @param {String} activityUUID - The UUID of the activity to cancel.
|
||||
*/
|
||||
public ResponseWithHeaders<String> cancelServerActivities(String activityUUID)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("activities")
|
||||
.addPathParameter(String.valueOf(activityUUID))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
48
src/main/java/com/plexsdk/services/BaseService.java
Normal file
48
src/main/java/com/plexsdk/services/BaseService.java
Normal file
@@ -0,0 +1,48 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.Configuration;
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.ModelConverter;
|
||||
import com.plexsdk.models.*;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class BaseService {
|
||||
|
||||
protected OkHttpClient httpClient;
|
||||
protected String serverUrl;
|
||||
|
||||
public BaseService(OkHttpClient httpClient, String serverUrl) {
|
||||
this.httpClient = httpClient;
|
||||
this.serverUrl = serverUrl;
|
||||
}
|
||||
|
||||
public void setBaseUrl(String serverUrl) {
|
||||
this.serverUrl = serverUrl;
|
||||
}
|
||||
|
||||
protected Response execute(Request request) throws ApiException {
|
||||
Response response;
|
||||
try {
|
||||
response = this.httpClient.newCall(request).execute();
|
||||
} catch (IOException e) {
|
||||
ApiException apiException = new ApiException(e.getMessage());
|
||||
|
||||
throw apiException;
|
||||
}
|
||||
if (response.isSuccessful()) {
|
||||
return response;
|
||||
} else {
|
||||
ApiException apiException = new ApiException(response.code());
|
||||
|
||||
throw apiException;
|
||||
}
|
||||
}
|
||||
}
|
||||
137
src/main/java/com/plexsdk/services/ButlerService.java
Normal file
137
src/main/java/com/plexsdk/services/ButlerService.java
Normal file
@@ -0,0 +1,137 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class ButlerService extends BaseService implements ButlerClient {
|
||||
|
||||
public ButlerService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Butler tasks
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetButlerTasksResponse> getButlerTasks()
|
||||
throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("butler").build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetButlerTasksResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetButlerTasksResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Start all Butler tasks
|
||||
*/
|
||||
public ResponseWithHeaders<String> startAllTasks() throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("butler").build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).post(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Stop all Butler tasks
|
||||
*/
|
||||
public ResponseWithHeaders<String> stopAllTasks() throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("butler").build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Start a single Butler task
|
||||
* @param {String} taskName - the name of the task to be started.
|
||||
*/
|
||||
public ResponseWithHeaders<String> startTask(String taskName) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("butler")
|
||||
.addPathParameter(String.valueOf(taskName))
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).post(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Stop a single Butler task
|
||||
* @param {String} taskName - The name of the task to be started.
|
||||
*/
|
||||
public ResponseWithHeaders<String> stopTask(String taskName) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("butler")
|
||||
.addPathParameter(String.valueOf(taskName))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
83
src/main/java/com/plexsdk/services/HubsService.java
Normal file
83
src/main/java/com/plexsdk/services/HubsService.java
Normal file
@@ -0,0 +1,83 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class HubsService extends BaseService implements HubsClient {
|
||||
|
||||
public HubsService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Global Hubs
|
||||
* @param {Number} [count] - The number of items to return with each hub.
|
||||
* @param {Number} [onlyTransient] - Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
|
||||
*/
|
||||
public ResponseWithHeaders<String> getGlobalHubs(Float count, Float onlyTransient)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("hubs")
|
||||
.addOptionalQueryParameter("count", count)
|
||||
.addOptionalQueryParameter("onlyTransient", onlyTransient)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get library specific hubs
|
||||
* @param {Number} sectionId - the Id of the library to query
|
||||
* @param {Number} [count] - The number of items to return with each hub.
|
||||
* @param {Number} [onlyTransient] - Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added).
|
||||
*/
|
||||
public ResponseWithHeaders<String> getLibraryHubs(
|
||||
Float sectionId,
|
||||
Float count,
|
||||
Float onlyTransient
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("hubs")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.addOptionalQueryParameter("count", count)
|
||||
.addOptionalQueryParameter("onlyTransient", onlyTransient)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
349
src/main/java/com/plexsdk/services/LibraryService.java
Normal file
349
src/main/java/com/plexsdk/services/LibraryService.java
Normal file
@@ -0,0 +1,349 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class LibraryService extends BaseService implements LibraryClient {
|
||||
|
||||
public LibraryService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Hash Value
|
||||
* @param {String} url - This is the path to the local file, must be prefixed by `file://`
|
||||
* @param {Number} [type] - Item type
|
||||
*/
|
||||
public ResponseWithHeaders<String> getFileHash(String url, Float type) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("hashes")
|
||||
.addRequiredQueryParameter("url", url)
|
||||
.addOptionalQueryParameter("type", type)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Recently Added
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetRecentlyAddedResponse> getRecentlyAdded()
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("recentlyAdded")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetRecentlyAddedResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetRecentlyAddedResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get All Libraries
|
||||
*/
|
||||
public ResponseWithHeaders<String> getLibraries() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Library Details
|
||||
* @param {Number} sectionId - the Id of the library to query
|
||||
* @param {Number} [includeDetails] - Whether or not to include details for a section (types, filters, and sorts).
|
||||
Only exists for backwards compatibility, media providers other than the server libraries have it on always.
|
||||
|
||||
*/
|
||||
public ResponseWithHeaders<String> getLibrary(Float sectionId, Float includeDetails)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.addOptionalQueryParameter("includeDetails", includeDetails)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Delete Library Section
|
||||
* @param {Number} sectionId - the Id of the library to query
|
||||
*/
|
||||
public ResponseWithHeaders<String> deleteLibrary(Float sectionId) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Library Items
|
||||
* @param {Number} sectionId - the Id of the library to query
|
||||
* @param {Number} [type] - item type
|
||||
* @param {String} [filter] - the filter parameter
|
||||
*/
|
||||
public ResponseWithHeaders<String> getLibraryItems(Float sectionId, Float type, String filter)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.addPathParameter("all")
|
||||
.addOptionalQueryParameter("type", type)
|
||||
.addOptionalQueryParameter("filter", filter)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Refresh Library
|
||||
* @param {Number} sectionId - the Id of the library to refresh
|
||||
*/
|
||||
public ResponseWithHeaders<String> refreshLibrary(Float sectionId) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.addPathParameter("refresh")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Latest Library Items
|
||||
* @param {Number} sectionId - the Id of the library to query
|
||||
* @param {Number} type - item type
|
||||
* @param {String} [filter] - the filter parameter
|
||||
*/
|
||||
public ResponseWithHeaders<String> getLatestLibraryItems(
|
||||
Float sectionId,
|
||||
Float type,
|
||||
String filter
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.addPathParameter("latest")
|
||||
.addRequiredQueryParameter("type", type)
|
||||
.addOptionalQueryParameter("filter", filter)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Common Library Items
|
||||
* @param {Number} sectionId - the Id of the library to query
|
||||
* @param {Number} type - item type
|
||||
* @param {String} [filter] - the filter parameter
|
||||
*/
|
||||
public ResponseWithHeaders<String> getCommonLibraryItems(
|
||||
Float sectionId,
|
||||
Float type,
|
||||
String filter
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("sections")
|
||||
.addPathParameter(String.valueOf(sectionId))
|
||||
.addPathParameter("common")
|
||||
.addRequiredQueryParameter("type", type)
|
||||
.addOptionalQueryParameter("filter", filter)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Items Metadata
|
||||
* @param {Number} ratingKey - the id of the library item to return the children of.
|
||||
*/
|
||||
public ResponseWithHeaders<String> getMetadata(Float ratingKey) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("metadata")
|
||||
.addPathParameter(String.valueOf(ratingKey))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Items Children
|
||||
* @param {Number} ratingKey - the id of the library item to return the children of.
|
||||
*/
|
||||
public ResponseWithHeaders<String> getMetadataChildren(Float ratingKey) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("metadata")
|
||||
.addPathParameter(String.valueOf(ratingKey))
|
||||
.addPathParameter("children")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get On Deck
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetOnDeckResponse> getOnDeck() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("library")
|
||||
.addPathParameter("onDeck")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetOnDeckResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<com.plexsdk.models.GetOnDeckResponse>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
}
|
||||
104
src/main/java/com/plexsdk/services/LogService.java
Normal file
104
src/main/java/com/plexsdk/services/LogService.java
Normal file
@@ -0,0 +1,104 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class LogService extends BaseService implements LogClient {
|
||||
|
||||
public LogService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Logging a single line message.
|
||||
* @param {Number} level - An integer log level to write to the PMS log with.
|
||||
0: Error
|
||||
1: Warning
|
||||
2: Info
|
||||
3: Debug
|
||||
4: Verbose
|
||||
|
||||
* @param {String} message - The text of the message to write to the log.
|
||||
* @param {String} source - a string indicating the source of the message.
|
||||
*/
|
||||
public ResponseWithHeaders<String> logLine(Float level, String message, String source)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("log")
|
||||
.addRequiredQueryParameter("level", level)
|
||||
.addRequiredQueryParameter("message", message)
|
||||
.addRequiredQueryParameter("source", source)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Logging a multi-line message
|
||||
*/
|
||||
public ResponseWithHeaders<String> logMultiLine() throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("log").build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).post(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Enabling Papertrail
|
||||
*/
|
||||
public ResponseWithHeaders<String> enablePaperTrail() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("log")
|
||||
.addPathParameter("networked")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
107
src/main/java/com/plexsdk/services/MediaService.java
Normal file
107
src/main/java/com/plexsdk/services/MediaService.java
Normal file
@@ -0,0 +1,107 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class MediaService extends BaseService implements MediaClient {
|
||||
|
||||
public MediaService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Mark Media Played
|
||||
* @param {Number} key - The media key to mark as played
|
||||
*/
|
||||
public ResponseWithHeaders<String> markPlayed(Float key) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("scrobble")
|
||||
.addRequiredQueryParameter("key", key)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Mark Media Unplayed
|
||||
* @param {Number} key - The media key to mark as Unplayed
|
||||
*/
|
||||
public ResponseWithHeaders<String> markUnplayed(Float key) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("unscrobble")
|
||||
.addRequiredQueryParameter("key", key)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Update Media Play Progress
|
||||
* @param {String} key - the media key
|
||||
* @param {Number} time - The time, in milliseconds, used to set the media playback progress.
|
||||
* @param {String} state - The playback state of the media item.
|
||||
*/
|
||||
public ResponseWithHeaders<String> updatePlayProgress(String key, Float time, String state)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("progress")
|
||||
.addRequiredQueryParameter("key", key)
|
||||
.addRequiredQueryParameter("time", time)
|
||||
.addRequiredQueryParameter("state", state)
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).post(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
298
src/main/java/com/plexsdk/services/PlaylistsService.java
Normal file
298
src/main/java/com/plexsdk/services/PlaylistsService.java
Normal file
@@ -0,0 +1,298 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class PlaylistsService extends BaseService implements PlaylistsClient {
|
||||
|
||||
public PlaylistsService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Create a Playlist
|
||||
* @param {String} title - name of the playlist
|
||||
* @param {String} type - type of playlist to create
|
||||
* @param {Number} smart - whether the playlist is smart or not
|
||||
* @param {String} [uri] - the content URI for the playlist
|
||||
* @param {Number} [playQueueID] - the play queue to copy to a playlist
|
||||
*/
|
||||
public ResponseWithHeaders<String> createPlaylist(
|
||||
String title,
|
||||
String type,
|
||||
Float smart,
|
||||
String uri,
|
||||
Float playQueueID
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addRequiredQueryParameter("title", title)
|
||||
.addRequiredQueryParameter("type", type)
|
||||
.addRequiredQueryParameter("smart", smart)
|
||||
.addOptionalQueryParameter("uri", uri)
|
||||
.addOptionalQueryParameter("playQueueID", playQueueID)
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).post(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get All Playlists
|
||||
* @param {String} [playlistType] - limit to a type of playlist.
|
||||
* @param {Number} [smart] - type of playlists to return (default is all).
|
||||
*/
|
||||
public ResponseWithHeaders<String> getPlaylists(String playlistType, Float smart)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter("all")
|
||||
.addOptionalQueryParameter("playlistType", playlistType)
|
||||
.addOptionalQueryParameter("smart", smart)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Retrieve Playlist
|
||||
* @param {Number} playlistID - the ID of the playlist
|
||||
*/
|
||||
public ResponseWithHeaders<String> getPlaylist(Float playlistID) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter(String.valueOf(playlistID))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Update a Playlist
|
||||
* @param {Number} playlistID - the ID of the playlist
|
||||
*/
|
||||
public ResponseWithHeaders<String> updatePlaylist(Float playlistID) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter(String.valueOf(playlistID))
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).put(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Deletes a Playlist
|
||||
* @param {Number} playlistID - the ID of the playlist
|
||||
*/
|
||||
public ResponseWithHeaders<String> deletePlaylist(Float playlistID) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter(String.valueOf(playlistID))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Retrieve Playlist Contents
|
||||
* @param {Number} playlistID - the ID of the playlist
|
||||
* @param {Number} type - the metadata type of the item to return
|
||||
*/
|
||||
public ResponseWithHeaders<String> getPlaylistContents(Float playlistID, Float type)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter(String.valueOf(playlistID))
|
||||
.addPathParameter("items")
|
||||
.addRequiredQueryParameter("type", type)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Adding to a Playlist
|
||||
* @param {Number} playlistID - the ID of the playlist
|
||||
* @param {String} uri - the content URI for the playlist
|
||||
* @param {Number} playQueueID - the play queue to add to a playlist
|
||||
*/
|
||||
public ResponseWithHeaders<String> addPlaylistContents(
|
||||
Float playlistID,
|
||||
String uri,
|
||||
Float playQueueID
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter(String.valueOf(playlistID))
|
||||
.addPathParameter("items")
|
||||
.addRequiredQueryParameter("uri", uri)
|
||||
.addRequiredQueryParameter("playQueueID", playQueueID)
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).put(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Delete Playlist Contents
|
||||
* @param {Number} playlistID - the ID of the playlist
|
||||
*/
|
||||
public ResponseWithHeaders<String> clearPlaylistContents(Float playlistID) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter(String.valueOf(playlistID))
|
||||
.addPathParameter("items")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Upload Playlist
|
||||
* @param {String} path - absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server.
|
||||
If the `path` argument is a directory, that path will be scanned for playlist files to be processed.
|
||||
Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it.
|
||||
The GUID of each playlist is based on the filename.
|
||||
If the `path` argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it.
|
||||
The GUID of each playlist is based on the filename.
|
||||
|
||||
* @param {Number} force - force overwriting of duplicate playlists. By default, a playlist file uploaded with the same path will overwrite the existing playlist.
|
||||
The `force` argument is used to disable overwriting. If the `force` argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
|
||||
|
||||
*/
|
||||
public ResponseWithHeaders<String> uploadPlaylist(String path, Float force) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("playlists")
|
||||
.addPathParameter("upload")
|
||||
.addRequiredQueryParameter("path", path)
|
||||
.addRequiredQueryParameter("force", force)
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).post(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
2606
src/main/java/com/plexsdk/services/README.md
Normal file
2606
src/main/java/com/plexsdk/services/README.md
Normal file
File diff suppressed because it is too large
Load Diff
110
src/main/java/com/plexsdk/services/SearchService.java
Normal file
110
src/main/java/com/plexsdk/services/SearchService.java
Normal file
@@ -0,0 +1,110 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class SearchService extends BaseService implements SearchClient {
|
||||
|
||||
public SearchService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Perform a search
|
||||
* @param {String} query - The query term
|
||||
* @param {Number} [sectionId] - This gives context to the search, and can result in re-ordering of search result hubs
|
||||
* @param {Number} [limit] - The number of items to return per hub
|
||||
*/
|
||||
public ResponseWithHeaders<String> performSearch(String query, Float sectionId, Float limit)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("hubs")
|
||||
.addPathParameter("search")
|
||||
.addRequiredQueryParameter("query", query)
|
||||
.addOptionalQueryParameter("sectionId", sectionId)
|
||||
.addOptionalQueryParameter("limit", limit)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Perform a voice search
|
||||
* @param {String} query - The query term
|
||||
* @param {Number} [sectionId] - This gives context to the search, and can result in re-ordering of search result hubs
|
||||
* @param {Number} [limit] - The number of items to return per hub
|
||||
*/
|
||||
public ResponseWithHeaders<String> performVoiceSearch(String query, Float sectionId, Float limit)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("hubs")
|
||||
.addPathParameter("search")
|
||||
.addPathParameter("voice")
|
||||
.addRequiredQueryParameter("query", query)
|
||||
.addOptionalQueryParameter("sectionId", sectionId)
|
||||
.addOptionalQueryParameter("limit", limit)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Search Results
|
||||
* @param {String} query - The search query string to use
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetSearchResultsResponse> getSearchResults(
|
||||
String query
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("search")
|
||||
.addRequiredQueryParameter("query", query)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetSearchResultsResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetSearchResultsResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
}
|
||||
77
src/main/java/com/plexsdk/services/SecurityService.java
Normal file
77
src/main/java/com/plexsdk/services/SecurityService.java
Normal file
@@ -0,0 +1,77 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class SecurityService extends BaseService implements SecurityClient {
|
||||
|
||||
public SecurityService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get a Transient Token.
|
||||
* @param {String} type - `delegation` - This is the only supported `type` parameter.
|
||||
* @param {String} scope - `all` - This is the only supported `scope` parameter.
|
||||
*/
|
||||
public ResponseWithHeaders<String> getTransientToken(String type, String scope)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("security")
|
||||
.addPathParameter("token")
|
||||
.addRequiredQueryParameter("type", type)
|
||||
.addRequiredQueryParameter("scope", scope)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Source Connection Information
|
||||
* @param {String} source - The source identifier with an included prefix.
|
||||
*/
|
||||
public ResponseWithHeaders<String> getSourceConnectionInformation(String source)
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("security")
|
||||
.addPathParameter("resources")
|
||||
.addRequiredQueryParameter("source", source)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
218
src/main/java/com/plexsdk/services/ServerService.java
Normal file
218
src/main/java/com/plexsdk/services/ServerService.java
Normal file
@@ -0,0 +1,218 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class ServerService extends BaseService implements ServerClient {
|
||||
|
||||
public ServerService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Server Capabilities
|
||||
*/
|
||||
public ResponseWithHeaders<
|
||||
com.plexsdk.models.GetServerCapabilitiesResponse
|
||||
> getServerCapabilities() throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetServerCapabilitiesResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetServerCapabilitiesResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Server Preferences
|
||||
*/
|
||||
public ResponseWithHeaders<String> getServerPreferences() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("prefs")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Available Clients
|
||||
*/
|
||||
public ResponseWithHeaders<
|
||||
java.util.List<com.plexsdk.models.GetAvailableClientsResponse>
|
||||
> getAvailableClients() throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("clients").build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<java.util.List<com.plexsdk.models.GetAvailableClientsResponse>>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
java.util.List<com.plexsdk.models.GetAvailableClientsResponse>
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Devices
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetDevicesResponse> getDevices()
|
||||
throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("devices").build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetDevicesResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetDevicesResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Server Identity
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetServerIdentityResponse> getServerIdentity()
|
||||
throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("identity").build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetServerIdentityResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetServerIdentityResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get MyPlex Account
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetMyPlexAccountResponse> getMyPlexAccount()
|
||||
throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("myplex")
|
||||
.addPathParameter("account")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetMyPlexAccountResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetMyPlexAccountResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get a Resized Photo
|
||||
* @param {Number} width - The width for the resized photo
|
||||
* @param {Number} height - The height for the resized photo
|
||||
* @param {Integer} opacity - The opacity for the resized photo
|
||||
* @param {Number} blur - The width for the resized photo
|
||||
* @param {Number} minSize - images are always scaled proportionally. A value of '1' in minSize will make the smaller native dimension the dimension resized against.
|
||||
* @param {Number} upscale - allow images to be resized beyond native dimensions.
|
||||
* @param {String} url - path to image within Plex
|
||||
*/
|
||||
public ResponseWithHeaders<String> getResizedPhoto(
|
||||
Float width,
|
||||
Float height,
|
||||
Integer opacity,
|
||||
Float blur,
|
||||
Float minSize,
|
||||
Float upscale,
|
||||
String url
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("photo")
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("transcode")
|
||||
.addRequiredQueryParameter("width", width)
|
||||
.addRequiredQueryParameter("height", height)
|
||||
.addRequiredQueryParameter("opacity", opacity)
|
||||
.addRequiredQueryParameter("blur", blur)
|
||||
.addRequiredQueryParameter("minSize", minSize)
|
||||
.addRequiredQueryParameter("upscale", upscale)
|
||||
.addRequiredQueryParameter("url", url)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Server List
|
||||
*/
|
||||
public ResponseWithHeaders<com.plexsdk.models.GetServerListResponse> getServerList()
|
||||
throws ApiException {
|
||||
String url = HttpUrl.builder(this.serverUrl).addPathParameter("servers").build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetServerListResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetServerListResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
}
|
||||
121
src/main/java/com/plexsdk/services/SessionsService.java
Normal file
121
src/main/java/com/plexsdk/services/SessionsService.java
Normal file
@@ -0,0 +1,121 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class SessionsService extends BaseService implements SessionsClient {
|
||||
|
||||
public SessionsService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Active Sessions
|
||||
*/
|
||||
public ResponseWithHeaders<String> getSessions() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("status")
|
||||
.addPathParameter("sessions")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Session History
|
||||
*/
|
||||
public ResponseWithHeaders<String> getSessionHistory() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("status")
|
||||
.addPathParameter("sessions")
|
||||
.addPathParameter("history")
|
||||
.addPathParameter("all")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get Transcode Sessions
|
||||
*/
|
||||
public ResponseWithHeaders<
|
||||
com.plexsdk.models.GetTranscodeSessionsResponse
|
||||
> getTranscodeSessions() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("transcode")
|
||||
.addPathParameter("sessions")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
return new ResponseWithHeaders<com.plexsdk.models.GetTranscodeSessionsResponse>(
|
||||
ModelConverter.convert(
|
||||
response,
|
||||
new com.fasterxml.jackson.core.type.TypeReference<
|
||||
com.plexsdk.models.GetTranscodeSessionsResponse
|
||||
>() {}
|
||||
),
|
||||
response.headers()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Stop a Transcode Session
|
||||
* @param {String} sessionKey - the Key of the transcode session to stop
|
||||
*/
|
||||
public ResponseWithHeaders<String> stopTranscodeSession(String sessionKey) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("transcode")
|
||||
.addPathParameter("sessions")
|
||||
.addPathParameter(String.valueOf(sessionKey))
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).delete().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
106
src/main/java/com/plexsdk/services/UpdaterService.java
Normal file
106
src/main/java/com/plexsdk/services/UpdaterService.java
Normal file
@@ -0,0 +1,106 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class UpdaterService extends BaseService implements UpdaterClient {
|
||||
|
||||
public UpdaterService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Querying status of updates
|
||||
*/
|
||||
public ResponseWithHeaders<String> getUpdateStatus() throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("updater")
|
||||
.addPathParameter("status")
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Checking for updates
|
||||
* @param {Download} [download] - Indicate that you want to start download any updates found.
|
||||
*/
|
||||
public ResponseWithHeaders<String> checkForUpdates(String download) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("updater")
|
||||
.addPathParameter("check")
|
||||
.addOptionalQueryParameter("download", download)
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).put(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Apply Updates
|
||||
* @param {Tonight} [tonight] - Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install
|
||||
* @param {Skip} [skip] - Indicate that the latest version should be marked as skipped. The <Release> entry for this version will have the `state` set to `skipped`.
|
||||
*/
|
||||
public ResponseWithHeaders<String> applyUpdates(String tonight, String skip) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("updater")
|
||||
.addPathParameter("apply")
|
||||
.addOptionalQueryParameter("tonight", tonight)
|
||||
.addOptionalQueryParameter("skip", skip)
|
||||
.build();
|
||||
RequestBody requestBody = RequestBody.create(
|
||||
Objects.requireNonNull(ModelConverter.modelToJson(new BaseModel() {})),
|
||||
okhttp3.MediaType.parse("application/json; charset=utf-8")
|
||||
);
|
||||
Request request = new Request.Builder().url(url).put(requestBody).build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
152
src/main/java/com/plexsdk/services/VideoService.java
Normal file
152
src/main/java/com/plexsdk/services/VideoService.java
Normal file
@@ -0,0 +1,152 @@
|
||||
package com.plexsdk.services;
|
||||
|
||||
import com.plexsdk.exceptions.ApiException;
|
||||
import com.plexsdk.http.*;
|
||||
import com.plexsdk.http.util.HttpHeaders;
|
||||
import com.plexsdk.http.util.HttpUrl;
|
||||
import com.plexsdk.models.BaseModel;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import okhttp3.Headers;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class VideoService extends BaseService implements VideoClient {
|
||||
|
||||
public VideoService(OkHttpClient httpClient, String serverUrl) {
|
||||
super(httpClient, serverUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Start Universal Transcode
|
||||
* @param {Number} hasMDE - Whether the media item has MDE
|
||||
* @param {String} path - The path to the media item to transcode
|
||||
* @param {Number} mediaIndex - The index of the media item to transcode
|
||||
* @param {Number} partIndex - The index of the part to transcode
|
||||
* @param {String} protocol - The protocol to use for the transcode session
|
||||
* @param {Number} [fastSeek] - Whether to use fast seek or not
|
||||
* @param {Number} [directPlay] - Whether to use direct play or not
|
||||
* @param {Number} [directStream] - Whether to use direct stream or not
|
||||
* @param {Number} [subtitleSize] - The size of the subtitles
|
||||
* @param {String} [subtites] - The subtitles
|
||||
* @param {Number} [audioBoost] - The audio boost
|
||||
* @param {String} [location] - The location of the transcode session
|
||||
* @param {Number} [mediaBufferSize] - The size of the media buffer
|
||||
* @param {String} [session] - The session ID
|
||||
* @param {Number} [addDebugOverlay] - Whether to add a debug overlay or not
|
||||
* @param {Number} [autoAdjustQuality] - Whether to auto adjust quality or not
|
||||
*/
|
||||
public ResponseWithHeaders<String> startUniversalTranscode(
|
||||
Float hasMDE,
|
||||
String path,
|
||||
Float mediaIndex,
|
||||
Float partIndex,
|
||||
String protocol,
|
||||
Float fastSeek,
|
||||
Float directPlay,
|
||||
Float directStream,
|
||||
Float subtitleSize,
|
||||
String subtites,
|
||||
Float audioBoost,
|
||||
String location,
|
||||
Float mediaBufferSize,
|
||||
String session,
|
||||
Float addDebugOverlay,
|
||||
Float autoAdjustQuality
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter("video")
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("transcode")
|
||||
.addPathParameter("universal")
|
||||
.addPathParameter("start.mpd")
|
||||
.addRequiredQueryParameter("hasMDE", hasMDE)
|
||||
.addRequiredQueryParameter("path", path)
|
||||
.addRequiredQueryParameter("mediaIndex", mediaIndex)
|
||||
.addRequiredQueryParameter("partIndex", partIndex)
|
||||
.addRequiredQueryParameter("protocol", protocol)
|
||||
.addOptionalQueryParameter("fastSeek", fastSeek)
|
||||
.addOptionalQueryParameter("directPlay", directPlay)
|
||||
.addOptionalQueryParameter("directStream", directStream)
|
||||
.addOptionalQueryParameter("subtitleSize", subtitleSize)
|
||||
.addOptionalQueryParameter("subtites", subtites)
|
||||
.addOptionalQueryParameter("audioBoost", audioBoost)
|
||||
.addOptionalQueryParameter("location", location)
|
||||
.addOptionalQueryParameter("mediaBufferSize", mediaBufferSize)
|
||||
.addOptionalQueryParameter("session", session)
|
||||
.addOptionalQueryParameter("addDebugOverlay", addDebugOverlay)
|
||||
.addOptionalQueryParameter("autoAdjustQuality", autoAdjustQuality)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Get the timeline for a media item
|
||||
* @param {Number} ratingKey - The rating key of the media item
|
||||
* @param {String} key - The key of the media item to get the timeline for
|
||||
* @param {String} state - The state of the media item
|
||||
* @param {Number} hasMDE - Whether the media item has MDE
|
||||
* @param {Number} time - The time of the media item
|
||||
* @param {Number} duration - The duration of the media item
|
||||
* @param {String} context - The context of the media item
|
||||
* @param {Number} playQueueItemID - The play queue item ID of the media item
|
||||
* @param {Number} playBackTime - The playback time of the media item
|
||||
* @param {Number} row - The row of the media item
|
||||
*/
|
||||
public ResponseWithHeaders<String> getTimeline(
|
||||
Float ratingKey,
|
||||
String key,
|
||||
String state,
|
||||
Float hasMDE,
|
||||
Float time,
|
||||
Float duration,
|
||||
String context,
|
||||
Float playQueueItemID,
|
||||
Float playBackTime,
|
||||
Float row
|
||||
) throws ApiException {
|
||||
String url = HttpUrl
|
||||
.builder(this.serverUrl)
|
||||
.addPathParameter(":")
|
||||
.addPathParameter("timeline")
|
||||
.addRequiredQueryParameter("ratingKey", ratingKey)
|
||||
.addRequiredQueryParameter("key", key)
|
||||
.addRequiredQueryParameter("state", state)
|
||||
.addRequiredQueryParameter("hasMDE", hasMDE)
|
||||
.addRequiredQueryParameter("time", time)
|
||||
.addRequiredQueryParameter("duration", duration)
|
||||
.addRequiredQueryParameter("context", context)
|
||||
.addRequiredQueryParameter("playQueueItemID", playQueueItemID)
|
||||
.addRequiredQueryParameter("playBackTime", playBackTime)
|
||||
.addRequiredQueryParameter("row", row)
|
||||
.build();
|
||||
Request request = new Request.Builder().url(url).get().build();
|
||||
Response response = this.execute(request);
|
||||
|
||||
try {
|
||||
return new ResponseWithHeaders<java.lang.String>(
|
||||
response.body().string(),
|
||||
response.headers()
|
||||
);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user